1 topologisches Sortieren



Ähnliche Dokumente
Konzepte der Informatik

Anmerkungen zur Übergangsprüfung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Informationsblatt Induktionsbeweis

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Primzahlen und RSA-Verschlüsselung

1 Mathematische Grundlagen

Erstellen von x-y-diagrammen in OpenOffice.calc

Beispiel(unten ist der Spielfeldrand):

Grundlagen der Theoretischen Informatik, SoSe 2008

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Wie halte ich Ordnung auf meiner Festplatte?

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Wir machen neue Politik für Baden-Württemberg

Professionelle Seminare im Bereich MS-Office

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Breiten- und Tiefensuche in Graphen

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Kapiteltests zum Leitprogramm Binäre Suchbäume

Zwischenablage (Bilder, Texte,...)

Software- und Druckerzuweisung Selbstlernmaterialien

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Zahlen auf einen Blick

Lehrer: Einschreibemethoden

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Repetitionsaufgaben Wurzelgleichungen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Informatik I WS 07/08 Tutorium 24

Anleitung über den Umgang mit Schildern

Berechnung der Erhöhung der Durchschnittsprämien

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

Kurzanleitung LFB-Online für Schulen

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Modellbildungssysteme: Pädagogische und didaktische Ziele

Übungsaufgaben Tilgungsrechnung

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Internet online Update (Mozilla Firefox)

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Geld Verdienen im Internet leicht gemacht

Musterlösungen zur Linearen Algebra II Blatt 5

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Sollsaldo und Habensaldo

Anzeige von eingescannten Rechnungen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Kapitel 6: Graphalgorithmen Gliederung

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Anleitung, WebRecherche

Arbeiten mit UMLed und Delphi

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

7 Rechnen mit Polynomen

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Das Briefträgerproblem

Erfahrungen mit Hartz IV- Empfängern

Was ist das Budget für Arbeit?

1. Was ihr in dieser Anleitung

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Kurzanleitung MAN E-Learning (WBT)

Gruppenrichtlinien und Softwareverteilung

Papierverbrauch im Jahr 2000

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

WS 2013/14. Diskrete Strukturen

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

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

4 Aufzählungen und Listen erstellen

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

iphone- und ipad-praxis: Kalender optimal synchronisieren

Leichte-Sprache-Bilder

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Algorithmen und Datenstrukturen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Satzhilfen Publisher Seite Einrichten

Webalizer HOWTO. Stand:

Das Leitbild vom Verein WIR

Dokumentenverwaltung im Internet

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

WS 2009/10. Diskrete Strukturen

Evangelisieren warum eigentlich?

BERECHNUNG DER FRIST ZUR STELLUNGNAHME DES BETRIEBSRATES BEI KÜNDIGUNG

Dies sind die von Ihnen angeforderten QuantumNews für Kunden und Freunde der Naturheilpraxis * Andreas Frenzel * QuantumTao * Coaching * Paarberatung

Windows Server 2012 RC2 konfigurieren

Teil 1: IT- und Medientechnik

Klinikmütze. Es eignen sich Jersey- oder Interlockstoffe, am Besten mit Elasthananteil.

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer :00 Uhr

CodeSaver. Vorwort. Seite 1 von 6

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Speicher in der Cloud

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Arbeitsblätter. Sinnvolle Finanzberichte. Seite 19

Transkript:

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 möglich) b) v an Ausgabeliste anhängen c) v und alle Kanten welche von v ausgehen löschen. Grundidee Häufig können Daten nicht eindimensional in Listen dargestellt werden, sondern es sind kompliziertere Datenstrukturen nötig. Wenn auch Bäume nicht ausreichen, bietet sich eine Darstellung als Graph an. Diese bestehen aus Knoten (mit einer Beschriftung) und Kanten, welche je zwei Knoten (gegebenenfalls mit Richtung) verbinden können. Bäume (und damit auch Listen) sind daher offenbar Spezialfälle von Graphen. Offenbar sind auch für diese komplexeren Strukturen Sortier- und Suchalgorithmen notwendig. Im Folgenden wird daher die topologische Sortierung sowie die Tiefen- und Breitensuche erläutert. Ein gerichteter Graph ist sehr gut geeignet, um Abhängigkeiten darzustellen. Beispielsweise benötigt man zum Bestehen der Logikklausur Wissen über Aussagen- und Prädikatenlogik. Die Prädikatenlogik setzt die Aussagenlogik voraus. Damit man weiß, worauf man sich einlässt, sollte man Lord of Logic sehen und zur Vorbereitung auf die Prädikatenlogik bietet sich hoelli.avi an. Insgesamt lässt sich dies als Graph darstellen: Aussagenlogik Prädikatenlogik Lord of Logic Klausur hoelli.avi Die Frage der topologischen Sortierung ist nun: In welcher Reihenfolge sollte man lernen, um die Klausur zu bestehen? (Zum Beispiel könnte man zuerst Lord of Logic schauen, dann die Aussagenlogik lernen, danach hoelli.avi anschauen, die Prädikatenlogik lernen und schließlich zur Klausur gehen.). Erklärung am Beispiel Folgender gerichteter Graph soll topologisch sortiert werden: Ausgabeliste: Zuerst sucht man einen Knoten in dem Graphen, zu dem keine Kante führt. In diesem Fall gehen von Knoten und je zwei Kanten aus, aber es führt keine Kante zu den beiden Knoten. Wir können also entweder den Knoten oder wählen. Im folgenden Bild

Wolfgang Hönig / Andreas Ecke WS 09/0 wurde Knoten gewählt und deshalb an die Ausgabeliste drangehängt. Da dieser Knoten nun komplett abgearbeitet wurde, kann er ohne weiteres inklusive der zugehörigen Kanten gelöscht werden: Ausgabeliste: Jetzt wird wieder ein Knoten gesucht, zu dem keine Kanten führen ( oder erfüllen die Bedingung). Nach dem Anhängen an die Liste und löschen von Knoten ergibt sich: Ausgabeliste:, Diesmal fällt die Auswahl auf Knoten : Ausgabeliste:,, Jetzt bleibt nur noch Knoten übrig, welcher die Eigenschaft erfüllt: Ausgabeliste:,,, Nun ist nur noch Knoten auswählbar: Ausgabeliste:,,,, Es ergibt sich schließlich:,,,,,. Aus dem Text ist ersichtlich, dass die Wahl des Knotens v teilweise beliebig ist (Am Anfang zum Beispiel oder ). Deshalb gibt es auch mehrere korrekte Lösungen:,,,,, oder,,,,, oder,,,,, oder,,,,,... Eigenschaften Komplexität: O(n + m) mit n... Anzahl Knoten, m... Anzahl Kanten

Tiefensuche (DFS). Aufgabentyp Der gerichtete Graph G = (V, E) sei durch folgende Darstellung gegeben: [...] Wenden Sie auf den Graphen G den DFS-Algorithmus mit dem Startknoten [...] an, und bestimmen Sie auf diese Weise einen depth first forest. Geben Sie mindestens drei unterschiedliche Lösungen an. Zwischenschritte zu den Lösungen brauchen Sie nicht anzugeben.. Überblick. Startknoten v übernehmen, falls noch nicht besucht. für jeden nicht besuchten Nachfolger u in v a) Kante von v nach u b) Tiefensuche(u) (rekursiv!). Falls Tiefensuche komplett beendet (inklusive rekursiver Abbau): Tiefensuche(u) für einen noch nicht besuchten Knoten u. Grundidee Große Graphen sind meist nicht in ihrem gesamten Ausmaß bekannt (d.h. die komplette Menge der Knoten und Kanten ist nicht bekannt), sondern es existiert ein bekannter Knoten. Jeder Knoten wiederum kennt seine Nachfolger (also die Kanten). Zum Beispiel kann das Internet als Graph aufgeschrieben werden, wobei nur ein Startknoten bekannt ist (der eigene Computer) sowie einige Kanten (Nachbarcomputer). Soll nun ein bestimmter Knoten gesucht werden, muss natürlich verhindert werden, dass ein Knoten mehrmals besucht wird. Ansonsten könnte die Suchanfrage durch Zyklen in dem Graphen ewig andauern. Ziel einer Suche auf Graphen ist also primär doppeltes Besuchen von Knoten zu vermeiden. Letztendlich gibt es zwei verschiedene Strategien: Tiefen- und Breitensuche. Bei der Tiefensuche wird ein Nachfolgerknoten bevorzugt behandelt, während bei der Breitensuche (nahezu) alle Nachfolger gleichmäßig abgearbeitet werden. Die eigentliche Suche rückt bei uns etwas in den Hintergrund - es wird jeweils nur der Suchbaum (bzw. Suchwald) betrachtet. Das ist die Datenstruktur, welche im worst-case (Element nicht gefunden) entstehen würde. Um eine vollständige Suche herzustellen ist nur bei jedem neuen Element ein jeweiliger Vergleich nötig. Prüfungsrelevant ist jedoch nur der Wald, welcher bei der Tiefensuche auf gerichteten Graphen entsteht, beziehungsweise der Baum, welcher bei der Breitensuche auf ungerichteten Graphen entsteht.. Erklärung am Beispiel Folgender gerichteter Graph sei gegeben:

Wolfgang Hönig / Andreas Ecke WS 09/0 Als erstes kann ein Startknoten ausgesucht werden (in der Klausur ist dieser meist vorgegeben). Hier soll Knoten gewählt werden. Dieser hat die Nachfolgerknoten, und. Alle drei Nachfolger wurden noch nicht besucht. Also wählen wir einen Nachfolger - z.b. die - aus, ziehen eine Kante von nach, rufen Tiefensuche() auf und erhalten: Die hat keinen Nachfolger, sodass kein weiterer rekursiver Aufruf erfolgen kann. Also betrachten wir wieder eine Ebene obendrüber den Knoten. Dieser hat jetzt noch zwei nicht besuchte Nachfolger: und. Wir wählen wiederum einen Nachfolger aus (hier die ), ziehen eine Kante von nach und rufen Tiefensuche() auf. Damit ergibt sich: Der Knoten hat nur einen noch nicht besuchten Nachfolger: die. Damit erhalten wir: Die hat wiederum nur einen Nachfolger (die ). Allerdings wurde diese schon besucht, sodass kein rekursiver Aufruf erfolgen kann. Wir betrachten also wieder eine Ebene niedriger: den Knoten. Auch dieser Knoten hat keine noch nicht besuchten Nachfolger, so dass wiederm eine Ebene tiefer betrachtet wird: die. Hier ist noch ein nicht besuchter Knoten übrig, nämlich die, sodass sich ergibt: Die hat keine noch nicht besuchten Nachfolger. Also betrachten wir wieder die nächsthöhere Ebene. Auch die hat keine noch nicht besuchten Nachfolger mehr. Also muss die Tiefensuche noch einmal für einen anderen Startknoten aufgerufen werden. In diesem Beispiel bietet sich die an:

Wolfgang Hönig / Andreas Ecke WS 09/0 Der Knoten hat nur einen noch nicht besuchten Nachfolger: die : Die hat keine nicht besuchten Knoten mehr, ebenso wenig wie die Ebene obendrüber (Knoten ). Also wurden alle Knoten mit der Tiefensuche erschlossen und der Algorithmus ist fertig. In der Klausur ist Baum und kein gerichteter Graph gefordert. Damit ergibt sich als korrekte Schreibweise: Auch hier sind wieder sehr viele verschiedene Lösungen möglich, je nachdem wie die Knotenreihenfolge gewählt wird. Bei Startknoten ist zum Beispiel auch folgende Lösungen korrekt: oder.. Eigenschaften Komplexität: O(n + m) mit n... Anzahl Knoten, m... Anzahl Kanten

Breitensuche (BFS). Aufgabentyp Der ungerichtete Graph G = (V, E) sei durch folgende Darstellung gegeben: [...] Wenden Sie auf den Graphen G den BFS-Algorithmus mit dem Startknoten [...] an, und bestimmen Sie auf diese Weise einen breadth first tree. Geben Sie mindestens drei unterschiedliche Lösungen an. Zwischenschritte zu den Lösungen brauchen Sie nicht anzugeben.. Überblick. Startknoten an Warteschlänge hängen. Solange Warteschlage nicht leer: Element v aus der Warteschlage entnehmen und für jeden nicht besuchten Nachfolger u von v: Kante von v nach u u an Warteschlange hängen. Grundidee siehe Tiefensuche.. Erklärung am Beispiel Folgender ungerichteter Graph sei gegeben: Warteschlange: Als erstes kann ein Startknoten ausgesucht werden (in der Klausur ist dieser meist vorgegeben). Hier soll Knoten gewählt werden. Also wird die an unsere Warteschlange W = gehängt. Jetzt wird das erste Element aus der Warteschlange entnommen, in diesem Fall also die. Knoten hat die Nachfolgerknoten,, und. Alle vier Nachfolger wurden noch nicht besucht. Also zeichnen wir eine Kante von nach, nach, nach und nach. Und hängen diese Nachfolgerknoten an die Warteschlange: Warteschlange:,,, Jetzt wird wieder das erste Element - diesmal die - aus der Schlange entnommen. Es gibt nur einen noch nicht besuchten Nachfolgerknoten: Knoten. Also zeichnen wir eine Kante von nach und fügen die der Warteschlange hinzu:

Wolfgang Hönig / Andreas Ecke WS 09/0 Warteschlange:,,, Das nächste Element, welches entnommen wird ist die. Der einzige Nachfolgerknoten ist die, welche an die Warteschlange gehängt wird. Zustätzlich entsteht die neue Kante von nach : Warteschlange:,,, Nun müssen der Reihe nach noch die,, und abgearbeitet werden. Da aber keiner dieser Knoten noch nicht besuchte Nachfolger hat, ist die Breitensuche beendet. In der Klausur ist ein Baum und kein Graph gefordert. Damit ergibt sich als korrekte Schreibweise: Auch hier sind wieder sehr viele verschiedene Lösungen möglich, je nachdem wie die Knotenreihenfolge gewählt wird. Bei Startknoten ist zum Beispiel auch folgende Lösung korrekt: Mit Startknoten ergibt sich: oder.. Eigenschaften Komplexität: O(n + m) mit n... Anzahl Knoten, m... Anzahl Kanten