EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Claudio Moraga; Gisbert Dittrich
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
Claudio Moraga; Gisbert Dittrich
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 5 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 4 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 2 Gisbert Dittrich; Claudio Moraga FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 12 Claudio Moraga, Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 11 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 10 Claudio Moraga; Gisbert Dittrich FBI Unido
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Minimum Spanning Tree: MST
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Kapitel 8: Graphalgorithmen 8. 1 Grundlagen 8
Petrinetze 1. Einführung Informatik : wesentlich Modellierung von
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
se_4_graphen_und_baeume_I.ppt1 Softwareengineering Graphen und Bäume 1 Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law.
1 // 13_2_ADT_Unger_Graph // ungerichteter, knotenmarkierter Graph als ADT // #include struct Knoten { public: void Erzeuge_Kn (int, char*); char* Get_Marke.
Analyse der Laufzeit von Algorithmen
10 Graphen gerichtete und ungerichtete, mit Marken an Ecken und/oder Kanten Anwendungsgebiete: Verkehrsnetze, Kommunikationsnetze, Netzpläne, Spiele,...
1 // Heap als ADT // JW: V1.0 // Vorlage gemaess EED-Quelltext // #include #include // für double pow (double d, int i) #include // fuer INT_MIN.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Graph_Algorithmen Einführung Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Präsentation transkript:

EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Gliederung Kapitel 13 (Knotenmarkierter) ungerichteter Graph –Definition –Eigenschaften ADTs für Knoten, Kante, Graph Implementierungen dazu Sehr einfacher Einsatz

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Aufgabe Definiere (knotenmarkierten) ungerichteten Graphen und entwickle dazu ADT und implementiere diesen.

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Beispiel:

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Definition: G = (V, E) heißt ungerichteter Graph mit Knotenmenge V und Kantenmenge E, falls jedes e E eine zweielementige Teilmenge von V ist. V ist endlich. Anmerkungen: –Falls {v, w} E, sind v und w durch eine ungerichtete Kante miteinander verbunden. Beachte: {v, w} und {w, v} beschreiben dieselbe Menge, also auch Kante. –Kanten von v zu sich selbst sind damit nicht zu erhalten!

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Beispiel: G 1 = (V 1,E 1 ) mit: V 1 = {1,....., 7} E 1 = {{1,2}, {1,6}, {2,3}, {2,7},{3,4},{4,5}, {5,6}, {5,7}}

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Definitionen: –Sei G = (V,E) ein ungerichteter Graph. – (v 0,...,v n ) heißt Pfad von v 0 nach v n für v i V, falls {v i-1, v i } E für 1 i n. –G heißt zusammenhängend, falls es zu zwei verschiedenen Knoten v und w stets einen Pfad von v nach w gibt. –

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Beispiel: G 2 = (V 2,E 2 ) mit: V 2 = {1,....., 7} E 2 = {{1,2}, {2,3},{4,5}, {5,6}, {5,7}} Pfad: {1,2,3} Nicht zusammenhängend

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Darstellung von Graphen Mengentheoretisch wie in Definition Adjazenzmatrix –Liegt zwischen i und j eine Kante, so setzt man a(i, j) = 1, sonst setzt man a(i, j) = 0. –Aufwand: Da nur für "Hälfte" oberhalb der Diagonale nötig: Benötige für n Knoten n*(n-1)/2 Speicherplätze für die Kanten, Jedoch: Meist sind Graphen eher spärlich besetzt. Adjazenzliste –Speichere alle Nachbarn eines Knotens in einer Liste.

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Beispiel: G 3 = (V 3,E 3 ) mit: V 3 = {4, 5, 6, 7} Mengentheoretisch: E 3 ={{4, 5}, {5, 6}, {5, 7}} Adjazenz-Matrix:Adjazenz-Liste: {5} 5 {4,6,7} 6 {5} 7 {5}

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph Hinzunahme weiterer Informationen: z.B. Definition: KG = (G, M, km) ist knotenmarkierter ungerichteter Graph genau dann, wenn: 1. G =(V,E) ist ungerichteter Graph 2. M Markierungsmenge 3. km: V --> M ist Knotenmarkierung Analog etwa: –Kantenmarkierte ungerichtete Graphen

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich Ungerichteter Graph (knotenmarkiert) Beispiel: KG 1 = (G 1, M 1, km 1 ) mit: G 1 : siehe vorher M 1 : Wörter über Alphabet km 1 : siehe nebenstehende Zeichnung Essen Dü Köln So D W H

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich ADT Knoten Knoten –Beschreibungs- komponenten: ID Markierung –Operationen: Erzeuge Knoten Setze Markierung Liefere ID Liefere Markierung struct Knoten { private: int ID; char * Markierung; public: void Erzeuge_Kn (int, char*); void Set_Marke (char*); int Get_ID (); char* Get_Marke (); };

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich ADT Kante Kante –Beschreibungs- komponenten: "Start"-Knoten "Ziel"-Knoten –Operationen: (Erzeuge Kante) Setze Startknoten Setze Zielknoten Liefere Startknoten Liefere Zielknoten struct Kante { private: Knoten * StartKn; Knoten * ZielKn; public: void Set_StartKn (Knoten *); void Set_ZielKn (Knoten *); Knoten * Get_StartKn (); Knoten * Get_ZielKn (); };

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich ADT Graph Graph Menge der Knoten Menge der Kanten –Operationen: Erzeuge (leeren) Graphen Füge Knoten/Kante ein Lösche Knoten/Kante Graph ist leer ? Enthält Knoten/ Kante x ? Gib den Graphen aus struct Graph { private: Knotenlistenelement* Knotenliste; Kantenlistenelement* Kantenliste; Kantenlistenelement* Hilf; public: void Init(); void Knoten_Einfuegen(int, char*); void Kante_Einfuegen(int, int); void Knoten_Loeschen(int); void Kante_Loeschen(int); bool Istleer(); bool IstKnotenda(int); bool IstKanteda(int, int); void Druck(); };

Kap 13: Ungerichtete GraphenVorl EINI-I"Prof. Dr. G. Dittrich ADT Graph Hilfsgrößen Graph Hilfsgrößen Knoten/Kanten zur Verwendung in Listen "einpacken" struct Knotenlistenelement { Knoten aktKnoten; Knotenlistenelement * naechsterKn; }; struct Kantenlistenelement { Kante aktKante; Kantenlistenelement * naechsteKa; }; Programm: