Graphen und Netze als Planungsmodelle. von: Prof. Dr. rer. nat. habil. Günter Nägler

Größe: px
Ab Seite anzeigen:

Download "Graphen und Netze als Planungsmodelle. von: Prof. Dr. rer. nat. habil. Günter Nägler"

Transkript

1 1 Graphen und Netze als Planungsmodelle von: Prof. Dr. rer. nat. habil. Günter Nägler

2 2 Vorwort Dieses Buch zielt auf die Verbreitung der Kenntnisse über graphische Modelle der Operation Research, die bei Planungsaufgaben genutzt werden. Es geht einerseits um Planungsaufgaben, die in der Nähe der klassischen Transportkostenoptimierung liegen und andererseits um das Gebiet Netzplantechnik. Mathematisch gesehen stehen damit einerseits die Stromoptimierung auf Graphen Transportmodelle und andererseits die Spannungsoptimierung auf Graphen Netzplantechnik im Blickfeld. Für beide Aufgabenklassen gibt es sehr effiziente und leicht beherrschbare Bearbeitungsalgorithmen. Dem Autor geht es darum, Kenntnisse über von ihm bearbeitete Erweiterungen dieses als klassisch zu bezeichnenden Instrumentariums zu verbreiten Erweiterungen durch die Möglichkeit, Bogen zu kopppeln, d.h. von ihren Strom- bzw. Spannungskomponenten die Einhaltung vorgegebener Proportionen zu fordern. Diese Möglichkeit gibt dem Modellierer praktischer Aufgaben ein stark erweitertes Instrument in die Hand, für das der Rechenvorteil und die Übersicht über den Rechenverlauf von Optimierungen zwar sinkt, das aber gegenüber Verfahren, die sich auf Matrizen stützen (lineare Optimierung) in der Regel vorteihaft bleibt. Im Kapitel 6, Optimierung des Ressourceneinsatzes in Netzplänen, wird ein Modell betrachtet, das sogar Strom- und Spannungsaufgaben durch Kopplung verbindet, d.h. vom Fluss durch den Bogen eines Netzes wird gefordert, dass er zur Spannung in einem Bogen eines anderen Netzes eine vorgegebene Proportion einhält. Mit diesem Modell wird eine lokale Optimierung klasischer Ressourceneinsatzaufgaben aufgebaut, die zur heuristischen Bearbeitung dieser NP-hard-Probleme genutzt wird. Obwohl die im Buch vorgelegten Problemlösungen relativ alt sind, sind sie nach Meinung des Autors noch wenig bekannt, weshalb diese Publikation Abhilfe schaffen will. Die folgenden Ausführungen decken sich teilweise stark mit Darlegungen des Autors in [Nä/St]. Diese Übernahme dient dem geschlossenen Überblick über die gezeigten Methoden und soll insbesondere die Leichtigkeit demonstrieren, mit der man mit ihnen auch komplexere Aufgaben lösen kann. Im Kapitel 1 wird das benutzte Instrumentarium der Graphentheorie zusammengestellt, wobei, im Gegensatz zur üblichen Darstellung, konsequent der gerichtete Graph und die Basisdarstellung von Strömen und Spannungen über Gerüste und Cogerüste in den Vordergrund gerückt werden. Ferner wird mit Blick auf programmierbare Algorithmen, ein Modell der Bearbeitung im Computer durch Vorgabe geeigneter Objektklassen vorgestellt, dass in den weiteren Kapiteln ausgebaut wird. Es sei an dieser Stelle vermerkt, dass der Autor gleizeitig zwei Programmpakete (Transportprogramm und Netzplanprogramm) offen legt, die dieses Softwareinstrumentarium ausbauen. Alle im folgenden Text vorgestellten Algorithmen und einige weitere sind in einem dieser Programme im Java-Quellcode zu finden. Das Programm Transportprogramm wurde im Rahmen der Diplomarbeit [Sch], gestützt auf Vorlagen aus der Lehre des Autors, erarbeitet. Kapitel 2 beschäftigt sich mit gut bekannten einfachen Netzwerkalgorithmen zur Suche nach kürzesten bzw. längsten Wegen und Minimalgerüsten. Kapitel 3 ist der Minimalkosten-Stromoptimierung also der klassischen Transportkostenoptimierung und der analogen Minimalkosten-Spannungsoptimierung gewidmet und wirft auch einen Blick auf so genannte Tourenprobleme. Die Minimalkosten-Spannungsaufgabe wird genutzt, um die Aufgabe der kostenminimalen Kürzung des kritischen Weges in klassischen Netzplänen zu bearbeiten (Aufgabe von Kelley [1]). Kapitel 4 beschäftigt sich mit der oben genannten Kopplung von Flüssen bei Stromoptimierungsaufgaben. Sie wird über Anwendungsmodelle eingeführt und motiviert und im Anschluss theoretisch und algorithmisch behandelt. Kapitel 5 führt in die Netzplantechnik ein, wobei die klassischen Grundlagen nur knapp behandelt werden, vielmehr ein allgemeineres Modell eingeführt wird, dass nach dem Wissen des Autors heute nur noch wenig genutzt wird (Es wurde um 1965 in der DDR vom Autor und seinem Team entwickelt.), obwohl es für praktische Aufgaben starke Modellierungsmöglichkeiten bietet. Dieses Modell beruht mathematisch auf der Spannungsoptimierung mit Bogenkopplungen analog zur Stromaufgabe und es mag durchaus sein, dass die geringe Verbreitung des Wissens über deren Bearbeitung Ursache der geringen Verbreitung des leistungsstarken Modells ist. Der mathematische

3 Hintergrund des Modells, die Spannunggsaufgabe mit Bogenkopplung, wird im Kapitel als Analogon zur Stromaufgabe behandelt und gelöst und zur Bearbeitung der Projekt-Dauer-Kosten-Optimierung genutzt eine Aufgabe, die einerseits als Verallgemeinerung der im Kapitel 3 behandelten Kürzung des kritischen Weges im klassischen Netzplan anzusehen ist, andererseits die Basisrechnung für das verallgemeinerte Netzplanmodell darstellt. Kapitel 6 schließlich als Höhepunkt widmet sich Aufgaben der Ressourceneinsatzoptimierung in dem genannten allgemeinen Netzplanmodell. 3

4 4 Inhaltsverzeichnis 1. Grundbegriffe der Graphentheorie Definition des Graphen Die Datenstruktur Graph Weitere Grundbegriffe der Graphentheorie Erreichbarkeit, Zusammenhang, Kreisfreiheit Einfache Netzaufgaben Suche nach kürzesten Wegen Suche nach längsten Wegen Minimalgerüste Minimalkosten-Strom- und Spannungsoptimierung Einfache Transportkosten-Minimierung Ergänzung der theoretischen Grundlagen Ströme und Spannungen Lösbarkeit des Minimalkosten-Stromproblems Grundlagen des Lösungsalgorithmus für das Minimalkosten-Stromproblem Gleichgewichts-Algorithmus zur Lösung des Minimalkosten-Stromproblems Anwendungsbeispiel Tourenproblem Das Minimalkosten-Stromproblem mit einem freien Parameter Das Minimalkosten-Spannungsproblem Grundlagen Gleichgewichts-Algorithmus zur Lösung des Problems der Kürzung des kritischen Wegs Minimalkosten-Stromproblem mit gekoppelten Flüssen Motivierung und Aufgabenstellung Theoretische Grundlagen für die Lösung des Minimalkosten-Stromproblems mit Kopplungen Ein Lösungsalgorithmus für das Minimalkosten-Stromproblem mit Kopplungen (MKSK) Algorithmus zur Bestimmung eines Gerüsts zur Startlösung x = und des zugehörigen Potentials Gleichgewicht für den Out-of-Kilter-Bogen Softwaretechnische Realisierung des Algorithmus Beispiele für das Minimalkosten-Stromproblem mit Kopplungen Ein Zahlenbeispiel für die zeitabhängige Produktionsmengenplanungen Das Knappsackproblem als Minimalkosten-Stromproblem mit Kopplungen Das Mehrsorten-Stromproblem Netzplantechnik Einfache Netzplanmodelle Erweitertes Netzplanmodell Grundlagen Umsetzung des Netzplans in ein Modell des Minimalkosten-Potentialproblems Ein Lösungsalgorithmus für das Netzplan-Minimalkosten-Potentialproblem (NMKP) Basislösung Ermittlung einer Startlösung Die Prozedur Gleichgewicht...112

5 5 5.4 Projekt-Kosten in Abhängigkeit von der Projektdauer Planung des Ressourceneinsatzes in Arbeitsabläufen Grundlagen Verbrauchsressourcen Erneuerbare Ressourcen Kostenminimierung zeitabhängiger Ressourcenströme Einführung Kostenminimierung des Ressourceneinsatzes ein heuristischer Lösungsalgorithmus Rechentechnische Realisierung..141 Literatur.145 Sachwortverzeichnis 146

6 6 Kapitel 1: Grundbegriffe der Graphentheorie 1 Grundbegriffe der Graphentheorie 1.1 Definition des Graphen Unsere Vorstellung von einem Graphen ist die eines gezeichneten Gebildes aus Knoten, die durch Linien oder Pfeile verbunden sind. A C B D A B B C D Bild 1.1: Zwei isomorphe Graphen (Sie veranschaulichen dieselbe Struktur.) Die Knoten modellieren Objekte der Realität, die Verbindungen zwischen den Knoten modellieren strukturelle Beziehungen zwischen den Objekten. Als Modell der Verbindung zwischen zwei Knoten Kn und Kn wählen wir das geordnete Knotenpaar [Kn, Kn']. Kn Kn Bild 1.2: Ein Pfeil, genannt Bogen, veranschaulicht ein geordnetes Knotenpaar. Betrachten wir eine Menge solcher Paare, so müssen diese unterscheidbar, also paarweise verschieden sein. Bei Anwendungen von Graphen z.b. zur Modellierung von Straßennetzen ist es jedoch häufig sinnvoll, mehrere gleiche, parallele Verbindungen zu betrachten. Das erreichen wir, wenn wir statt einer Menge eine geordnete Menge / Tupel / Liste heranziehen. Definition G = [K, B] heißt endlicher g e r i c h t e t e r G r a p h, wenn K eine endliche Liste gleichartiger aber paarweise verschiedener Objekte so genannter Knoten ist und B eine Liste geordneter Paare von Elementen aus K so genannter Bogen. K = [Kn 1, Kn 2,..., Kn n ] heißt K n o t e n l i s t e des Graphen. B = [Bg 1, Bg 2,..., Bg m ] heißt B o g e n l i s t e des Graphen Ist Bg = [Kn, Kn'] ein Knotenpaar aus B, so nennen wir Kn den A n f a n g s k n o t e n des Bogens Bg (Kn = AKn(Bg)), Kn' den E n d k n o t e n des Bogens Bg (Kn' = EKn(Bg)), Kn, Kn' a d j a z e n t e ( verbundene ) K n o t e n, Bg E i n g a n g s b o g e n von Kn' und A u s g a n g s b o g e n von Kn und schließlich Bg i n z i d e n t sowohl mit Kn als auch mit Kn'. m = B, n = K Sind Bg, Bg B zwei verschiedene Elemente der Bogenliste, aber es gilt, Bg = [Kn, Kn ] und Bg = [Kn, Kn ], so nennen wir Bg und Bg zueinander parallele Bogen. Ein Graph ohne parallele Bogen heißt schlicht.

7 Kapitel 1: Grundbegriffe der Graphentheorie 7 Ein schlichter gerichteter Graph wird auch als Digraph bezeichnet (von dem englischen directed graph ). Er ist eine Veranschaulichung des wichtigen mathematischen Begriffs der Relation, genauer, einer zweistelligen Relation B in der Menge K, B K K. Parallele Bogen sind zu unterscheiden von Gegenbogen. Gilt Bg = [Kn, Kn'] und Bg' = [Kn', Kn], so heißt Bg Gegenbogen von Bg' und natürlich auch Bg' Gegenbogen von Bg. Ein Paar von Bogen, die zueinander Gegenbogen sind, wollen wir als Kante des Graphen bezeichnen, durch (Kn, Kn') = (Kn', Kn) symbolisieren und durch eine ungerichtete Linienverbindung zwischen den Knoten Kn und Kn' graphisch veranschaulichen. Ist ein Graph vollständig symmetrisch, d.h. existiert zu jedem seiner Bogen auch der Gegenbogen, so heißt er ungerichteter Graph. Der ungerichtete Graph wird im Allgemeinen nur durch Kanten veranschaulicht. Er ist in der hier vertretenen Auffassung ein Spezialfall des gerichteten Graphen. Ein ungerichteter Graph ist in gleicher Weise Verallgemeinerung der symmetrischen Relation wie es der gerichtete hinsichtlich der beliebigen Relation ist. Beispiel Stellen wir uns einen Graphen als Straßennetz vor, so entspricht einem Knoten eine Straßenkreuzung, einem Bogen eine Einbahnstraße mit einer Fahrspur, parallelen Bogen entsprechen Einbahnstraßen mit mehreren Fahrspuren, Kanten entsprechen Straßen mit je einer Fahrspur in jeder Fahrtrichtung, und parallelen Kanten entsprechen Straßen mit mehreren Fahrspuren (gleiche Anzahl) in jeder Fahrtrichtung. Eine Straße mit zwei Fahrspuren in der einen Richtung und drei Fahrspuren in der Gegenrichtung könnte durch zwei parallele Kanten und einen zusätzlichen Bogen in der Gegenrichtung dargestellt werden. Ein Bogen Bg mit AK(Bg) = EK(Bg) wird als Schlinge bezeichnet. Wir werden im Allgemeinen schlingenfreie Graphen betrachten. Die Menge der Eingangsbogen eines Knotens Kn wollen wir durch EBg(Kn) und die Menge der Ausgangsbogen mit ABg(Kn) bezeichnen. EBg(Kn) ABg(Kn) ist die Menge aller Bogen, die mit dem Knoten Kn inzident sind. Ihre Notation wollen wir durch InzBg(Kn) = (-EBg(Kn)) ABg(Kn) festlegen. Dabei soll -EBg(Kn) bedeuten, dass alle Bogennummern dieser Menge mit dem Minuszeichen versehen werden, wodurch die Eingangsbogen von den Ausgangsbogen unterschieden werden können. Diese Festlegung wird noch sinnvoller, wenn wir die Abbildungen AK(Bg) und EK(Bg) wie folgt erweitern: Definition AKn(-Bg) = EKn(Bg), EKn(-Bg) = AKn(Bg), Bg B. Mit dieser Erweiterung führen wir negative Bogenbenennungen ein: Für Bg B bezeichnet -Bg weiterhin den Bogen Bg, aber das Minuszeichen symbolisiert eine andere Durchlaufrichtung durch den Bogen oder eine Orientierung in Bezug auf andere Bogen einer Bogenmenge. Die Anfangsknoten der Bogen aus EBg(Kn) wollen wir als linke Nachbarknoten des Knotens Kn bezeichnen. Entsprechend sind die Endknoten der Bogen aus ABg(Kn) rechte Nachbarknoten des Knotens Kn, und alle Knoten, die mit Bogen aus InzBg(Kn) inzident und verschieden von Kn sind, also alle direkten Vorgänger und Nachfolger von Kn, mögen Nachbarknoten des Knotens Kn heißen. Mit der getroffenen Vorzeichenfestlegung gilt: Für Bg InzBg(Kn) ist EK(Bg) ein Nachbarknoten von Kn.

8 8 Kapitel 1: Grundbegriffe der Graphentheorie 1.2 Die Datenstruktur Graph Die Bearbeitung praktischer Aufgaben in einem Graphen führt sehr schnell in Größenordnungen, die ohne Computer kaum zu bewältigen sind. Wir wollen folglich Algorithmen erarbeiten, die es dem Computer ermöglichen, praktische Aufgaben, wie z.b. die Suche nach kürzesten Wegen, effizient zu bearbeiten. Dabei wollen wir einen Knoten mit seiner Nummer/Index i in der Liste aller Knoten, der Knotenliste, ansprechen, 1 i n. einen Bogen mit ±k ansprechen, wobei k seine Nummer/Index in der Liste aller Bogen, der Bogenliste, ist, 1 k m. maxknanz und maxbganz mögen die vereinbarten Größen der Listen für Knoten bzw. Bogen bezeichnen, also die maximal mögliche Knoten- bzw. Bogenanzahl angeben. Den Ersatz der Knoten- bzw. Bogenbezeichnung durch den Index in der Knoten- bzw. Bogenliste wollen wir im Folgenden allgemein vornehmen. Grundvoraussetzung für eine effiziente Arbeit mit Graphen im Computer ist 1. für jeden Bogen ein schneller Zugriff auf die durch ihn verbundenen Knoten und 2. für jeden Knoten ein schneller Zugriff auf die mit ihm inzidenten Bogen bzw. auf seine Nachbarn. Da wir erstens kein volles Listeninstrumentarium brauchen und zweitens mit vorzeichenbehafteten Bogennummern arbeiten, werden wir die folgende Datenstruktur Graph (G)auf spezielle Arraylisten abstützen. Mit den oben eingeführten Mengen EBg(i) bzw. ABg(i) bzw. InzBg(i) wollen wie mit Listen arbeiten, wozu die Methoden G.eEBg(i), G.nEBg(k); G.eABg(i), G.nABg(k); G.eInzBg(i), G.nInzBg(k) sowie G.istBg(k) dienen. (e steht für erster, n für nächster ) Die Methoden G.eEBg(i), G.eABg(i) und G.eInzBg(i) liefern ein erstes Element k der jeweiligen Bogenmenge, und G.nEBg(i, k), G.nABg(i, k) bzw. G.nInzBg(k) liefern ein von k verschiedenes nächstes Element. Wurden alle Elemente der entsprechenden Menge aufgezählt, so mögen die Nächstes-Element-Methoden einen Wert liefern, z.b. den Wert, der es der Methode G.istBg(k) gestattet, auf false zu entscheiden. G.istBg(i) ist also weniger als Methode zu verstehen, die entscheidet, ob eine Variable k vom Integer- Typ als Bogenbenennung gültig ist oder nicht, sondern ihre Aufgabe besteht vor allem darin, zu entscheiden, ob ein Schleifendurchlauf durch eine Bogenmenge beendet ist oder nicht. Vorerst geben wir der Datenstruktur Graph den folgenden Inhalt, den wir später weiter ergänzen werden: public class Graph { int maxknanz; int maxbganz; Knoten[] Knotenliste; Bogen[] Bogenliste; public int n; public int m; public int WrzBg; public Graph(int maxknanz, int maxbganz) { this.maxknanz = maxknanz; this.maxbganz = maxbganz; WrzBg=maxBgAnz+1; Knotenliste = new Knoten[maxKnAnz]; Bogenliste = new Bogen[maxBgAnz]; } // - erzeugt einen leeren Graphen public void insertbg(string von, String nach){ // - fügt einen neuen Bogen in den Graphen ein, der vom // Knoten von (äußere Bez.) zum Knoten // nach (äußere Bez.) führt. } public boolean istkn(int i) { } // Testfunktion für eine Knotennummer public boolean istbg(int k) { } // Testfunktion für eine Bogennummer public int AKn(int k) {} // Anfangsknoten des Bogens k

9 Kapitel 1: Grundbegriffe der Graphentheorie 9 public int EKn(int k) {} // Endknoten des Bogens k public int eeinbg(int i) {} // - ein erster Eingangsbogen des Knotens i public int neinbg(int i, int k) {} // - der nach k nächste Eingangsbogen des Knotens i public int eausbg(int i) {} // - ein erster Eingangsbogen des Knotens i public int nausbg(int i, int k) {} // - der nach k nächste Ausgangsbogen des Knotens i public int einzbg(int i) {} // - ein erster mit Knoten i inzidenter Bogen public int ninzbg(int i, int k) {} // - der nach k nächste mit i inzidente Bogen public void setstzbg(int i, int k) {} // - setzt Bogen k beim Knoten i als Stützbogen ein public int getstzbg(int i) {} // - gibt den Stützbogen des Knoten i an public void initstzbg(int start) {} // - initialisiert die Stützbogenangaben: // m+1 beim Knoten start und // sonst public int StzRchtg(int k) {} // = -1, wenn getstzbg(ekn(k)) = -k // = 1, wenn getstzbg(ekn(k)) = k // =, sonst public void setzwrz(int i) {} // - versetzt die Wurzel des Gerüsts in den Knoten i public boolean istwrz(int i) {} // Testfunktion für die Wurzeleigenschaft eines Knotens public void tauschstzbg(int kalt, int kneu) {} // - tauscht einen Gerüstbogen kalt gegen // einen Bogen kneu aus cz(kalt) public void initmarke(int Wert) {} // - initialisiert eine Knoten-Markierungsfunktion public void setmarke(int i, int k) {} // - setzt k als Wert der Markierungsfunktion beim Knoten i public int getmarke(int i) {} // - gibt den Wert der Markierungsfunktion beim Knoten i public void markcz(int k) {} // - setzt die Werte der Markierungsfunktion aller mit // AKn(i) über das Gerüst zusammenhängenden Knoten auf // 1, die Werte aller übrigen Knoten auf 2 public int czkoeff(int k) {} // = -1, wenn -k des markierten Cozyklus ist // = 1, wenn k des markierten Cozyklus ist // =, sonst public void setx(int k, double x) {} // - setzt x als Wert der Komponente des Vektors x des // Bogens k G.insertBg(von, nach) dient dazu, einen Bogen, der die Knoten mit den äußeren Bezeichnungen von und nach verbindet, in den Graphen einzufügen. Die Methode sucht die Knotennamen von und nach in der Knotenliste und fügt sie in diese ein, falls sie noch nicht existieren. Mit den Nummern, die in der Knotenliste zu diesem Namen gehören, fügt die Methode den Bogen dann so in die Bogenliste ein, dass alle weiteren Methoden funktionieren. Beispiel Einen Durchlauf durch die Bogenmenge EBg(i), bei dem auf jeden Bogen k EBg(i) eine Operation bearbeite(k) angewandt wird, müsste wie folgt implementiert werden: k = G.eEBg; while (G.istBg(k)) { bearbeite(k); k = G.nEBg(i, k) } Im angegeben Konstruktor des Graphen treten die Datentypen Knoten und Bogen als Elementtypen der Knoten- bzw. der Bogenliste auf. Der Knoten-Typ ist ein Datensatztyp, der die äußere Bezeichnung des Knotens enthält und dazu zwei Adressen, AusBg, EinBg, der Bogenliste, nämlich die Nummern der ersten Bogen, deren Anfangs- bzw. Endknoten der betrachtete Knoten ist. public class Knoten { public String name=new String(); int EinBg=, AusBg=, StzBg=, Marke=; double t=, dt =; Knoten(String name) { this.name=name; } } Im Bogen-Typ-Datensatz werden dann umgekehrt Anfangs- und Endknoten des Bogens als Adressen der Knotenliste (Typ int) genannt. Neben diesen Adressen enthält er Adressen, neinbg, nausbg, mit

10 1 Kapitel 1: Grundbegriffe der Graphentheorie denen man den Zugriff auf die Eingangsbogen des Endknotens des betrachteten Bogens bzw. zu den Ausgangsbogen seines Anfangsknotens fortsetzen kann. Der Anfang für die Aufzählung dieser Mengen ist durch die Adressen AusBg bzw. EinBg gegeben, die im Knotensatz abgelegt sind. public class Bogen { int AKn =, EKn =, neinbg =, nausbg = ; double x=; double dx = ; Bogen(int AKn, int EKn) { this.akn = AKn; this.ekn = EKn; } } k 1 = Knotenliste[i].EinBg k 2 = Bogenliste[k 1 ].neinbg i EinBg k 3 = Bogenliste[k 2 ].neinbg Bild 1.3: Veranschaulichung der Technik des Zugriffs auf Bogen, die zum Knoten i inzident sind, 1.3 Weitere Grundbegriffe der Graphentheorie Definition Eine Folge paarweise verschiedener Bogenbenennungen [k 1, k 2,..., k r ] heißt K e t t e, wenn für i = 1, 2,..., r 1 AKn(k i+1 ) = EKn(k i ) gilt. Sind alle k i einer Kette positiv, so wird sie als W e g bezeichnet. Ist jeder Knoten einer Kette mit höchstens zwei ihrer Bogen inzident, so heißt die Kette elementar. Gilt für eine Kette AKn(k 1 ) = EKn(k r ), so heißt sie g e s c h l o s s e n oder Z y k l u s. Ein geschlossener Weg wird K r e i s genannt. Die Notation einer Kette beschreibt einen Durchlauf durch die zugehörige Bogenfolge: Beginnend beim Knoten AKn(k 1 ) läuft man zum Knoten EKn(k 1 ), der identisch mit AKn(k 2 ) ist. Von AKn(k 2 ) läuft man zum Knoten EKn(k 2 ) usw. Man durchläuft also die angesprochenen Bogen in ihrer Pfeilrichtung oder gegen diese, je nachdem ob die Bogennummer positiv oder negativ genannt ist. Kn Kn2 7 8 Kn4 12 Kn5 9 Kn Kn7 5 6 Kn3 Bild 1.4: Ketten, Wege, Kreise

11 Kapitel 1: Grundbegriffe der Graphentheorie 11 Beispiel Wir betrachten den im Bild 1.4 gezeigten Graphen: Die Bogenfolgen Kt 1 = [1, -7, -12, 11], Kt 2 = [3, 5, 8, 9, 11] und Kt 3 = [5, 7, 4, -8, -12, 11] bezeichnen Ketten. Kt 1 und Kt 2 sind elementar; Kt 3 ist nicht elementar; Kt 2 ist ein Weg. Die Folgen Kt 4 = [1, -7, -5, -3], Kt 5 = [8, 9, 12], Kt 6 = [1, -11, -9] und Kt 7 = [8, 1, -11, 12] sind Zyklen; Kt 5 ist ein Kreis. Im symmetrischen also ungerichteten Graphen ersetzt man häufig die Bogen einer Kette durch die zugeordneten Kanten und spricht nur von Wegen, d.h., man ersetzt eigentlich alle negativen Bogen einer Kette durch den zugehörigen Gegenbogen. Entsprechend spricht man nicht von Zyklen, sondern nur von Kreisen, und betrachtet den trivialen Kreis [Bogen, Gegenbogen] nicht als solchen. Ein gerichteter Graph heißt z u s a m m e n h ä n g e n d, wenn für jedes Paar i, j seiner Knoten eine Kette Kt = [k 1, k 2,..., k r ] derart existiert, dass AKn(k 1 ) = i und EKn(k r ) = j gilt. Kt heißt i und j verbindende Kette. Ein nicht zusammenhängender Graph besteht aus zusammenhängenden K o m p o n e n t e n. Ein Knoten j heißt von einem Knoten i aus e r r e i c h b a r, wenn von i nach j ein verbindender Weg existiert. Ein gerichteter Graph heißt s t a r k z u s a m m e n h ä n g e n d, wenn jeder seiner Knoten von jedem anderen Knoten aus erreichbar ist. Statt zusammenhängend wird manchmal auch der Begriff schwach zusammenhängend benutzt; dann ersetzt zusammenhängend den Begriff stark zusammenhängend. Jeder zusammenhängende ungerichtete Graph ist stark zusammenhängend. Im ungerichteten Graphen ist also die Unterscheidung zwischen schwachem und starkem Zusammenhang nicht notwendig. Wir geben im Folgenden Algorithmen an, die einen Graphen auf die Eigenschaften Erreichbarkeit und Zusammenhang testen. Wir benötigen dazu den Begriff des Stützgerüstes: Satz Ein B a u m ist ein zyklenfreier, zusammenhängender, endlicher Graph. Im ungerichteten Fall beziehen wir das Attribut zyklenfrei auf Kantenzyklen, sehen also davon ab, dass nach unserer Definition des ungerichteten Graphen streng genommen jede Kante ein Zyklus ist. Falls nichts anderes gesagt wird, meinen wir im Folgenden mit Baum ohne Attribut den gerichteten Baum. Satz Ein Baum mit n Knoten besitzt genau m = n - 1 Bogen. Beweis: Wir konstruieren den Baum neu, indem wir mit einem beliebigen seiner Knoten beginnen und an den aktuellen Baum mittels eines noch nicht hinzugefügten Bogens, der mit einem schon angeschlossenen Knoten inzident ist, einen neuen Knoten anhängen. Jeder hinzugefügte Bogen hängt einen neuen Knoten an, denn sonst schlösse sich ein Zyklus. Andererseits wird jeder Knoten angeschlossen, da der Graph zusammenhängend ist. Folglich ist der Graph durch genau m = n - 1 Bogenaufnahmen komplett. Unter den gerichteten Bäumen haben die Wurzelbäume besondere Bedeutung.

12 12 Kapitel 1: Grundbegriffe der Graphentheorie Definition Ein W u r z e l b a u m ist ein gerichteter Baum, bei dem jeder Knoten höchstens einen Eingangsbogen besitzt. ( EBg(i) 1 i K) Ein Knoten, der keinen Eingangsbogen hat, wird W u r z e l des Baums genannt. Satz Ist G = [K, B] ein Wurzelbaum, so gelten folgende Aussagen: a) G besitzt genau eine Wurzel. b) Von der Wurzel aus ist jeder Knoten auf genau einem Weg erreichbar. Zum Beweis des Satzes: Wir betrachten zunächst einen beliebigen Knoten. Besitzt dieser nicht die Wurzeleigenschaft, so gehen wir zurück zum Anfangsknoten seines Eingangsbogens. Da es keinen Zyklus gibt und der Graph endlich ist, kann dieses Zurückgehen nicht beliebig oft wiederholt werden, sondern muss in einem Knoten mit Wurzeleigenschaft enden. Nun nehmen wir an, der Graph G besitze mindestens zwei Knoten mit der Wurzeleigenschaft. Zwischen je zwei dieser Knoten existiert eine verbindende Kette, da G zusammenhängend ist. Wir betrachten einen Fall, bei dem diese Kette keine dritte Wurzel enthält. Die Kette kann kein Weg sein, da an ihrem Anfang und an ihrem Ende eine Wurzel ist, also müsste sie einen Knoten enthalten, der zwei Eingangsbogen besitzt, im Widerspruch zur Wurzelbaumeigenschaft. Da ein Baum zusammenhängend ist, muss zwischen der Wurzel und jedem anderen Knoten eine verbindende Kette existieren. Diese muss ein Weg sein, da sie sonst einen Knoten mit zwei Eingangsbogen besäße. Wegen der Zyklenfreiheit kann es zu zwei Knoten keine zwei verschiedenen Verbindungsketten geben. Man bezeichnet im Wurzelbaum die Anzahl der Bogen des eindeutigen Weges von der Wurzel zu einem Knoten als Höhe des Knotens. Der Wurzel wird die Höhe zugeordnet. Alle Knoten gleicher Höhe h bilden eine h-te Etage des Wurzelbaums. Die Anzahl der Etagen eines Baumes heißt Höhe H des Baums. Der leere Baum hat die Höhe. Der Baum, der nur aus einer Wurzel besteht, hat die Höhe 1. Die Anzahl der nach außen inzidenten Bogen eines Knotens eines Wurzelbaums wird als Ordnung des Knotens bezeichnet. Knoten mit der Ordnung heißen Blätter des Baums. Alle Knoten, die weder Wurzel noch Blätter sind, heißen innere Knoten. Das Maximum aller Knotenordnungen heißt Ordnung des Wurzelbaums. Das folgende Bild zeigt einen Wurzelbaum der Ordnung 5 (Die Wurzel hat fünf nach außen inzidente Bogen, deren Endknoten als Söhne der Wurzel bezeichnet werden.), der die Höhe 5 hat (die Etagen bis 4). Definition Ein Wurzelbaum der Ordnung 2 heißt B i n ä r b a u m.

13 Kapitel 1: Grundbegriffe der Graphentheorie 13 Wurzel -te Etage Blatt 1. Etage Blatt 2. Etage Blatt Blatt Blatt 3. Etage Blatt Blatt 4. Etage Bild 1.5: Ein Baum der Höhe 5 Wurzelbäume werden schon seit sehr langer Zeit zur Darstellung von Abstammungsbeziehungen benutzt (Stammbäume). Von der Nutzung in patriarchalischen Zeiten kommen die üblichen Bezeichnungen: Ein Knoten wird Vater rechten Nachbarknoten genannt, und umgekehrt nennt man die rechten Nachbarknoten Söhne des Knotens. Hierarchischen Ordnungen wie der Abstammung begegnen wir an vielen Stellen unseres Lebens. Dies ist ein Grund, weshalb man recht häufig auf Wurzelbäume stößt. Ein anderer Grund besteht darin, dass sich Wurzelbäume sehr einfach beschreiben bzw. speichern lassen: Es genügt, zu jedem Knoten den eindeutigen Vorgängerknoten (Vater) zu nennen. Damit können sie vorteilhaft als Notation für Gerüste dienen, die ihrerseits, wie wir bald sehen werden, als Basis für die Beschreibung der Zyklenund Cozyklenstruktur eines Graphen geeignet sind. Wurzelbäume haben die Eigenschaft, dass die Anzahl der Knoten einer Etage sehr schnell, nämlich exponentiell mit der Etagenhöhe, wachsen kann: Beispielsweise kann ein Binärbaum in seiner h-ten Etage bis zu 2 h Knoten besitzen, also schon 124 für h = 1. Der niedrigste Binärbaum mit n Knoten ist der vollständige Binärbaum mit n Knoten, bei dem jede Etage maximal gefüllt ist. Besitzt ein vollständiger Binärbaum H Etagen, so enthalten die vollen Etagen mit den Nummern bis H-2 zusammen H-2 = 2 H-1-1 Knoten, und die (H-1)-te Etage enthält 1 n - 2 H H-1 Knoten. Daraus folgt, log 2 (n+1) H log 2 (n) +1, oder Satz Ein Binärbaum mit n Knoten hat mindestens die Höhe H = Aufrundung(log 2 (n +1)). Mindesten der vollständige Binärbaum realisiert diese Höhe. Im Binärbaum mit n Knoten kann man folglich jede dort gespeicherte Information in maximal H = Aufrundung(log 2 (n+1)) Schritten wieder finden. Dies ist ein weiterer Grund für die Bedeutung von Bäumen in der Informatik. Da im niedrigstem Binärbaum mit n Knoten, dem vollständigen Binärbaum, alle von der Wurzel ausgehenden Wege die Länge H-1 oder H-2 haben, ist für ihn auch die mittlere Weglänge mit H = O(log 2 (n)) sicher minimal, so dass für einen beliebigen Binärbaum mittlereweglänge log 2 (n) gilt.

14 14 Kapitel 1: Grundbegriffe der Graphentheorie Sind im vollständigen Binärbaum der Höhe H von den 2 H-2 Knoten der (H-2)-ten Etage b Knoten Blätter und hat der Baum insgesamt B Blätter, so gilt, B = 2 (2 H-2 b)+b [-1], und der Baum hat n = 2 H (2 H-2 b) [-1] Knoten. Daraus ergibt sich, Satz Ein Binärbaum mit B Blättern hat mindestens n = 2B 1 Knoten. Hat man die Anwendung von Bäumen für Suchprozesse im Blick, so ist die oben genannte speichergünstige Darstellung, die zu jedem Knoten nur seinen Vater nennt, sehr ungünstig bezüglich der Rechenzeit, denn die Suchprozesse müssen von der Wurzel des Baumes zu den Blättern laufen und brauchen folglich zu jedem Knoten seine Söhne. Damit ergibt sich folgendes Bild für die Darstellung bzw. Speicherung von Bäumen: Bäume treten in vielen Fällen entweder direkt als Wurzelbäume auf oder es sind Gerüste (siehe unten) bzw. zusammenhängende Gerüstkomponenten eines gegebenen Graphen, die als Wurzelbäume beschrieben werden. Bei einem Wurzelbaum kann jedem Knoten, außer der Wurzel, ein Bogen als dessen Eingangsbogen zugeordnet werden, so dass eine explizit anzugebende Bogenliste entfallen kann. Stattdessen notiert man zu jedem Knoten eines Wurzelbaums den Vater (= AKn(Eingangsbogen)). Allerdings ist diese Notation schlecht geeignet, wenn man auf dem Baum von der Wurzel ausgehende Suchprozesse betreiben will. In diesen Fällen notiert man besser zu jedem Knoten seine Söhne (= EKn(Ausgangsbogen)). In manchen Fällen sind beide Notationen zweckmäßig. Beschreibt der Wurzelbaum ein Gerüst in einem Graphen mit parallelen Bogen, so ist mit der Angabe des Vaters kein eindeutiger Bezug auf die Bogen des Ausgangsgraphen möglich, so dass in diesem Fall der Eingangsbogen (durch seine vorzeichenbehaftete Nummer in der Bogenliste des Ausgangsgraphen) statt des Vaterknotens genannt wird. Definition Gegeben sei ein Graph G = [K, B]. Gilt für einen Graphen G' = [K', B'] sowohl K' K als auch B' B (d.h. B' ist Teil der Bogenliste B ), so heißt G' T e i l g r a p h von G. Ein Teilgraph G' = [K, B'] von G heißt s p a n n e n d e r T e i l g r a p h oder G e r ü s t in G, wenn B' eine maximale, zyklenfreie Teilmenge von B ist, wenn er also ein maximaler Baum innerhalb G ist. Ist G' = [K, B'] Gerüst von G, so heißt G" = [K, B\B'] C o g e r ü s t von G. Enthält die Bogenmenge B' eines Teilgraphen genau die Bogen aus B, die zwei Knoten aus K' verbinden, so heißt G' der von K' erzeugte U n t e r g r a p h von G und wird durch Ug(K') symbolisiert. Beispiel Bild 1.6 zeigt ein Gerüst im gegebenen Graphen mit der Bogen-Teilmenge B' = {1, 2, 3, 8, 11, 12}. [K, {4, 5, 6, 7, 9, 1}] ist das zugehörige Cogerüst. Beide Graphen sind auch Teilgraphen von G.

15 Kapitel 1: Grundbegriffe der Graphentheorie 15 Kn Kn2 Kn3 5 7 Kn Kn5 9 Kn Kn7 Bild 1.6: Ein Gerüst des Graphen (fett) K' = {Kn2, Kn4, Kn5, Kn6} und B' = [4, 7, 8, 9, 12] bilden einen Teilgraphen G' = [K', B'] des Graphen im Bild 1.7. Dieser ist Untergraph Ug(K ). 1 Kn2 4 Kn5 1 Kn Kn Kn6 11 Kn7 5 6 Kn3 Bild 1.7: Ein Untergraph des Graphen Zum besseren Verständnis der Zusammenhänge führen wir zu einer Menge B* von Bogenbennungen einen Bogenvektor v(b*) = (v 1, v 2,..., v m ) so ein, dass v k = ±1 gilt, wenn ±k B* ist andernfalls gilt. Da ein Gerüst G = [K, B ] aus einer maximalen, zyklenfreien Teilmenge der Bogen besteht, schließt jeder Cogerüstbogen k B\B einen Zyklus. Definition Man bezeichnet die durch Cogerüstbogen erzeugten Zyklen als Basiszyklen z(k) von G zum Cogerüstbogen k. Diese (m-n+ko) Basiszyklen (ko = Anzahl der zusammenhängenden Komponenten) sind unabhängig, weil jeder einen, nämlich den ihn erzeugenden, Bogen enthält, der in keinen anderem Basiszyklus enthalten ist. Die Zyklenvektoren zv(k) zu den Basiszyklen z(k) sind linear unabhängig. Sie spannen den Raum der Ströme oder Zirkulationen des Graphen auf, zu dem alle Zyklen gehören.

16 16 Kapitel 1: Grundbegriffe der Graphentheorie Beispiel für die Feststellung, dass der Vektor zu jeden beliebigen Zyklus aus den Basisvektoren durch Linearkombination mit den Faktoren ±1 erzeugt werden kann: Im Graphen des Bildes 1.6 gilt: z(4) = [4, -8, -2, 1], zv(4) = (1, -1,, 1,,,, -1,,,, ), z(1) = [1, -11, 12, 8], zv(1) = (,,,,,,, 1,, 1, -1, 1), z(9) = [9, 12, 8], zv(12) = (,,,,,,, 1, 1,,, 1), Z = [k 1, k 2,..., k r ] sei ein Zyklus beschrieben durch die Benennungen k i seiner Bogen: Es gilt: Zv = Σ {z(k) für die k aus Z, die Cogerüstbogen sind}. Beispiel zv(4) + zv(1) = (1, -1,, 1,,,,,, 1, -1. 1) = Zv zu Z =[4, 1, -11, 12, -2, 1]. Definition Gegeben seien ein Graph G = [K, B] und eine Knotenmenge K' K. Ein Bogen, dessen Anfangsknoten nicht in K' liegt, während der Endknoten zu K' gehört, heißt E i n g a n g s b o g e n von K'. Ein Bogen, dessen Anfangsknoten in K' liegt, während der Endknoten nicht zu K' gehört, heißt A u s g a n g s b o g e n von K'. EBg(K') und ABg(K') bezeichnen die Menge der Eingangs- bzw. Ausgangsbogen von K'. CZ(K') = (-EBg(K')) U ABg(K') bezeichnet die Menge aller Eingangs- und Ausgangsbogen von K' und wird C o z y k l u s oder S c h n i t t zur Knotenmenge K' genannt. Ein Cozyklus heißt e l e m e n t a r, wenn sowohl K' als auch K\ K' zusammenhängende Untergraphen erzeugen. Kn Kn2 5 7 Kn Kn5 9 Kn Kn7 Kn3 Bild 1.8: Ein Cozyklus des Graphen (fett) ABg({i}) = ABg(i), EBg({i}) = EBg(i), CZ({i}) = InzBg(i). Beispiel - Bild 1.8: Für K' = {Kn2, Kn4, Kn5, Kn6} ist CZ(K') = {-1, -2, -5, -6, 1, 11}. Wenn man jede zusammenhängende Komponente des von K' erzeugten Untergraphen Ug(K ) mit einem geschlossenen Linienzug umrahmt, so gehören genau die Bogen von B, die von dieser Rahmenlinie einmal geschnitten werden zum Cozyklus CZ(K') - das begründet die synonyme Bezeichnung Schnitt für Cozyklus. Beispiel Bild 1.9: CZ({Kn1}) = {1, 2, 3} und CZ({Kn7}) = {-1, -11} sind elementare Cozyklen. Der Cozyklus CZ({Kn1, Kn7}) ist nicht elementar, weil Ug({Kn1, Kn7}) nicht zusammenhängend ist. Es gilt CZ({Kn1, Kn7}) =CZ({Kn1} U (CZ({Kn7})).

17 Kapitel 1: Grundbegriffe der Graphentheorie 17 1 Kn2 4 Kn5 1 Kn Kn7 3 5 Kn Kn6 Kn3 Bild 1.9: Ein nicht elementarer Cozyklus des Graphen Wir betrachten ein Gerüstes G = [K, B ]: Entfernt man einen Bogen k aus dem Gerüst, so verliert die Komponente (ein Baum) des Gerüstes, die ihn enthielt, ihren Zusammenhang, da es auf Grund der Zyklenfreiheit keine zweite Verbindung zwischen dem Anfangs- und dem Endknoten von k im Gerüst gibt. Der Gerüstbogen k definiert somit eindeutig zwei Knotenmengen, nämlich einmal die Menge K aller Knoten, die mit EKn(k) auf dem Rest des Gerüstes zusammenhängen und zum anderen K\K (AKn(k) K\K ). Damit definiert k auch eindeutig einen Cozyklus in G, nämlich den von dieser Knotenmenge erzeugten Cozyklus CZ(K'). Definition Der von einem Gerüstbogen erzeugte Cozyklus heißt Basiscozyklus cz(k) in G zum Gerüstbogen k. Es gilt CZ(K\K') = -CZ(K'), wenn die cz(k) = CZ(K'), also K' die cz(k) erzeugende Knotenmenge ist. Die (n-ko) Basiscozyklen - ko = Anzahl zusammenhängender Komponenten von G - sind unabhängig, weil jeder einen, nämlich den ihn erzeugenden Bogen enthält, der in keinem anderen der Basiscozyklus enthalten ist. Die linear unabhängigen Vektoren zu den Basiscozyklen erzeugen den linearen Vektorraum der Spannungen des Graphen: Ist CZ = {k 1, k 2,..., k r } ein Cozyklus, so gilt: CZ = Σ {cz(k) für die k CZ, die GerüstBogen sind}. Beispiel Bild 1.1: Für den Gerüstbogen 4 gilt cz(4) = CZ({Kn1, Kn2, Kn3, Kn4}) = {4, 6, 8, -12}. Für den Gerüstbogen 1 gilt cz(1) = CZ({Kn1, Kn2, Kn3, Kn4, Kn5}) = {6, 9, 1, -12}. CZ({Kn5}) = {-4, -8, 9, 1} = cz(-4) + cz(1) = {-4, -6, -8, 12} + {6, 9, 1, -12}. Kn Kn2 5 7 Kn Kn5 9 Kn Kn7 Kn3 Bild 1.1: Basiscozyklen, definiert durch ein Gerüst (fett)

18 18 Kapitel 1: Grundbegriffe der Graphentheorie Im zusammenhängenden Graphen ist ein Gerüst ein Baum. Dieser Baum wird gern als Wurzelbaum notiert: Da in einem Baum jedem seiner Knoten bis auf einen genau ein Bogen zugeordnet werden kann, machen wir den beliebig wählbaren Ausnahmeknoten zur Wurzel des Gerüstes, und nennen den Gerüstbogen, den wir jedem anderen Knoten i zuordnen, Stützbogen des Knotens. Dazu richten wir eine Funktion StzBg(i) über der Knotenmenge so ein, dass sie die Benennung des Stützbogens in folgender Weise liefert: StzBg(Wurzel) = WrzBg EKn(StzBg(i)) = i. WrzBg ist ein fiktiver Bogen (sehr große Nummer). Für die Testfunktion istbg(i) soll istbg(wrzbg) = false gelten. Vorteilhaft ist dazu eine über der Bogenmenge erklärte Funktion Stützrichtung, StzRchtg(int k): 1, wenn StzBg(EKn(k)) = k StzRchtg(k) = -1, wenn StzBg(EKn(k)) = -k, wenn k kein Stützbogen ist. Die Wurzel eines Stützgerüstes definiert nur seine Notation. Sie kann (mit Hilfe einer einfachen Funktion setzwrz(i)) in einen beliebigen Knoten i gesetzt werden. Dazu müssen in der Notation des Gerüstes nur die Vorzeichen der Stützbogen entlang des Weges von der alten Wurzel zum Knoten i vertauscht werden siehe Bild Wurzel i i =Wurzel Bild 1.11: Veranschaulichung der Verlegung der Wurzel eines Gerüstes in einen vorgegebenen Knoten Man ändert ein Gerüst, indem man einen Cogerüstebogen k durch einen Gerüstbogen seines Basiscozyklus cz(k) ersetzt (vgl. Bild 1.12): public void tauschstzbg(int kalt, int kneu) { if (istbg(kneu)) { setzwrz(ekn(kneu)); setstzbg(ekn(kneu), kneu); int i = EKn(kAlt*StzRchtg(kAlt)); if (kalt!= ) setstzbg(ekn(kalt*stzrchtg(kalt)),wrzbg); } }

19 Kapitel 1: Grundbegriffe der Graphentheorie 19 1 Kn2 4 kalt Kn5 1 Kn Kn kneu 9 Kn6-11 Kn7 5 Kn3 6 1 Kn2 4 Kn5 1 Kn Kn Kn6-11 Kn7 Kn3 6 Bild 1.12: Veranschaulichung der Änderung eines Gerüstes durch Bogentausch Es sei k ein Cogerüstbogen. Wir wollen seinen Basiszyklus durchlaufen: setzwrz(ekn(k)); k = StzBg(AKn(k)); while (istbg(k)) {... k = StzBg(AKn(k)); } Beispiel Bild 1.12, z(4) = [4, 1, -2, 12, -11, 1]: StzBg(Kn2) = 1, StzBg(Kn1) = -2, StzBg(Kn4) = 12, StzBg(Kn6) = -11, StzBg(Kn7) = 1, StzBg(Kn5) = WrzBg, istbg(wrzbg) = false. Es sei k ein Gerüstbogen. Wir wollen die Bogen seines Basiscozyklus aufzählen. Eine Prozedur cz(k) macht folgendes: Sie setzt beim EKn(k) bei allen von ihm aus über StützBogen erreichbaren Knoten eine Hilfsgröße Marke(i)=2; bei allen übrigen Knoten Marke(i)=1; czkoeff(l) = Marke[EKn(l)] - Marke[EKn(l)]; liefert dann für alle Bogen des Cozyklus ±1 und für die Bogen, die nicht zum Cozyklus gehören, den Wert Null. Beispiel Bild 1.13, cz(4) = {4, 6, 8, -12} = CZ({Kn1, Kn2, Kn3, Kn4}): Von Kn1 aus werden die über die Gerüstbogen 1 und 11 erreichbaren Knoten grau (Marke(i)=1) gefärbt, zum Cozyklus gehören alle Bogen, die einen weißen mit einem grauen Knoten verbinden. Kn Kn2 7 Kn Kn5 9 Kn Kn7 5 6 Kn3 Bild 1.13: Basiscozyklen, definiert durch ein Gerüst (fett)

20 2 Kapitel 1: Grundbegriffe der Graphentheorie 1.4 Erreichbarkeit, Zusammenhang, Kreisfreiheit Eine häufig anstehende Frage ist die Frage, ob ein Knoten j von einem Knoten i aus erreichbar ist, womit bekanntlich gemeint ist, ob es von i aus einen Weg zum Knoten j gibt. Zur Lösung dieser Frage stehen zwei wichtige Basisalgorithmen zur Verfügung die so genannte Tiefensuche englisch depth first search, Abkürzung DFS die so genannte Breitensuche englisch breadth first search, Abkürzung BFS Begriffe, die auch für analoge Suchprozesse benutzt werden, bei denen man die Beziehung zu Graphen nicht sofort erkennt. Die Algorithmen lösen die Aufgabe, bestimme für einen Start-Knoten die Menge aller von ihm aus erreichbaren Knoten des Graphen. Zur Unterscheidung zwischen erreichbaren und nicht erreichbaren Knoten braucht man eine Knotenmarkierung. Da meistens nicht nur interessant ist, ob, sondern auch wie ein spezieller Knoten erreicht wird, erzeugt man einen Baum Erreichbarkeitsbaum bestehend aus Wegen vom Knoten Start zu allen erreichbaren Knoten. Ein Baum genügt, man muss nicht notwendig alle möglichen Wege anzeigen. Der Baum ist ein Wurzelbaum Start ist seine Wurzel und er wird durch die oben eingeführte Bogenfunktion StzBg(i) beschrieben. Damit haben wir gleichzeitig eine sinnvolle Knotenmarkierung: Für Knoten, die von Start aus nicht erreicht werden können, gilt StzBg(i) =, während für die übrigen Knoten StzBg(i) den Erreichbarkeitsbaum beschreibt. Tiefensuche Man markiere den Startknoten und mache ihn zum aktuellen Knoten i. Man suche vom aktuellen Knoten i aus einen rechten Nachbar j = EKn(k), k ABg(i), der noch nicht als erreicht markiert ist. Existiert einer, wird er markiert (StzBg(j):=k). Hat der aktuelle Knoten i keinen Ausgangsbogen mehr, dessen Endknoten noch ohne Markierung ist, so gehe man zu dem Knoten zurück, von dem aus i markiert wurde (i = AKn(StzBg(i))). Die Umsetzung des Algorithmus in eine Prozedur lautet wie folgt: public void DFS(int Start) { int i, j, k; initstzbg(start); i = Start; k = eausbg(i); do { while (istbg(k)) { j = EKn(k); if (getstzbg(j) == ) { setstzbg(j, k); i =j; k = eausbg(i); } else k = nausbg(i, k); } if (i!= Start) { k =getstzbg(i); i = AKn(k); k = nausbg(i, k); } } while ((i!= Start) istbg(k)) } Breitensuche Man gebe den Startknoten in eine Hilfsliste vom Typ Schlange. solange die Schlange nicht leer ist entnehme man ihr einen Knoten als Standort. Man untersuche vom Standort aus alle rechten Nachbarn: Diejenigen, die erstmals erreicht werden, werden markiert (StzBg setzen) und in die Schlange aufgenommen. Auch für diesen Algorithmus die Umsetzung in eine Prozedur: public void BFS(int Start) { int i, j, k; IntSchlange S = new IntSchlange(maxKnAnz); S.push(Start); initstzbg(start); while (!S.istLeer()) { i = S.exTop(); k = eausbg(i); while (istbg(k)) { j = EKn(k);

21 Kapitel 1: Grundbegriffe der Graphentheorie 21 } } } if (getstzbg(j) == ) { setstzbg(j, k); S.push(j); } k = nausbg(i, k); Beide Prozeduren besitzen die Zeitkomplexität O(m), weil bei DFS auf jedem Bogen höchstens einmal im Vorwärtslauf und einmal beim Rückwärtsschritt zugegriffen wird, während bei BFS auf jedem Bogen höchstens einmal zugegriffen wird. 1 Kn2 4 Kn5 1 Kn Kn Kn6 11 Kn7 Kn3 6 Kn Kn2 5 7 Kn Kn5 9 Kn Kn7 Kn3 6 Bild 1.14: Veranschaulichung der Tiefensuche und der Breitensuche mit Start = Kn4 Beispiel Bild 1.14: Tiefensuche: Von Kn4 aus über 7 nach Kn2, weiter über 4 nach Kn5, weiter über 9 nach Kn6, weiter über 11 nach Kn2. Da von Kn7 aus kein Weiter, zurück nach Kn6; da kein Weiter, zurück nach Kn5; da kein Weiter, zurück nach Kn4; da kein Weiter, Ende. Breitensuche: Von Kn4 aus Markierung der Knoten Kn2 über 7 und Kn5 über 8; von Kn2 aus keine neue Markierung; von Kn5 aus über 9 Markierung Kn6, über 1 Markierung Kn7; von Kn6 und Kn7 aus keine neue Markierung; Ende. Beide Prozeduren besitzen die Zeitkomplexität O(m), weil bei DFS auf jedem Bogen höchstens einmal im Vorwärtslauf und einmal beim Rückwärtsschritt zugegriffen wird, während bei BFS auf jedem Bogen höchstens einmal zugegriffen wird. Ersetzt man in einem der Erreichbarkeitsalgorithmen DFS oder BFS die ABg-Funktion durch die InzBg-Funktion, so heißt das, man sucht nach Knoten, die vom Start aus über Ketten statt über Wege erreicht werden können. Folglich markiert man (mit StzBg(i) ) alle Knoten, die mit Start zusammenhängen - public void Zusammenhang(int Start). Daraus ist leicht eine public int Graph.AnzZshgKomp() zu entwickeln, die die Anzahl der zusammenhängenden Komponenten eines Graphen ermittelt und allen Knoten, die zur z-ten Komponente gehören Marke(i)=z; zuordnet. Ersetzt man in einem der Erreichbarkeitsalgorithmen public void DFS(int Start) oder BFS die ABg- Funktion durch EBg-Funktion, so heißt das, man sucht nach Knoten, die vom Start aus über Wege, die gegen die Bogenrichtung durchlaufen werden, erreicht werden können. Folglich markiert man (mit

22 22 Kapitel 1: Grundbegriffe der Graphentheorie StzBg(i) ) alle Knoten, von denen aus Start erreicht werden kann. Nennen wir eine Prozedur, die das leistet public void DFSrueck(int Start) DFS(int Start) mit Rückwärtsorientierung so kann man etwa mit DFS(Start) alle von Start aus erreichbaren Knoten und mit DFSrueck(Start) alle Knoten, von denen aus Start erreicht wird, markieren. Die Knoten, die in beiden Fällen markiert wurden, bilden eine den Knoten Start enthaltende stark zusammenhängende Komponente des Graphen. Definition Einen stark zusammenhängenden Untergraphen nennt man stark zusammenhängende Komponente des Graphen. Daraus ist leicht eine public int Graph.AnzStarkZshgKomp() zu entwickeln, die die Anzahl der stark zusammenhängenden Komponenten eines Graphen ermittelt und allen Knoten, die zur z-ten Komponente gehören Marke(i)=z zuordnet. Beispiel Der Graph, der z.b. im Bild 1.14 gezeigt wird besitzt 3 stark zusammenhängende Komponenten: Den Untergraphen zu der Knotenmenge {Kn2, Kn4, Kn5, Kn6} und die Untergraphen zu den beiden Knotenmengen {Kn1} und {Kn7}, die beide leere Bogenmengen haben. Besitzt der Graph keine stark zusammenhängende Komponente, so ist er kreisfrei. Besitzt der Graph genau eine stark zusammenhängende Komponente, so ist er stark zusammenhängend. Die Prozedur Graph.AnzStarkZshgKomp() kann also sowohl zum Test auf Kreisfreiheit als auch zum Test auf starken Zusammenhang genutzt werden. Die Zeitkomplexität beider Prozeduren kann mit O(AnzKomp m) angegeben werden, wobei AnzKomp die Anzahl der zusammenhängenden bzw. stark zusammenhängenden Komponenten angibt. Eine andere Anwendung der Erreichbarkeitsalgorithmen ist die Bestimmung einer Maximummenge unabhängiger Kanten oder auch Maximumpaarung in einem ungerichteten Graphen: Wir bezeichnen eine Teilmenge M B der Kantenmenge eines ungerichteten Graphen G = [K, B] als Menge unabhängiger Kanten oder auch Paarung falls ihre Elemente paarweise verschieden sind. Wir können eine solche Menge einfach so konstruieren, dass wir, beginnend mit M = Ø, sukzessive Kanten zu M hinzufügen, solange die neue Kante mit keiner der schon dazugehörigen Kanten inzident ist. Einen Knoten des Graphen, der mit keiner Kante von M inzident ist, bezeichnen wir als exponiert bezüglich M und einen Weg, der abwechselnd eine Kante aus M und eine aus (B M) enthält, als alternierende Kette bezüglich M. Eine bezüglich M alternierende Kette heißt M-vergrößerbar, wenn ihre beiden Endpunkte exponiert sind. Offensichtlich ist eine Paarung nicht optimal, wenn es eine M-vergrößerbare Kette Kt gibt, denn, wenn wir alle Kanten aus Kt, die zu M gehören aus M entfernen und dafür die Kanten aus Kt, nicht zu M gehören zu M hinzunehmen, so ist M wieder Paarung und hat offensichtlich eine Kante mehr als vorher.

23 Kapitel 1: Grundbegriffe der Graphentheorie 23 X 4 X 5 X 8 X 1 X 2 X 3 X 7 X 6 X 4 X 5 X 8 X 1 X 2 X 3 X 7 X 6 Bild 1.15: Konstruktion einer Maximumpaarung Bild 1.15 zeigt ein Beispiel: M = {(X 1, X 2 ), (X 3, X 7 ), (X 4, X 5 )} sei die betrachtete Paarung (ihre Elemente sind fett gezeichnet). Kt = [(X 1, X 8 ), (X 1, X 2 ), (X 2, X 4 ), (X 4, X 5 ), (X 5, X 7 ), (X 3, X 7 ), (X 3, X 6 )] ist eine M-vergrößerbare Kette, die die exponierten Knoten X 8 und X 6 verbindet. Mit ihr kann man M auf M = {(X 1, X 8 ), (X 2, X 4 ), (X 5, X 7 ), (X 3, X 6 )} erweitern. Auf den Beweis der Notwendigkeit der Existenz einer M vergrößerbaren Kette für eine Erweiterung einer Paarung wollen wir verzichten. Am Beispiel Bild 1.15 ist offensichtlich, dass die im unteren Bild angegebene Paarung {(X 1, X 8 ), (X 2, X 4 ), (X 5, X 7 ), (X 3, X 6 )} eine Maximumpaarung darstellt. Algorithmus zum Auffinden einer Maximumpaarung im ungerichteten Graphen G = [K, B]: Suche eine beliebige Paarung M. Gibt es einen bezüglich M exponierten Knoten X start sowie eine von X start ausgehende vergrößerbare Kette? o o Nein: M ist eine Maxiumpaarung. Ja: Modifizierte Tiefensuche, ausgehen von X start, nach einen von X start verschiedenen exponierten Knoten: Man markiere den Startknoten und mache ihn zum aktuellen Knoten X. Man suche vom aktuellen Knoten X aus einen Nachbar Y, der noch nicht als erreicht markiert ist. Ist X exponierter Knoten, so ist eine vergrößerbare Kette gefunden. Tausche längs der Kette die Zugehörigkeit ihrer Kanten bezüglich der Paarung und wiederhole den Algorithmus. Andernfalls wird der bezüglich der Paarung gegebener Partner Y* von Y markiert; X := Y*; Wiederholung dieses Schrittes. Hat der aktuelle Knoten X keine inzidente Kante mehr, deren Endknoten noch ohne Markierung ist, so Abbruch, falls X = X start ; andernfalls gehe man zu dem Knoten zurück, von dem aus X markiert wurde (X = AKn(StzBg(X))) und wiederhole den vorhergehenden Schritt.

24 24 Kapitel 1: Grundbegriffe der Graphentheorie Bemerkung: Es ist wichtig, dass beim Vorwärtsgehen nicht der Nachbar Y, sondern dessen Partner Y* bezüglich M markiert wird, denn Y ist nicht eigentlich erreicht, sondern nur Durchgangsstation beim Vorwärtsgehen. Am Beispiel Bild 1.14 oberes Teilbild: X := Xstart := X 8 ; StzBg(X 8 ) := WrzBg; Y := X 1 ; Y* := X 2 ; StzBg(X 2 ) := (X 1, X 8 ); X := X 2 ; Y := X 3 ; Y* := X 7 ; StzBg(X 7 ) := (X 2, X 3 ); X := X 7 ; Y := X 5 ; Y* := X 4 ; StzBg(X 4 ) := (X 5, X 7 ); X := X 4 ; Y := X 2 ; X 2 wurde schon erreicht, also rückwärts: StzBg(X 4 ) := (X 5, X 7 ); X := X 7 ; X 7 hat keinen weiteren Nachbar, also weiter rückwärts: StzBg(X 7 ) := (X 2, X 3 ); X := X 2 ; Y := X 4 ; Y* := X 5 ; StzBg(X 5 ) := (X 2, X 4 ); X := X 5 ; Y := X 7 ; Y* := X 3 ; StzBg(X 3 ) := (X 5, X 7 ); X := X 3 ; Y := X 6 ; X 6 ist exponiert, also erfolgreiches Ende der Suche und Erweiterung der Paarung: Alter Partner X 3 von ist X 7 ; X := X 3 ; StzBg(X 3 ) = (X 5, X 7 ); X 3 wird Partner von X 6 ; X 6 wird Partner von X 3 ; X := X 5 ; StzBg(X 5 ) = (X 2, X 4 ); X 7 wird Partner von X 5 ; X 5 wird Partner von X 7 ; X := X 2 ; StzBg(X 2 ) = (X 1, X 6 ); X 2 wird Partner von X 4 ; X 4 wird Partner von X 2 ; X := X 8 ; StzBg(X 8 ) = WrzBg, also Ende des Algorithmus. Da es keinen exponierten Knoten mehr gibt, endet das Verfahren, die gegebene Paarung (Bild 1.14 unteres Teilbild) ist eine Maximumpaarung.

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

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. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

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

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

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

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

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

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

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

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

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

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

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 Vorlesung 1 Programm des

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

Binäre Bäume Darstellung und Traversierung

Binäre Bäume Darstellung und Traversierung Binäre Bäume Darstellung und Traversierung Name Frank Bollwig Matrikel-Nr. 2770085 E-Mail fb641378@inf.tu-dresden.de Datum 15. November 2001 0. Vorbemerkungen... 3 1. Terminologie binärer Bäume... 4 2.

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

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

0, v 6 = 2 2. 1, v 4 = 1. 2. span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 ) Aufgabe 65. Ganz schön span(n)end. Gegeben sei folgende Menge M von 6 Vektoren v, v,..., v 6 R 4 aus Aufgabe P 6: M = v =, v =, v =, v 4 =, v 5 =, v 6 = Welche der folgenden Aussagen sind wahr? span(v,

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

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne 6.2 Petri-Netze WS 06/07 mod 621 Petri-Netz (auch Stellen-/Transitions-Netz): Formaler Kalkül zur Modellierung von Abläufen mit nebenläufigen Prozessen und kausalen Beziehungen Basiert auf bipartiten gerichteten

Mehr

Charakteristikenmethode im Beispiel

Charakteristikenmethode im Beispiel Charakteristikenmethode im Wir betrachten die PDE in drei Variablen xu x + yu y + (x + y )u z = 0. Das charakteristische System lautet dann ẋ = x ẏ = y ż = x + y und besitzt die allgemeine Lösung x(t)

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

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

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 Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr

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

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand

Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand Entladen und Aufladen eines Kondensators über einen ohmschen Widerstand Vorüberlegung In einem seriellen Stromkreis addieren sich die Teilspannungen zur Gesamtspannung Bei einer Gesamtspannung U ges, der

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem

20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem 20. Algorithmus der Woche Online-Algorithmen: Was ist es wert, die Zukunft zu kennen? Das Ski-Problem Autor Susanne Albers, Universität Freiburg Swen Schmelzer, Universität Freiburg In diesem Jahr möchte

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

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

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Es gilt das gesprochene Wort. Anrede

Es gilt das gesprochene Wort. Anrede Sperrfrist: 28. November 2007, 13.00 Uhr Es gilt das gesprochene Wort Statement des Staatssekretärs im Bayerischen Staatsministerium für Unterricht und Kultus, Karl Freller, anlässlich des Pressegesprächs

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie

HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie Beim Hauptanschluss haben Sie die Wahl zwischen einem ISDN und einem Analoganschluss. Wählen Sie hier den Typ entsprechend Ihrem Telefonanschluss.

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Vollständigkeit halber aufgeführt. Gehen wir einmal davon aus, dass die von uns angenommenen 70% im Beispiel exakt berechnet sind. Was würde

Mehr

Das Persönliche Budget in verständlicher Sprache

Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget in verständlicher Sprache Das Persönliche Budget mehr Selbstbestimmung, mehr Selbstständigkeit, mehr Selbstbewusstsein! Dieser Text soll den behinderten Menschen in Westfalen-Lippe,

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr