Abgabe: :00. Achten Sie darauf nicht zu lange Zeilen, Methoden und Dateien zu erstellen 1

Größe: px
Ab Seite anzeigen:

Download "Abgabe: :00. Achten Sie darauf nicht zu lange Zeilen, Methoden und Dateien zu erstellen 1"

Transkript

1 Programmieren Wintersemester 2/ Software-esign und Qualität (SQ) Prof. r. Ralf H. Reussner Kiana Rostami Michael Langhammer bschlussaufgabe usgabe:.2.2 : bgabe:..2 : earbeitungshinweise chten Sie darauf nicht zu lange Zeilen, Methoden und ateien zu erstellen Programmcode muss in englischer Sprache verfasst sein Kommentieren Sie Ihren ode angemessen: So viel wie nötig, so wenig wie möglich Wählen Sie geeignete Sichtbarkeiten für Ihre Klassen, Methoden und ttribute Verwenden Sie keine Klassen der Java-ibliotheken ausgenommen Klassen der Pakete java.lang, java.io und java.util, es sei denn die ufgabenstellung erlaubt ausdrücklich weitere Pakete chten Sie auf fehlerfrei kompilierenden Programmcode Halten Sie alle Whitespace-Regeln ein Halten Sie die Regeln zu Variablen-, Methoden und Paketbenennung ein und wählen Sie aussagekräftige Namen Halten Sie die Regeln zu Javadoc-okumentation ein Nutzen Sie nicht das default-package Halten Sie auch alle anderen heckstyle-regeln ein bgabemodalitäten ie Praktomat-bgabe wird am onnerstag, den 2. ebruar, freigeschaltet. eben Sie die Java-Klassen als *.java-ateien ab. Laden Sie die Terminal-Klasse nicht mit hoch. Planen Sie für die bgabe ausreichend Zeit ein, sollte der Praktomat Ihre bgabe wegen einer Regelverletzung ablehnen. ehlerbehandlung Ihre Programme sollen auf ungültige enutzereingaben mit einer aussagekräftigen ehlermeldung reagieren. us technischen ründen muss eine ehlermeldung unbedingt mit Error, beginnen. Eine ehlermeldung führt nicht dazu, dass das Programm beendet wird; es sei denn, die nachfolgende ufgabenstellung verlangt dies ausdrücklich. chten Sie inbesondere auch darauf, dass unbehandelte RuntimeExceptions, bzw. Subklassen davon sogenannte Unchecked Exceptions nicht zum bbruch des Programms führen. er Praktomat wird die bgabe zurückweisen, falls diese Regel verletzt ist.

2 Programmieren Wintersemester 2/.2.2 : eachten Sie den folgenden Hinweis zur Terminal-Klasse: Terminal-Klasse Laden Sie für diese ufgabe (nicht für ufgabe )die Terminal-Klasse a von unserer Homepage herunter und platzieren Sie diese unbedingt im Paket edu.kit.informatik. ie Methode Terminal.readLine() liest eine enutzereingabe von der Konsole und ersetzt System.in. ie Methode Terminal.printLine() schreibt eine usgabe auf die Konsole und ersetzt System.out. Verwenden Sie für jegliche Konsoleneingabe oder Konsolenausgabe die Terminal-Klasse. Verwenden Sie in keinem all System.in oder System.out. ehlermeldungen werden ausschließlich über Terminal.printLine() ausgegeben und müssen aus technischen ründen unbedingt mit Error, beginnen. Laden Sie die Terminal-Klasse niemals zusammen mit Ihrer bgabe hoch. a Navigationssystem (2 Punkte) us dem lltag kennen Sie folgende Probleme: Wie komme ich am schnellsten von nach? Was ist die kürzeste Route von nach? Ist die kürzeste Route gleichzeitig auch die Schnellste? Welche Route ist am kürzesten, wenn ich eine austelle oder utobahnen vermeiden will? Im Rahmen dieser ufgabe programmieren Sie ein kleines und vereinfachtes Navigationssystem auf der ranularitätsebene der Städte, das seinem enutzer ähnliche Routensuchen erlaubt. Um die kürzeste Route zwischen zwei Städten herauszufinden, muss zunächst das Netz von Städten, die bei Ihrer Suche in rage kommen, auf einen raphen abgebildet werden. ieser raph besteht somit aus Städten (dargestellt als Knoten) und direkten Wegen zwischen Städten (dargestellt als Kanten). ie istanz zwischen zwei Städten wird durch eine Zahl an die entsprechende Kante im raphen, auch bekannt als Kantengewichte, notiert. Lesen Sie die in den bschnitten, und vorgestellten atenstrukturen und lgorithmen aufmerksam durch. Sie benötigen diese rundlagen für Ihre Implementierung. In dieser ufgabe sind die Einheiten der istanzen in Kilometern, bzw. Minuten zu verstehen. Somit brauchen Sie die Korrektheit der Einheiten nicht zu prüfen oder diese in andere Einheiten umzurechnen. rundlagen: raph ormeller ausgedrückt ist ein ungerichteter raph ein geordnetes Paar (V, E), wobei V die Menge seiner Knoten (Vertices) und E die Menge seiner ungerichteten Kanten (Edges) bezeichnet. Eine ungerichtete Kante e E ist eine zweielementige Menge {v s, v t } mit v s V und v t V. rundlagen: Routen-raph Ein Routen-raph ist ein ungerichteter zusammenhängender raph = (V, E) ohne Mehrfachkanten. ußerdem gibt es keine Kanten, die ausgehend von einem Knoten auf denselben Knoten zeigen - auch als Schlingen bekannt. Ein ungerichteter raph ist nur dann zusammenhängend, wenn es zwischen zwei beliebigen Knoten v und w einen Weg gibt. Somit können beginnend mit einem beliebigen Knoten v V alle anderen Knoten durch mindestens einen Weg erreicht werden. Ein ungerichteter raph ohne Mehrfachkanten, ist ein raph, bei dem zwischen zwei beliebigen Knoten v und w maximal nur eine ungerichtete Kante existiert. Jeder Knoten v V repräsentiert eine Stadt. Seite 2 von 8

3 Programmieren Wintersemester 2/.2.2 : Jede Kante e = (v s, v t ) E repräsentiert einen direkten Weg zwischen zwei Städten: v s V und v t V. Weiterhin existieren zwei unktionen distancekilometer : E N und distanceminute : E N, die jeder Kante zwei istanzen (räumlich und zeitlich) zuordnen. Im olgenden erfahren Sie mehr über die istanzen.. Serialisierung eines Routen-raphen Unter einer Serialisierung verstehen wir im Rahmen dieser ufgabe die textuelle Repräsentation eines Routen- raphen: ein ormat, um einen solchen raphen in eine atei zu speichern bzw. aus einer atei auszulesen. Eine Serialisierung besteht aus zwei ereichen. er erste ereich beschreibt die Knoten des raphen. er zweite ereich beschreibt die Kanten des raphen. eide ereiche sind durch genau eine Zeile mit dem Inhalt -- voneinander separiert (vergleiche Eingabebeispiel.). er erste ereich enthält zwei oder mehrere Zeilen in beliebiger Reihenfolge. Jede Zeile beschreibt eine Stadt (Knoten). Sie können bei der Serialisierung und bei den Eingaben davon ausgehen, dass alle Städtenamen ungeachtet der roß- und Kleinschreibung eindeutig sind. ie Städtenamen sind durch den regulären usdruck [-Za-z-]+ beschrieben. ie Namen der Städte dürfen nur einmal im ersten ereich vorkommen. <Stadt> er zweite ereich enthält eine oder mehrere Zeilen in beliebiger Reihenfolge und beinhaltet alle Kanten des raphen, wobei jede Kante durch zwei Knoten, die diese Kante direkt miteinander verbindet, dargestellt werden. Zwei Knoten repräsentieren Stadt und Stadt 2. Jede Zeile beschreibt eine Kante und ist folgendermaßen aufgebaut: <Stadt >;<Stadt 2 >;<EntfernungInKilometer>;<EntfernungInMinuten> Jeder diekte Weg (Kante) verläuft zwischen zwei Städten - Stadt und Stadt 2, wobei gilt Stadt Stadt 2. <Stadt > und <Stadt 2 > sind jeweils eindeutig durch ihren Namen repräsentiert, der genauso aufgebaut ist, wie zuvor beschrieben. ußerdem dürfen nur Städte im zweiten ereich benutzt werden, die im ersten ereich bereits vorgekommen sind. <EntfernungInKilometer> ist die Entfernung zwischen Stadt und Stadt 2 in Kilometern, ausgedrückt als Integer-Zahl größer. <EntfernungInMinuten> gibt die Zeit in Minuten an, die im urchschnitt zum Zurücklegen der Strecke benötigt wird. ie Zeit wird durch eine Integer-Zahl größer ausgedrückt. a alle Kanten ungerichtet sind, ist die Wahl der Stadt und der Stadt 2 bei einer Verbindung zwischen den beiden Städten nicht weiter relevant. eachten Sie dabei, dass keine Mehrfachkanten vorkommen dürfen. ies bedeutet, dass jede Kante nur einmal im zweiten ereich vorkommen darf. ußerdem ist eine Serialisierung in dieser ufgabe nur gültig, wenn es keine allein stehenden Knoten gibt, da der raph stets zusammenhängend sein muss. eispiel für eine Eingabedatei a b d -- a;b;; a;;2; a;d;;2 b;;;2 ;d;; Seite von 8

4 Programmieren Wintersemester 2/.2.2 : rundlagen: raph-lgorithmen. Kürzeste Pfade zwischen zwei Knoten berechnen Es gibt bereits zahlreiche lgorithmen, welche ihren enutzern die erechnung der kürzesten Route erlauben. In dieser ufgabe implementieren wir den ijkstra-lgorithmus. lgorithmus beschreibt den ijkstra-lgorithmus in orm von Pseudocode. lgorithmus ijkstra-lgorithmus zur erechnung kürzester Pfade in einem raphen = (V, E) : function ShortestPath(, s, z) // S und z sind jeweils der Start- und Zielknoten in Matrix return die kürzeste Route zwischen dem Startknoten s und dem Zielknoten z 2: Initialisiere den Vorgänger aller anderen Knoten im mit null. : Intialisiere den bstand von s mit. : Initialisiere den bstand aller anderen Knoten im mit. : Markiere alle Knoten im raphen als unbesucht. : while Es gibt noch einen unbesuchten Knoten v mit dem kleinsten bstand im und v z do : Wähle den Knoten v und markiere ihn als besucht. 8: for lle direkten und unbesuchten Nachbarn u do 9: if Summe des bstandes von v und des bstandes zwischen v und u < der bstand u? then : ktualisiere den bstand von u mit der Summe des bstandes von v und des bstandes zwischen v und u : Speichere v als Vorgänger von u. 2: end if : end for : end while : Initialisiere die Route mit dem z. : while Vorgänger vom zuletzt zur Route hinzugefügten Knoten nicht null ist do : üge den Vorgänger vom zuletzt zur Route hinzugefügten Knoten zur Route hinzu. 8: end while 9: return Route 2: end function Sie können davon ausgehen, dass es nie zu einem Zustand kommt, in dem die bstände zweier Knoten gleich sind. bbildung wendet den lgorithmus auf ein eispiel an. 2 E 2 E +=8 2 E +2= == 8 2 E += += 8 2 E +=< -> 8 2 E +=<-> bbildung : eispielhafte nwendung des ijkstra-lgorithmus auf einen Routen-raphen mit istanzen in Kilometer. und sind jeweils der Start- und Zielknoten. er lgorithmus bricht ab, sobald der Zielknoten als besucht markiert wurde. Somit ist der kürzeste Weg zwischen und : E Seite von 8

5 Programmieren Wintersemester 2/.2.2 :.2 er optimale Pfad zwischen zwei Knoten Zur erechnung des optimalen Pfades werden zunächst alle Pfade zwischen zwei Knoten ermittelt. enutzen Sie hierzu den Tiefensuche-lgorithmus. Ändern Sie den lgorithmus für Ihre Implementierung so um, dass Sie alle Pfade zwischen einem Start- und einem Zielknoten herausfinden. enken Sie bei Ihren Änderungen daran, dass sich der lgorithmus zur erechnung des Weges beim esuchen eines Knotens den Vorgängerknoten merken muss. er Tiefensuche-lgorithmus ist im olgenden beschrieben: Tiefensuche startet bei einem übergebenen Startknoten eines raphen und besucht zunächst diesen Knoten. lle noch unbesuchten Knoten, die von diesem Knoten erreichbar sind, werden in einer beliebigen Reihenfolge in einer Stapel-atenstruktur (engl. Stack) gespeichert. anach wird die Tiefensuche rekursiv auf den nächsten Knoten, der im Stapel gespeichert wurde, angewendet. ieser Vorgang wird solange fortgesetzt, bis der lgorithmus entweder bei einem Knoten ohne unbesuchten benachbarten Knoten angekommen ist oder bis der Zielknoten gefunden wurde. Im nächsten Schritt wird die Route identifiziert, bei dem x 2 +t 2 das minimal ist. Wobei t die Zeit in Minuten, die für die Route benötigt wird und x die istanz der Route in Kilometer darstellen. Sie können davon ausgehen, dass es immer nur eine optimale Route gibt. Kommandozeilenargumente Ihr Programm nimmt als erstes und einziges Kommandozeilenargument einen Pfad auf eine Textdatei entgegen. iese atei beschreibt einen Routen-raphen und ist nach dem in bschnitt. eingeführten ormat aufgebaut. Zum Einlesen der atei dürfen Sie die bereitgestellte Klasse ileinputhelper 2 nutzen. Im egensatz zur Terminal-Klasse darf und muss die ileinputhelper-klasse in den Praktomaten hochgeladen werden, falls sie eingesetzt wird. Tritt beim Verarbeiten des Kommandozeilenarguments ein ehler auf, so wird eine ehlermeldung ausgegeben und das Programm beendet sich mittels System.exit(). Tritt bei der Serialisierung ein ehler auf, so wird das Programm mittels System.exit() beendet. E Interaktive enutzerschnittstelle Nach dem Start nimmt Ihr Programm über die Konsole mittels Terminal.readLine() acht efehle entgegen. Nach barbeitung eines efehls wartet das Programm auf weitere efehle, bis das Programm irgendwann durch quit beendet wird. ie nachfolgenden efehle operieren auf dem aktuellen Routen-raphen = (V, E). ies bedeutet insbesondere, dass sich die usführung vorangehender efehle, welche den raphen verändern, auf die usgabe nachfolgender efehle auswirkt. ei der usgabe Ihres Programms ist roß- und Kleinschreibung nicht relevant. usgabe einer Route: ei allen efehlen, bei denen eine Route erwartet wird, wird diese Strecke auf einer Zeile beginnend mit Startknoten, gefolgt von weiteren Knoten auf der identifizierten Strecke und genau in der richtigen Reihenfolge zum Erreichen des Zielknotens und abschließend mit dem Zielknoten ausgegeben. lle Knoten werden mit genau einer Leerzeichen separiert. Nach dem letzten Zeichen kommen keine weiteren Zeichen vor. eben Sie im olgenden nur die verlangte usgabe aus. Vermeiden Sie weiteren usgaben. Ignorieren Sie beim Speichern und Vergleich der Städtennamen roß- und Kleinschreibung. 2 Seite von 8

6 Programmieren Wintersemester 2/.2.2 : E. search-efehl er search-efehl gibt die istanz der gesuchten Route zwischen zwei Städten auf die Konsole aus. search <Startstadt>;<Zielstadt>;<criterion> <Startstadt> und <Zielstadt> sind jeweils durch ihren Namen repräsentiert wie in bschnitt beschrieben. <criterion> gibt an, nach welchem Kriterium nach einer Route gesucht werden soll. abei gibt es nur Kriterien: time gibt an, dass nach der Strecke mit der kürzesten Zeit gesucht werden soll (Vergleiche bschnitt.). route gibt an, dass nach der kürzesten Strecke in Kilometer gesucht wird (Vergleiche bschnitt.). optimal gibt an, dass nach der optimalen Strecke gesucht wird (vergleiche bschnitt.2). usgabeformat alls <Startstadt> und <Zielstadt> gültige Knoten sind, wird die istanz der Stecke in Kilometer (x), in Minuten (t) oder in x 2 + t 2 - je nach Kriterium - ausgegeben. Somit ist die usgabe nur eine Integer -Zahl. eben Sie keine weiteren Zeichen aus. Im ehlerfall wird eine aussagekräftige ehlermeldung ausgegeben. E.2 route-efehl er route-efehl gibt auf die Konsole aus, welche Route von einer bestimmten Startstadt zu einer bestimmten Zielstadt nach vorgegebenem Kriterium verläuft. enutzen Sie hierzu den Hinweis aus bschnitt.2. route <StartStadt>;<Zielstadt>;<criterion> <StartStadt> und <Zielstadt> sind jeweils durch ihren Namen repräsentiert wie in bschnitt beschrieben. <criterion> gibt an, nach welchem Kriterium eine Route gesucht werden soll. abei gibt es nur Kriterien: time gibt an, dass nach der Strecke mit der kürzesten Zeit gesucht werden soll (Vergleiche bschnitt.). route gibt an, dass nach der kürzesten Strecke in Kilometer gesucht wird (Vergleiche bschnitt.). optimal gibt an, dass nach der optimalen Strecke gesucht wird (vergleiche bschnitt.2). all gibt alle Strecken zwischen den beiden Städten an. usgabeformat alls <Startstadt> und <Zielstadt> gültige Knoten sind, wird die berechnete Route ausgegeben. eim all -efehl wird pro Zeile eine Route ausgegeben. eben Sie keine weiteren Zeichen aus. eachten Sie hierzu den Hinweis unter E zur usgabe von Routen. Im ehlerfall wird eine aussagekräftige ehlermeldung ausgegeben. E. remove-efehl er remove-efehl entfernt eine direkte Verbindung (Kante) zwischen zwei Städten. remove <Stadt >;<Stadt 2 > <Stadt > und <Stadt 2 > sind jeweils durch ihren Namen repräsentiert wie in bschnitt beschrieben. Seite von 8

7 Programmieren Wintersemester 2/.2.2 : usgabeformat alls <Stadt > und <Stadt 2 > gültige Knoten und direkt miteinander verbunden sind, wird die direkte Verbindung zwischen den beiden Städten entfernt. In diesem all wird OK ausgegeben. eben Sie keine weiteren Zeichen aus. Werden alle Kanten zu einem Knoten entfernt, wird der Knoten ebenfalls entfernt. chten Sie darauf, dass die darauf folgenden efehle auf den aktuellen raphen ausgeführt werden. Im ehlerfall wird eine aussagekräftige ehlermeldung ausgegeben. Existiert keine direkte Verbindung zwischen den Städten, wird ebenfalls eine ehlermeldung ausgegeben. Ist der raph durch usführung eines remove -efehls nicht mehr zusammenhängend, wird eine aussagekräftige ehlermeldung ausgegeben und die entsprechende Kante nicht entfernt. E. insert-efehl er insert-efehl fügt eine direkte Verbindung (Kante) zwischen zwei Städten ein. insert <Stadt >;<Stadt 2 >;<EntfernungInKilometer>;<EntfernungInMinuten> <Stadt > und <Stadt 2 > sind jeweils durch ihren Namen repräsentiert wie in bschnitt beschrieben. <EntfernungInKilometer> und <EntfernungInMinuten> sind jeweils die istanz in der beiden Städten in Kilometer und Minuten. usgabeformat Hier ist es ausreichend, wenn eine der beiden Städten (<Stadt > und <Stadt 2 >) ein gültiger Knoten ist. Existiert einer der Knoten nicht, wird er zum raphen hinzugefügt. Schließlich werden die Knoten miteinander direkt durch eine Kante verbunden. In diesem all wird OK ausgegeben. eben Sie keine weiteren Zeichen aus. chten Sie darauf, dass die darauf folgenden efehle auf den aktuellen raphen ausgeführt werden. Im ehlerfall, z.. wenn beide Städte nicht existieren oder wenn bereits eine Kante zwischen den beiden Städten existiert, wird eine aussagekräftige ehlermeldung ausgegeben. Existieren beide Städte nicht, wird ebenfalls eine ehlermeldung ausgegeben. Im ehlerfall wird keine neue Kante zum raphen hinzugefügt. E. info-efehl ieser efehl serialisiert den aktuellen raphen, wie in bschnitt. beschrieben, und gibt sie aus. abei ist die Reihenfolge der Zeilen nicht relevant. ußerdem darf jede Kante nur einmal in der usgabe vorkommen. Ist der raph leer, wird eine leere Zeile ausgegeben. eben Sie keine weiteren Zeichen aus. E. nodes-efehl ieser efehl gibt alle Nachbarknoten zu einem bestimmten Knoten aus. nodes <Stadt> <Stadt> repräsentiert den Knoten, dessen Nachbarknoten ermittelt werden müssen und ist durch ihren Namen repräsentiert wie in bschnitt beschrieben. usgabeformat alls <Stadt> ein gültiger Knoten ist, werden alle seinen Nachbarknoten jeweils in einer Zeile ausgegeben, d.h. pro Zeile wird genau ein Knoten ausgegeben. ie Reihenfolge der Zeilen ist irrelevant. eben Sie keine weiteren Zeichen aus. Im ehlerfall, z.. wenn der Knoten nicht existiert, wird eine aussagekräftige ehlermeldung ausgegeben. E. vertices-efehl ieser efehl gibt alle Knoten in einem raphen aus. vertices Seite von 8

8 Programmieren Wintersemester 2/.2.2 : usgabeformat lle Knoten im raphen werden jeweils in einer Zeile ausgegeben, d.h. pro Zeile wird genau ein Knoten ausgegeben. ie Reihenfolge der Zeilen ist irrelevant. Ist der graph leer, wird eine leere Zeile ausgegeben. eben Sie keine weiteren Zeichen aus. E.8 quit-efehl ieser efehl beendet das Programm. abei findet keine Konsolenausgabe statt. E.9 eispielinteraktion eachten Sie im olgenden, dass Eingabezeilen mit dem > -Zeichen eingeleitet werden, gefolgt von einem Leerzeichen. iese beiden Zeichen sind ausdrücklich kein estandteil des eingegebenen efehls, sondern dienen nur der Unterscheidung zwischen Ein- und usgabe. eispielinteraktion für den Routen-raphen für die Eingabedatei in bschnitt. > search b;d;route > route b;d;route b a d > route b;d;all b a d b a d b a d b d > nodes b a > quit Seite 8 von 8

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben

Mehr

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP

Modul N5 - Routing. Informatik erleben. Anwendung: http, smtp. Transport: TCP, UDP. Segment. Vermittlung: IP. Datagramm. Sicherung: Ethernet, PPP N-Netze Modul - Routing eitrahmen 0 Minuten ielgruppe Sekundarstufe II Inhaltliche Voraussetzung keine, N4 von Vorteil Lehrziel Kennen lernen eines Routing-lgorithmus, sowie der Netzwerkschichten http://www.sxc.hu

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Prof. r. V. Linnemann Lübeck, den. Oktober 00 Universität zu Lübeck Institut für Informationssysteme lgorithmen und atenstrukturen Sommersemester 00. Klausur Lösungen Hinweis: chten Sie bei Programmieraufgaben

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

I.4 Warshall - Algorithmus

I.4 Warshall - Algorithmus I.4 Warshall - lgorithmus er ijkstra - lgorithmus bietet eine relativ schnelle öglichkeit den minimalen Weg zwischen zwei Knoten in einem Graphen zu bestimmen. ei anderer bbruchbedingung erhält man auch

Mehr

Einführung in (Binäre) Bäume

Einführung in (Binäre) Bäume edeutung und Ziele inführung in (inäre) äume Marc Rennhard http://www.tik.ee.ethz.ch/~rennhard rennhard@tik.ee.ethz.ch äume gehören ganz allgemein zu den wichtigsten in der Informatik auftretenden atenstrukturen,

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

WORKFLOW DESIGNDOKUMENT

WORKFLOW DESIGNDOKUMENT Architectural Design WORKFLOW DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 2 Gruppe 86 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289] Gruppe 86 Seite

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Uninformierte Suche in Java Informierte Suchverfahren

Uninformierte Suche in Java Informierte Suchverfahren Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen

Mehr

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben.

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben. ormale Methoden der Informatik WS 2/2 Lehrstuhl für atenbanken und Künstliche Intelligenz ProfrrJRadermacher H Ünver T Rehfeld J ollinger 3 ufgabenblatt esprechung in den Tutorien vom 72 (ab Übungstermin)

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Übungen zu Programmierung I - Blatt 8

Übungen zu Programmierung I - Blatt 8 Dr. G. Zachmann A. Greß Universität Bonn Institut für Informatik II 1. Dezember 2004 Wintersemester 2004/2005 Übungen zu Programmierung I - Blatt 8 Abgabe am Mittwoch, dem 15.12.2004, 15:00 Uhr per E-Mail

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. Musterlösung. Problem 1: Boruvka MST Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University

Mehr

Schwierige Probleme in der Informatik Informationen für die Lehrperson

Schwierige Probleme in der Informatik Informationen für die Lehrperson Schwierige Probleme in der Informatik Informationen für die Lehrperson Thema, Adressaten,... Das Thema dieses Moduls sind NP-vollständige Probleme, also schwierige Probleme in der Informatik. GraphBench

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

Programmcode muss in englischer Sprache verfasst sein. Achten Sie auf fehlerfrei kompilierenden Programmcode 1

Programmcode muss in englischer Sprache verfasst sein. Achten Sie auf fehlerfrei kompilierenden Programmcode 1 Programmieren Sommersemester 05 Software-Design und Qualität (SDQ) https://sdqweb.ipd.kit.edu/wiki/programmieren Prof. Dr. Ralf H. Reussner Philipp Merkle Kiana Rostami Übungsblatt Ausgabe: 04.05.05 3:00

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Verwendung der Visage Java-API

Verwendung der Visage Java-API Verwendung der Visage Java-API Whitepaper Andraes Fest Stand: 2. Mai 2008 bezieht sich auf Cinderella 2.1 Build 961 1 Vorbemerkungen Die interaktive Geometrie-Software Cinderella bietet verschiedene Programmierschnittstellen.

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

Allgemeine Hinweise. Abgabemodalitäten. Checkstyle

Allgemeine Hinweise. Abgabemodalitäten. Checkstyle Programmieren Wintersemester 2014/15 Software-Design und Qualität (SDQ) https://sdqweb.ipd.kit.edu/wiki/programmieren Prof. Dr. Ralf H. Reussner Kiana Rostami Philipp Merkle Abschlussaufgabe 1 Ausgabe:

Mehr

10 Dynamische Programmierung

10 Dynamische Programmierung 137 Dynamische Programmierung Das Prinzip der Dynamischen Programmierung wird häufig bei Fragestellungen auf Worten angewendet..1 Längste gemeinsame Teilfolge Wir betrachten Worte der rt w = a 1 a 2 a

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Programmierprojekt Aufgabe 1

Programmierprojekt Aufgabe 1 v01 10.05.2009 Die Formalitäten vorab (WICHTIG!!!): Technische Universität Darmstadt Fachbereich Informatik Prof. Dr. Johannes Fürnkranz Allgemeine Informatik 2 im SS 2009 Programmierprojekt Aufgabe 1

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick

Mehr

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 13. Aufgabe (13 Punkte) Schreiben Sie eine neue Klasse Zahlenanalyse, mit der Integer-Objekte genauer betrachtet werden können. Bei den zu entwickelnden Methoden kann es immer sinnvoll sein, sich den Ablauf

Mehr

INHALTSVERZEICHNIS. 2D-DXF / DWG Import Allgemeines

INHALTSVERZEICHNIS. 2D-DXF / DWG Import Allgemeines Allgemeines INHALTSVERZEICHNIS 1 2D-DXF / DWG Import...3 1.1 Allgemeines...3 1.2 Starten des Imports...3 1.3 Der Dialog 2D DXF / DWG Datei importieren...3 1.4 Importiertes Symbol platzieren...4 1.5 Eigenschaften

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Einführung in Heuristische Suche

Einführung in Heuristische Suche Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Perzentile mit Hadoop ermitteln

Perzentile mit Hadoop ermitteln Perzentile mit Hadoop ermitteln Ausgangspunkt Ziel dieses Projektes war, einen Hadoop Job zu entwickeln, der mit Hilfe gegebener Parameter Simulationen durchführt und aus den Ergebnissen die Perzentile

Mehr

Customization (Zuschneiden)

Customization (Zuschneiden) Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum

Mehr

Schülerlabor Informatik. Info Sphere. Die Suche nach dem KÜRZESTEN WEG

Schülerlabor Informatik. Info Sphere. Die Suche nach dem KÜRZESTEN WEG Schülerlabor Informatik Info Sphere ie Suche nach dem KÜRZESTEN WEG 9 Januar rtur Nowak Manuel Froitzheim Inhaltsverzeichnis Modulbeschreibung 7 Themenbereich Jahrgangsstufe/Kursart Lehrplanbezug Einbindung

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Export von Schülerdaten für andere Programme

Export von Schülerdaten für andere Programme 23.11.2016 10:43 1/5 Export von Schülerdaten für andere Programme Export von Schülerdaten für andere Programme Datenübertragung Schulverwaltung > Excel Über die Zwischenablage Die Datenübertragung von

Mehr

Ogre Einführung Teil 1

Ogre Einführung Teil 1 Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS3 Slide 1 Wissensbasierte Systeme Sebastian Iwanowski FH Wedel Kap. 3: Algorithmische Grundlagen der KI WBS3 Slide 2 Suchstrategien Warum sind Suchstrategien so wichtig in Wissensbasierten Systemen?

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Wie findet das Navi den Weg?

Wie findet das Navi den Weg? 0.05.0 Verwandte Fragestellungen Problemstellungen aus der Praxis Prof. Dr. Paul Rawiel Gliederung des Vortrags Speicherung von Kartendaten zur Navigation Kriterien für die Navigation Finden des kürzesten

Mehr

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

Übungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr

Übungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2014/2015 Universität Freiburg Institut für Informatik Übungsblatt 2

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne

Mehr

Auswahl von Klauseln und Atomen in Prolog

Auswahl von Klauseln und Atomen in Prolog 5.6 Prolog... ist die bekannteste Implementierung einer LP-Sprache; wurde Anfang der 1970er von Alain Colmerauer (Marseille) und Robert Kowalski (Edinburgh) entwickelt. konkretisiert den vorgestellten

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 7. Random Walks Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 43 Überblick Überblick Ein randomisierter

Mehr

Shell-Programmierung

Shell-Programmierung Shell-Programmierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Shell-Programmierung 1/34 2009-04-27 Inhalt Einleitung

Mehr

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen

Mehr

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte] UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

3 Lineare elektrische Gleichstromkreise

3 Lineare elektrische Gleichstromkreise 3. Eigenschaften elektrischer Stromkreise 7 3 Lineare elektrische Gleichstromkreise 3. Eigenschaften elektrischer Stromkreise Lineare elektrische Stromkreise bestehen aus auelementen mit einer linearen

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Algorithmen und Datenstrukturen Graphen - Einführung

Algorithmen und Datenstrukturen Graphen - Einführung Algorithmen und Datenstrukturen Graphen - Einführung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Definition / Eigenschaften Anwendungen Repräsentation

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Lösungsvorschläge Blatt Z1

Lösungsvorschläge Blatt Z1 Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /

Mehr

Moderne Betriebssysteme

Moderne Betriebssysteme ndrew S. Tanenbaum Moderne etriebssysteme 2. überarbeitete uflage übersetzt von Prof. Dr. Uwe aumgarten Technische Universität München ein Imprint der Pearson Education Deutschland GmbH KPITEL 3 Deadlocks

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

Effiziente Algorithmen I

Effiziente Algorithmen I H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Thomas Behr. 17. November 2011

Thomas Behr. 17. November 2011 in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über

Mehr

Binary Decision Diagrams (BDDs) 1

Binary Decision Diagrams (BDDs) 1 Handout 22.11.2011 Binary Decision Diagrams (BDDs) 1 Übersicht Es gibt viele verschiedene Möglichkeiten um Boole sche Funktionen zu repräsentieren (Boole sche Formeln, Minterme, Wahrheitstabellen, ). Manche

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesungen 5 und 6 Programm

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

4. Übung - Betriebssysteme

4. Übung - Betriebssysteme 1. ufgabe: Systemstart 4. Übung - etriebssysteme Informatik I für Verkehrsingenieure ufgaben inkl. eispiellösungen a Welche ufgabe hat das IOS und was passiert beim Starten eines Systems? b Welche ufgaben

Mehr

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) Berlin, 21. Februar 2013 Name:... Matr.-Nr.:... Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13) 1 2 3 4 5 6 7 8 9 Σ Bearbeitungszeit: 90 min. max. Punktezahl:

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012

183.579, SS2012 Übungsgruppen: Do., 14.6. Mi., 20.6.2012 VU Technische Grundlagen der Informatik Übung 8: Systemsoftware und Netzwerke 183.579, SS2012 Übungsgruppen: o., 14.6. Mi., 20.6.2012 ufgabe 1: Virtual Memory Zeichnen Sie ein System das Paging zur Speicherverwaltung

Mehr

Wiederholung zu Flüssen

Wiederholung zu Flüssen Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:

Mehr