Fachhochschule Regensburg Graphen-Algorithmen: Topologischer Sort, Projektplanung (CPM) Test-Nr. 23_1 Algorithmen und Datenstrukturen Name: ________________________ Aufgabensteller: Prof. Sauer Vorname: _____________________ 1. Aufgabe 1. Gegeben ist der folgende gerichtete, azylische Graph 2 10 1 4 9 6 8 3 7 5 Abb.: Die Daten zu diesem Graphen sind in eine Datei aufzunehmen und einem Programm 1 zum Aufbau von Adjazenzlisten und anschließender topologischer Sortierung bereitzustellen. Zeige mit Hilfe eines vorgegebenen Programms2, wie 1. der Aufbau der Datei zu gestalten ist, 1 2 ueb23_1/pr53_2 ueb23_1/pr53_2/ pr34111.cpp 1 2. die Knoten und Kanten dieses Graphen in eine Adjazenzliste aufgenommen werden [1] [2] [3] [4] [5] [6] [7] [8] [9] 3. die Startknoten für den topologischen Sort ermittelt werden 3. der toplogische Sort erfolgt 4. die Ausgabe in toplogisch, sortierter Folge der Knoten erfolgt 2. Aufgabe Gegeben ist der folgende Netzplan 10 Erstelle Software 20 Tage Handbucherstellung 60 Tage Teste Software Korrigiere Fehler 20 40 15 Tage 25 Tage Bestelle Hardware 50 Tage Abb.: Projektbeschreibung mit Hilfe eines gerichteten, azyklischen Graphen Die Daten zum Projekt sind in einer Datei mit folgendem Aufbau enthalten: 10 10 40 20 40 30 40 20 30 30 50 20 25 15 60 Bestelle Hardware Erstelle Software Teste Software Korrigiere Fehler Handbucherstellung 2 30 [10] Zeige mit Hilfe eines vorgegebenen Programms3, wie 1. die Knoten und Kanten dieses Netzplans in eine Adjazenzliste aufgenommen werden [1] [2] [3] [4] zaehler ft, st 0 0 0 0 kette Abb.: Speicherstruktur des Graphen nach dem Erzeugen der Adjazenzliste 2. mit welchem Programmbaustein des vorgegebenen Programms werden die vorgängerlosen Elemente in einen Stapel aufgenommen. 3. Führe die Berechnung der frühest möglichen Termine mit Hilfe der unter 1. ermitteltelten Datenstruktur aus. Trage die Termine in die unter 1. angegebene Darstellung ein. 4. Zur Berechnung der spätesten Termine benutze eine invertierte Adjazenzliste. Zeige in der folgenden Darstellung die Gestalt der invertierten Adjazenzliste wie sie durch das vorgegebene Progrann anhand der Eingabedaten ermittelt wird. 3 ueb23_1/pr53_2/ pr34125.cpp 3 [1] [2] [3] [4] zaehler ft, st kette Abb.: Speicherstruktur des Graphen nach dem Erzeugen der Adjazenzliste 5. Führe die Berechnung der spätest zulässigen Termine mit Hilfe der unter 1. ermitteltelten Datenstruktur aus. Trage die Termine in die unter 4. angegebene Darstellung ein. 6. Ermittle aus den vorliegenden frühesten und spätesten Termine den kritischen Pfad. 7. Zur Kontrolle bringe mit geeigneter Eingabedatei das vorgegebene Programm zum Ablauf 4 Fachhochschule Regensburg Graphen-Algorithmen: Topologischer Sort, Projektplanung Test-Nr. 23_1 Algorithmen und Datenstrukturen Name: ________________________ Aufgabensteller: Prof. Sauer Vorname: _____________________ 1. Aufgabe 1. Gegeben ist der folgende gerichtete, azylische Graph 2 10 1 4 9 6 8 3 7 5 Abb.: Die Daten zu diesem Graphen sind in eine Datei aufzunehmen und einem Programm 4 zum Aufbau von Adjazenzlisten und anschließender topologischer Sortierung bereitzustellen. Zeige mit Hilfe eines vorgegebenen Programms5, wie 1. der Aufbau der Datei zu gestalten ist, 4 5 pr53_2 pr53_2, pr3411.cpp 5 2. die Knoten und Kanten dieses Graphen in eine Adjazenzliste aufgenommen werden [1] [2] [3] [4] [5] 2 4 5 6 8 3 10 [6] [7] 3 8 [8] [9] 5 4 9 10 3. die Startknoten für den topologischen Sort ermittelt werden 3. der toplogische Sort erfolgt 4. die Ausgabe in toplogisch, sortierter Folge der Knoten erfolgt 7 9 1 2 4 6 3 5 8 10 2. Aufgabe Gegeben ist der folgende Netzplan 10 Handbucherstellung 60 Tage Teste Software Korrigiere Fehler 20 40 15 Tage 25 Tage Bestelle Hardware Erstelle Software 20 Tage 50 Tage Abb.: Projektbeschreibung mit Hilfe eines gerichteten, azyklischen Graphen Die Daten zum Projekt sind in einer Datei mit folgendem Aufbau enthalten: 10 10 40 20 40 30 40 20 30 30 50 20 25 15 60 Bestelle Hardware Erstelle Software Teste Software Korrigiere Fehler Handbucherstellung Zeige mit Hilfe eines vorgegebenen Programms6, wie 6 pr53_2, pr34125.cpp 6 30 [10] 1. die Knoten und Kanten dieses Netzplans in eine Adjazenzliste aufgenommen werden [1] zaehler ft, st kette 0 0 0 [2] [3] [4] 1 3 1 0 0 0 0 0 3 15 0 nummer dauer 4 20 3 60 nummer dauer 3 2 50 25 Abb.: Speicherstruktur des Graphen nach dem Erzeugen der Adjazenzliste 2. mit welchem Programmbaustein des vorgegebenen Programms werden die vorgängerlosen Elemente in einen Stapel aufgenommen. 3. Führe die Berechnung der frühest möglichen Termine mit Hilfe der unter 1. ermitteltelten Datenstruktur aus. Trage die Termine in die unter 1. angegebene Darstellung ein. 4. Zur Berechnung der spätesten Termine benutze eine invertierte Adjazenzliste. Zeige in der folgenden Darstellung die Gestalt der invertierten Adjazenzliste wie sie durch das vorgegebene Progrann anhand der Eingabedaten ermittelt wird. 7 [1] zaehler ft, st kette [2] 2 0 1 80 0 [3] [4] 0 45 80 2 80 0 80 20 80 0 0 nummer 4 4 1 dauer 25 60 20 nummer 2 15 dauer nummer 1 dauer 50 Abb.: Speicherstruktur des Graphen nach dem Erzeugen der Adjazenzliste 5. Führe die Berechnung der spätest zulässigen Termine mit Hilfe der unter 1. ermitteltelten Datenstruktur aus. Trage die Termine in die unter 4. angegebene Darstellung ein. 6. Ermittle aus den vorliegenden frühesten und spätesten Termine den kritischen Pfad. 7. Zur Kontrolle bringe mit geeigneter Eingabedatei das vorgegebene Programm zum Ablauf 8