Guten Tag. Mein Name ist Markus Mickhain und ich werde ihn
in diesem Video, die Übung neun, Netzplantechnik vorstellen.
Zunächst einmal möchte ich die Thematik motivieren. Netzplantechnik findet immer dann
Anwendung, wenn Vorgänge innerhalb eines Projektes zeitliche Abhängigkeiten haben.
Dies ist zum Beispiel der Fall bei dem Bau einer Lagerhalle,
dem Bau einer Produktionsstätte, aber auch der digitalen und physischen Produktentwicklung.
Im Rahmen dieser Übung werden wir zunächst einmal das viel,
viel Verfahren kennenlernen, um frühesten Anfangszeiten, entgrüßte Endzeiten,
spätestens Anfangszeiten und späteste Endzeiten zu bestimmen,
wenn wir einen Netzplan mit negativer Zykluslänge haben.
Anschließend werden wir die Pufferzeiten berechnen,
die sie da zu verwenden können, um zu bestimmen,
ob sich Vorgänge zeitlich nach vorne oder nach hinten verleben lassen.
Im letzten Abschnitt werden wir die mathematischen Modelle zu Netzplantechnik
kennenlernen und in Games implementieren
Wir betrachten wieder das Beispiel aus der Vorlesung, Bau einer Lagerhandel.
Der Baubeginn ist nun zum Zeitpunkt 5 angesetzt worden. Das heißt,
wir betrachten hier eine früheste Anfangszeit des Vorgangs 1 von 5 Zeiteinheiten.
Darüber hinaus ist mit dem Management eine Projektdauer von 18 seinen Einheiten vereinbart worden.
Das heißt, wir müssen die späteste Endzeit vom letzten Knoten,
also vom Prozess Schritt 9, wie folgt berechnen.
Die früheste Anfangszeit vom Knoten 1 Mit fünf Einheiten,
plus die Projektdauer von 18 Einheiten. Entsprechend müssen wir hier
eine späteste Endzeit vom Vorgang 9 von 23 Zeiteinheiten berücksichtigen.
Ferner gilt nun, dass vom Ende der Richtung
des Mauerwerkes Vorgang 3 bis zur Fertigstellung des Äußeren Verputzens,
Vorgang 8, höchstens sieben Zeiteinheiten vergehen dürfen.
Das heißt, wir müssen hier eine Endfolge,
eine maximale Endfolge vom Knoten 3 zum Knoten 8 von sieben
Zeiteinheiten berücksichtigen
Im Folgenden werden wir nun die drei Aufgaben durchgehen.
Zunächst werden wir die frühesten und spätestens anfangs beziehungsweise Endzeitpunkte der
Vorgänge mithilfe des DIFO-Verfahrens berechnen. Anschließend werden wir die Pufferzeiten
bestimmen und das mathematische Modell zur Netzplantechnik in Games implementieren.
In der Vorlesung sind Ihnen die Rechenvorschriften für die Berücksichtigung
der Mindestabstände bzw. der Maximalabstände
In unserem Beispiel müssen wir eine Maximalabstand vom Knoten Haar zum Knoten I berücksichtigen.
Entsprechend haben wir hier eine Endfolge. Um diese in
unserem Netzplan zu berücksichtigen, müssen wir die Transformationsregeln anwenden.
Entsprechend haben wir hier ebenfalls aus der Vorlesung diese folgende Gleichung bekommen,
um die Distanzen zwischen den zwei betrachteten Knoten
zu bestimmen
Entsprechend ist die Distanz vom Knoten i, zum Knotenhaar gleich
der maximalen Endfolge minus der Vorgangszeit des Knotens Haar.
Hier ist sie noch einmal die Daten zum Beispiel gegeben.
Diese finden sie auch ebenfalls in ihrer Vorlesung. Es sind
neun Vorgänge aufgeführt mit den entsprechenden Dauern und den entsprechenden Vorgängern und den Mindestabständen.
Zunächst müssen wir hier Die Distanz berechnen zwischen dem Vorgang 3
und dem Vorgang 8. Diese Gleichung haben wir aus unserem Transformationsregeln erhalten.
Wenn wir hier die Werte aus der Aufgabenstellung einsetzen,
dass die maximale Abstand von der Fertigstellung des Knoten 3 bis zum Fertigstellung des Knotens 8,
sieben Zeiteinheiten vergehen dürfen und dass die Vorgangszeit vom Knoten 3,
drei Einheiten beträgt.
Entsprechend Können wir hier die Distanz vom Vorgang 8 zum Knoten 3 berechnen,
minus 7, minus 3, sind entsprechend minus 10.
Diesen Wert müssen wir in unseren Netzplan eintragen.
Um zu überprüfen, ob wir den FIFA-Algorithmus anwenden müssen,
müssen wir
die Zykluslänge bestimmen
Diese bestimmt sich wie folgt. Es müssen die Vorgangsdauern zuzüglich
der Distanzen von den Einzelnen Vorgängen berechnet werden.
Hier ist es 3 plus 0, plus 2, plus 0,
plus 1 plus 0, plus 2, plus minus 10.
Entsprechend erhalten wir hier eine negative Zykluslänge von minus 2 Einheiten.
Und wir müssen in diesem Fall den FIFO-Ansatz anwenden
Im folgenden werden wir das FIFA-Verfahren für die gegebenen Aufgabenstellungen durchgehen.
Zunächst einmal die Voraussetzung. Es besteht die Notwendigkeit,
dass FIFA-Verfahren anzuwenden, wenn wir einen nicht positive Zyklus länger haben,
wie in diesem Fall von minus zwei.
Das allgemeine Vorgehen ist vergleichbar, zu dem FIFA-Verfahren,
dass sie bereits im Rahmen der Grafentheorie zur Bestimmung des kürzesten Weges
kennengelernt haben.
Wir verwenden ebenfalls
eine FIFA-Liste
Zuerst wenden wir die vor und danach die Rückwärtsrechnung an.
Es wird immer der nächstgrößere Nachfolgerknoten bei der Vorwärtsrechnung,
beziehungsweise Dennis kleinere Vorgängerknoten bei der Rückwärtsrechnung, in die FIFO-Liste aufgenommen.
Bei der Vorwärtsrechnung wird überprüft, ob die Zeitpunkte zu klein sind,
bei der Rückwärtsrechnung wird überprüft,
ob die Zeitpunkte zu groß sind.
Wird ein Knoten aktualisiert, so wird er sofern noch nicht
in der FIFO-Liste enthalten ist,
in die Liste aufgenommen
Das Verfahren der Vorwärtsrechnung beginnt zunächst mit einer Initialisierung,
sodass die frühesten Anfangszeitpunkte für alle Vorgänge auf minus unendlich gesetzt werden,
außer für den frühesten Anfangszeitpunkt des ersten Vorgangs.
In diesem Fall wird dieser gleich 5 gesetzt.
Die früheste Endzeit des Vorgangs 1 berechnet sich aus der
frühesten Anfangszeit zuzüglich der Prozesszeit des Vorgangs
Der Schlangenkopf entspricht dem Schlangenende und ist entsprechend der Vorgang 1.
Anschließend beginnt das iterative Verfahren. In jeder Iteration werden alle Nachfolger des Schlangenkopfes
betrachtet. Falls die früheste Anfangszeit des Nachfolgers kleiner ist,
als die früheste Endzeit des Schlangenkopfes zuzüglich der Distanz vom Schlagkopf zum Nachfolger,
wird die früheste Anfangszeit des Nachfolgers aktualisiert
Entsprechend gleich der frühesten Endzeit des schlagen Kopfes zuzüglich
der Distanz vom schlagen Kopf zum Nachfolger berechnet.
Falls der Nachfolger noch nicht in der FIFO-Liste enthalten ist,
wird dieser hinzugefügt. Und zwar als Nachfolger vom aktuellen Schlangenende
. Das Verfahren bricht dann ab, falls der Schlangenkopf gleich
dem Schlangenende ist,
Ist dies nicht der Fall, wird der Schleimkopf aktualisiert.
Und zwar mit dem Nachfolger des aktuellen Schlangenkopfes. Anschließend wird
die früheste Endzeit des Aktualisierten Schlangenkopfes bestimmt. Und zwar aus
der frühesten Anfang sei diese Schlangenkopfes zuzüglich zu der Vorgangszeit.
Das Ergebnis sind dann die frühesten Anfangs- und Endzeitpunkte für alle
Vorgänge.
Wir beginnen mit der Initialisierung
Hier wird die frühest Anfangszeit und die Früste
Endzeit für den ersten Vorgang bestimmt.
Und die frühesten Anfangszeiten für alle anderen Knoten auf minus unendlich gesetzt.
Zudem wird der Vorgang 1 in die FIFO-Liste hinzugefügt.
In der ersten Iteration werden dann die frühesten Anfangszeiten für
alle Nachfolger des ersten Knotens
Zunächst für den Knoten, für den nächst kleineren Knoten.
Entsprechend ergibt sich die früheste Anfangszeit für den Knoten 2 von 8 minus 1
gleich 7. Dieser Vorgang wird dann in die Fieldfrühliste hinzugefügt.
Anschließend wird der weitere Nachfolger berechnet. Entsprechend ergibt sich
die früheste Anfangszeit für den Knoten 3 aus 8 plus 1
gleich 9.
Auch dieser Knoten wird der Fifuliste hinzugefügt
Und zwar als Nachfolger des vorherigen Knotens, entsprechend des Knotens weiß.
Nun haben wir alle Nachfolger betrachtet und können den Knoten eins
aus unserer FIFO-List entfernen. Und die früheste Endzeit für unseren
neuen Schlangkopf, dem Knoten 2, berechnen.
Dieser ergibt sich aus sieben Einheiten des Früsten Anfangszeit
vom Vorgang 2 zuzüglich der Vorgangsdauer von zwei Zeiteinheiten
Anschließend gehen wir in der zweiten Iteration und betrachten alle Nachfolger von Knoten 2.
Und berechnen hier die früheste Anfangszeit des Knoten 5.
Dieser entspricht in diesem Fall 9 seinen Einheiten.
Und wir nehmen auch diesen Knoten in unsere FIFO-Liste auf.
Nun haben wir alle Nachfolger das Knoten 2 betrachtet
und können diesen aus der FIFO-Liste entfernen
Anschließend berechnen wir die früheste Endzeit vom Vorgang 3. Diese ergibt
sich aus der frühesten Anfangszeit leicht neun plus der Vorgangsdauer von
drei Einheiten gleich zwölf.
In der dritten Iteration bestimmen wir
alle Nachfolger vom Knoten
Hier ergibt sich zunächst die früheste Anfangszeit für den Knoten 4. Gleich zwölf Zeiteinheiten.
Auch dieser Knoten wird der FIFO-Liste hinzugefügt. Anschließend überprüfen wir
die früheste Anfangszeit vom Vorgang 5. Die war zunächst mit neun
Zeiteinheiten angegeben. Da zwölf plus eins, gleich 13,
größer gleich neun ist, müssen wir in diesem Fall
Die früheste Anfangszeit von Knoten 5 aktualisieren auf 13.
Da der Knoten 5 bereits in unserer FIFO-Liste enthalten ist,
müssen wir diese nicht erneut hinzufügen.
Anschließend können wir den Knoten 3 aus unserer FIFO-Liste streichen.
Und die Früste Endzeit von unserem neuen Schlangenkopf dem Knoten 5 bestimmen.
Dieser ergibt sich wieder aus der frühesten Anfangszeit,
13 plus 3,
gleich 16 Zeiteinheiten
In der vierten Iteration betrachten wir alle Nachfolger,
des Knoten 3, adessknoten 5. Entsprechend berechnen wir die
früheste Anfangszeit für den Knoten 7. 16 plus 1 gleich 7.
Und fügen auch diesen Knoten in die FIFO-Liste hinzu.
Da wir keinen weiteren Nachfolger vom Knoten 5 haben,
können wir den Knoten 5 wieder aus der Liste entfernen
Und die früheste Endzeit für den Knoten 4, für unseren
neuen Schlagenkopf bestimmen. Dieser ergibt sich wieder aus der frühesten
Anfangszeit von zwölf Einheiten und der Vorgangszeit von zwei Einheiten gleich 14.
In der Iteration. Fünf betrachten wir nun alle Nachfolger vom Knoten 4
und brechen hier die früheste Anfangszeit von unserem Knoten 6 mit 14 Einheiten.
Und fügen auch diesen Knoten wieder in die FIFA-Liste hinzu
Da wir keinen weiteren Nachfolger haben,
können wir den Knoten 4 aus unserer FIFO-Liste entfernen.
Anschließend bestimmen wir wieder die früheste Endzeit von unserem aktuellen Schlangkopf,
dem Knoten 7. Und hier gibt sich wieder 17 plus 2,
gleich 19 Zeiteinheiten für unsere früheste Endzeit vom Vorgang 7.
In der nächsten Literation betrachten wir dann
alle Nachfolger vom Knoten
Die früheste Anfangszeit von Knoten 9 entgibt sich entsprechend über 19 plus 0 gleich 19.
Auch diesen Knoten fügen wir wieder der FIFO-Liste hinzu.
Da wir keinen weiteren Nachfolger haben,
können wir den Knoten 7 aus unserer FIFO-Liste entfernen.
Und die früheste Endzeit für unseren Knoten 6,
unserem aktuellen Schlangkopf bestimmen. Diese ergibt sich aus 14 plus
1 gleich
In der nächsten Literation betrachten wir alle Nachfolger des Knoten 6.
Das ist entsprechend der Knoten 7. Hier beträgt jedoch die früheste
Anfangszeit 17 Einheiten und es wäre größer als 15 plus 0.
Entsprechend wird die früheste Anfangszeit für den Knoten 7 nicht aktualisiert.
Weiter wird die früheste Anfangszeit für den Knoten 8 berechnet.
Diese entspricht 15 Zeiteinheiten
Und der Kloten 8 wird in die FIFO-Liste aufgenommen.
Nun haben wir alle Nachfolger betrachtet und wir können
den Knoten 6 aus unserer FIFO-Liste entfernen.
Und die früheste Endzeit für unseren neuen Steinkopf, den Knoten 9 bestimmen.
Die früheste Endzeit beträgt entsprechend 19 plus 1, 20 Zeiteinheiten.
In der nächsten Iteration werden alle Nachfolger vom Knoten 9 betrachtet.
Da der Knoten 9 keine Nachfolger hat,
Können wir direkt in die nächste Iteration gehen?
Und berechnen, entsprechend die früheste Anfangszeit, die früheste Endzeit von unserem Knoten 8.
Gehen spricht 15 plus 2, gleich 17 Zeiteinheiten.
In der neunten Iteration schauen wir uns wieder
alle Nachfolger vom Knoten 8 an.
Dieser wäre zunächst
der Knoten
17, minus 10 sind 7 und 9 ist größer als 7.
Entsprechend muss der Knoten 3 nicht aktualisiert werden.
Das Gleiche gilt für den Knoten 9. Da 19 größer ist
als 17. In diesem Fall, unser Schlangenkopf,
gleich unser Schlangenende ist, ist das Abbruchkriterium erfüllt.
Und wir haben die Vorwärtsrechnung abgeschlossen. Nun, Müssen wir die Rückwärtsrechnung vornehmen?
Auch in diesem Fall müssen wir zunächst eine Initialisierung vornehmen.
Wir setzen alle spätesten Endzeiten von jedem Vorgang auf unendlich.
Außer für unsere späteste Endzeit des Knoten N.
Entsprechend unserem Knoten 9. Diese beträgt in diesem Fall 23 Einheiten.
Das haben wir ganz zu Beginn bestimmt. Entsprechend berechnen wir hier
auch unsere späteste Anfangszeit über die späteste Endzeit minus die Vorgangszeit
Und setzt auch in diesem Fall wieder unseren Schlangenkopf, gleich unserem Schlangenende.
Nun beginnt das iterative Verfahren. In diesem Fall betrachten wir
jedoch den Vorgang, jeden Vorgänger unserer Schlangenkopfes.
Falls unsere späteste Endzeit von unserem Vorgänger J größer ist als unsere späteste Anfangszeit,
von unserem Schlangenkopf, abzüglich der Distanz von unserem Vorgänger,
zu unserem Schlangenkopf, wird dieser späteste Endzeit aktualisiert.
Die späteste Endzeit von unserem Quoten J ergibt sich dann aus der spätesten Anfangszeit des Nachfolgers entsprechend dem Schlangenkopf,
minus der Distanz, von dem Vorgänger zu unserem Schlangenkopf,
ist der Vorgang noch nicht in unserer Schlange enthalten,
sprechen unserer FIFO-Liste,
wird dieser Knoten in der Liste hinzugefügt.
Als Nachfolger des aktuellen Schlangenendes. Das Abbruchkriterium gilt wieder,
wenn der Schlangenkopf gleich dem Schlangenende ist
Am Ende einer jeden Iteration wird der Schlangenkopf wieder aktualisiert.
Und zwar, als Nachfolger des aktuellen Schlangenkopfes. Und auch
hier wird wieder die späteste Anfangszeit von unserem Schlangenkopf berechnet.
Diese ergibt sich aus der spätesten Endzeit des aktualisierten Schlangenkopfes,
minus der Vorgangsdauer, des aktualisierten Schlangenkopfes.
Das Ergebnis sind dann die spätesten Anfangs- und Endzeitpunkte für
alle Vorgänge.
Die Nizenisierung beginnt wie folgt
Wir tragen zunächst die späteste Endzeit von 23 Zeiteinheiten und die
späteste Anfangszeit von 22 Einheiten für den Knoten 9 ein.
Zudem setzen wir die spätesten Endzeiten für alle anderen Knoten auf
unendlich und fügen den Knoten 9 in die Fifel-Liste hinzu.
In der ersten Interration betrachten wir dann alle Nachfolger vom Knoten 9.
Zunächst den nächst kleineren,
den Knoten
Hier ergibt sich eine späteste Endzeit von 22 Einheiten.
Aus 22, minus 0, gleich 22. Und entsprechend auch
für den und diesen Knoten enttragen wir entsprechend der FIFO-Liste hinzu.
Weiter bestimmen wir die späteste Endzeit von dem Knoten 7 mit
22 Einheiten. Hier auch wieder entsprechend, 22,
minus 0, gleich 22 und fügen auch diesen Knoten der
FIFO-Liste hinzu
Anschließend können wir den Knoten 9 aus unserer Vielfalist entfernen,
da wir alle Nachfolger betrachtet haben.
Nun müssen wir noch die späteste Anfangszeit von unserem aktualisierten Schlangkopf,
dem Knoten 8 bestimmen.
Dieser ergibt sich aus 22, minus 2, gleich 20.
In der nächsten Iteration betrachten wir dann
alle Vorgänger vom Knoten
Dies ist in diesem Fall der Knoten sechs und die späteste Endzeit beträgt 20 Einheiten.
Auch diesen Knoten fügen wir der FIFO-Liste hinzu,
da wir keinen weiteren Nachfolger betrachten, können wir den Knoten acht,
was der FIFO-Liste entfernen.
Anschließend berechnen wir die späteste Anfangszeit von unserem neuen Schlangenkopf,
dem Knotenvorgang 7. Dieser ergibt sich aus 22,
minus zwei,
In der nächsten Iteration bestimmen wir die spätesten Endzeiten von allen Vorgängern.
Zunächst bestimmen wir hier, berechnen wir hier die früheste Endzeit,
die späteste Anfangsendzeit vom Knoten sechs.
Diese beträgt bereits 20 Zeiteinheiten und muss nicht aktualisiert werden.
Anschließend bestimmen wir die späteste Anfangszeit vom Knoten 5.
Diese beträgt 19 Zeiteinheiten
20, minus 1, gleich 19. Diesen Knoten fügen wir
der FIFO-Liste hinzu. Da der Knoten 7 keine weitere Nachfolger
hat, können wir diesen aus der FIFO-Liste entfernen.
Anschließend bestimmen wir die späteste Anfangszeit vom Knoten 6.
Diese ergibt sich aus 20, minus 1, gleich 19.
In der nächsten Iteration betrachten wir alle Vorgänger des Knoten 6.
Und bestimmt hier die späteste an Endzeit Knoten
4. Diesel beträgt 19 Zeiteinheiten. Auch diesen Knoten fügen wir
der FIFO-Liste hinzu. Da wir keine weiteren Vorgänge haben,
können wir den Knoten 6 aus unserer FIFO-Liste streichen.
Und können entsprechend die späteste Anfangszeit von unserem Knoten 5 bestimmen.
Diese beträgt 16 Zeiteinheiten und ergibt sich aus 19 minus 3.
In der nächsten Iteration bestimmen wir dann
die spätesten Endzeiten
Aller Vorgänger vom Knoten 5. Diese beträgt vom Knoten 3,
gleich 15 seinen Einheiten und ergibt sich, was 16,
minus 1. Dieser Knoten wird der FIFO-List hinzugefügt.
Zudem können wir die späteste Endzeit des Knoten 2 bestimmen.
Diese entspricht 16 Zeiteinheiten und auch diesen Knoten
können wir
der FIFO-Liste hinzufügen
Anschließend bestimmen wir die späteste Anfangszeit von unserem Knoten
4. Dieser beträgt 17 Zeit einhalten und ergibt sich aus
19 minus 2. Und natürlich haben wir auch in dieser Iteration
unseren Knoten 5 aus der FIFO-Liste entfernt,
da es keine weitere Nachvorgänge als den Knoten 2 und den Knoten 3 gibt.
In der nächsten Iteration überprüfen wir dann, Die späteste Endzeitpunkt vom Knoten
3. Diese ist mit 15 Zeiteinheiten größer als 17.
Entsprechend muss der Knoten 3 nicht aktualisiert werden.
Und wir können den Knoten 4 aus unserer FIFO-Liste entfernen.
In der nächsten Iteration betrachten wir alle Vorgänger des Knoten 3.
Hier können wir einmal zunächst die Vorgängerbeziehung mit dem Knoten 8
Diese beträgt 12, minus, minus 10,
entsprechend 22 Einheiten und ist größer als die späteste Endzeit vom Knoten 8 mit 22 Einheiten.
Entsprechend müssen wir hier den Knoten 8 nicht aktualisieren.
Anschließend berechnen wir die späteste Endzeit vom Knoten 1. Diese beträgt elf Einheiten,
da gibt es sich aus zwölf, minus 1.
Auch diesen Knoten fügen wir der Fifulistin zu.
Anschließend können wir den Knoten 3 aus unserer Fiful-Liste entfernen
Und den neuen Schlangenkopf bestimmen. Und entsprechend die späteste Anfangszeit vom Knoten 2 berechnen.
Dieser entspricht 14 Zeiteinheiten und ergibt sich aus 16 minus 2.
In der nächsten Iteration betrachten wir alle Vorgänger des Knoten 2.
Diese ergibt sich aus 14 minus minus 1 und ist 15.
Da die aktuelle Späteste Endzeit vom Knoten 1 bereits mit 11
zeiteinhaltende Stimmen wurde, muss dieser Knoten nicht aktualisiert werden.
Da der Knoten 1 ebenfalls in der Liste FIFO-Liste
bereits enthalten ist, müssen wir diese nicht zusätzlich aufnehmen.
In der letzten Iteration und können dann die späteste Endzeit für
unseren Knoten 1 bestimmen.
Diese ergibt sich aus 11 minus 3
In der letzten Iteration sehen wir,
dass der Knoten 1 keine Vorgängerbeziehung besitzt.
Und das Abbruchkriterium, Schlangenkopf, gleich Schlangenende erfüllt ist.
Und somit haben wir auch alle spätestens End- und Anfangszeiten über
die Rückwärtsrechnung bestimmt. In der zweiten Aufgabe wollen wir
die Pufferzeiten für unsere einzelnen Vorgänge bestimmen
Insgesamt betrachten wir vier verschiedene Arten von Pufferzeiten.
Die gesamte Pufferzeit gibt die maximale Zeitspanne, um die der
Vorgang I verschoben und oder verlängert werden kann, an.
Ihr wird berechnet über die späteste Anfangszeit minus die früheste Anfangszeit.
Beispielhaft haben wir dieses für den Knoten für den Vorgang 1 bestimmt.
Die späteste Anfangszeit beträgt acht Einheiten und die früheste Anfangszeit
beträgt fünf Einheiten
Entsprechend beträgt uns eine Gesamtpufferzeit für den Knoten 1, 3 Einheiten.
Die freie Pufferzeit gibt den zeitlichen Spielraum, der für Vorgang I verbleibt,
bin Vorgang I und all seine Nachfolger, frühstmöglich beginnen.
Dieser ist nur dann definiert, in Nachfolgerbeziehungen bestehen.
Sie ergibt sich aus dem Minimum aller frühesten Anfangszeiten,
Minus der Distanz, der Vorgänger,
minus der frühesten Endzeit
Des Vorgangs ist. In unserem Fall wäre das früheste für den Vorgang 1,
die früheste Anfangszeit des Vorgangs 2,
minus der Distanz von dem Vorgang 1,
zum Vorgang 2 und die früheste Anfangszeit vom Vorgang 3,
minus der Distanz vom Vorgang 1. Und entsprechend dem minimalen Wert
dieser beiden Therme,
abzüglich der frühesten Endzeit,
vom Vorgang
Also, sieben, minus, minus eins,
er gibt acht und neun, minus eins,
ergibt ebenfalls acht, also acht, minus acht,
ist gleich null.
Entsprechend haben wir hier keine freie Pufferzeit für den Vorgang 1.
Entsprechend gibt es auch die freie Rückwärtspfufferzeit. Dies entspricht der zeitlichen,
des zeitlichen Spielraums, der für Vorgang I. verbleibt,
wenn Vorgang I und all seine Vorgänge
spätestmöglich beginnen
Auch dieser ist nur definiert, wenn Vorgängerbeziehungen bestehen.
Und er gibt sich über die späteste Anfangszeit vom Vorgang ihn,
minus dem Maximum, aus den spätesten Endzeiten des Vorgangs Haas,
also der Vorgänger des Vorgangs Eat,
plus der Distanz vom Vorgänger I. Ha, ja.
Ha, zum aktuellen Knoten I. Auch dieser ist nur definiert,
wenn Vorgängerbeziehungen bestehen und für den Vorgang 1 bestehen entsprechend
keine Vorgängerbeziehungen.
Somit ist dieser Wert null
Schließlich folgt die unabhängige Pfufferzeit und gebt den zeitlichen Spielraum,
der für den Vorgang I. verbleibt,
wenn all seine Vorgänger spätestenmöglich beginnen und all seine Nachfolger frühestmöglich beginnen.
Dieser ist definiert als ein positiver Wert oder ein Wert,
der maximal null ist.
Also keine negativen Werte und der frühesten Pufferzeit des Vorgangs I.
plus der freien Rückwärtspufferzeit des Vorgang I. minus der Gesamtpufferzeit
des Vorgang
Dieser ist entsprechend Maximum aus Null und 0 plus 0 minus
3. Entsprechend null. Diese Werte können wir für jeden Vorgang
bestimmen und ist entsprechend hier eingetragen.
Für den Vorgang 1 haben wir nur eine Gesamtpufferzeit von drei Einheiten.
Für alle anderen Knoten und Fuhrt bzw. Vorgänge ergeben sich
die Werte analog
Zum Schluss werde ich nun noch die Implementierung in Games,
der Netzplan-Technik-Modelle, vorstellen. Zunächst einmal die Einführung der Parameter
und Variablen, die wir für das Mathematische Modell benötigen.
Wir haben zum einen die Dauer der Vorgänge,
die zeitlichen Mindestabstände zwischen den Vorgang H und den Vorgang I,
Sophie, die frühestmögliche Endzeit vom Vorgang N. Entspricht dem Ergebnis der Vorwärtsrechnung.
Die Variablen sind zum einen der Zielfunktionswert,
was einer minimalen Durchlaufzeit entspricht, sowie die frühestmögliche Anfangszeiten,
die frühestmöglichen Endzeitpunkte,
die spätestmöglichen Anfangszeitpunkte,
sowie die spätestmöglichen Endzeitpunkte der Vorgänger
Wir haben zunächst einmal das mathematische Modell der Vorwärtsrechnung mit
dem Zielkriterium, die früheste Endzeit aller Knoten zu minimieren.
Unter den Nebenbedingungen, das die früheste Anfangszeit des Knoten 1,
0 entspricht, beziehungsweise in unserem Spezialfall fünf Einheiten entspricht.
Die Differenz zwischen der spätesten Endzeit und der frühesten Anfangszeit
muss fünf Zeiteinheiten
Zeiteinheit betragen, der Vorgangsdauer des Vorgangs I.
Zudem müssen die frühesten Anfangszeiten von I,
was dem Nachfolger, des Vorgangs Haars entspricht,
mindestens so groß sein wie die Distanz vom Vorgang Haar
zum Vorgang I unter der Berücksichtigung der frühesten Endzeit des
jeweiligen Vorgängers
Zudem gilt die Nicht-Negativitätsbedingung für die frühesten Anfangsseiten bzw. frühesten Endzeiten.
Das Modell der Rückwärtsrechnung sieht ähnlich aus.
Hier sollen die spätesten Anfangszeiten der Vorgänger minimiert werden.
Die späteste Endzeit des Vorgangs N entspricht der frühesten Endzeit
des Vorgang N oder in unserem Spezialfall
23 Einheiten
Auch hier gilt wieder, dass die späteste Endzeit,
die Differenz zwischen der spätesten Endzeit, das Vorgang ist,
und der spätesten Anfangszeit, der dauert des Vorgangs entsprechen muss.
Analog gilt, dass die spätesten Anfangszeiten,
des Vorgangs i- der spätesten Endzeit des Vorgangs Haar,
größer sein muss als die Distanz.
Auch hier gilt in nicht Negativitätsbedingungen für die Variablen der
spätesten Anfangszeit oder spätestens Endzeit
Für alle Vorgänge. Hier sehen Sie das Game-Skript.
Wir müssen zunächst einmal ein Set anlegen, die Menge für
alle Vorgänge, sowie die Vorgänger, Nachfolgerbeziehung angeben.
Der Alias-Befehl dupliziert die Menge I. Entsprechend ist nun
die Menge J auch die gleiche Menge wie die der Menge
Wir geben hier als Parameter die Dauer der jeweiligen Vorgänge an,
sowie die Distanzen zwischen dem Vorgang I zum Nachfolger I.
Wir definieren eine Variable als freie Variable,
das entspricht beziehungsweise das bedeutet,
dass unsere Variable F positive,
sowie auch negative Werte annehmen kann
Zudem legen wir nicht negative Variablen an. Um das nicht
die Negativitätskriterium zu erfüllen. Dies gilt für unsere Variablen der frühesten Anfangszeitpunkte,
beziehungsweise frühesten Endzeitpunkte, beziehungsweise spätestens Anfangszeitpunkte, beziehungsweise spätestens Endzeitpunkte.
Nun müssen wir noch unsere Nebenbedingungen und Zielfunktionen in Games modellieren.
Diese werden als Equations angelegt. Wir haben eine Zielfunktion
Für die Vorwärtsrechnung und eine Zielfunktion für die Rückwärtsrechnung.
Sowie jeweils zwei Nebenbedingungen für die Vorwärtsrechnung und zwei Nebenbedingungen für die Rückwärtsrechnung.
Diese entsprechen der allgemeinen brahischen Formen der jeweiligen Modelle.
Hier definieren wir die Zugehörigkeit der jeweiligen Zielfunktionen zu dem Modell.
Zur Vorwärtsrechnung gehören entsprechend Die Objective Function der Vorwärtsrechnung sowie die
Nebenbedingungen für die frühesten Anfangsseiten beziehungsweise die Nebenbedingungen der frühesten Endzeiten.
Zu dem Modell der Rückwärtsrechnung gehören die Objective Function der Rückwärtsrechnung
sowie die Nebenbedingungen der spätesten Anfangszeiten und der Nebenbedingungen der spätesten Endzeiten.
Über den Befehl variabel.fx können wir einer Variable einen festen Wert zuordnen.
In diesem Fall der Variable der frühesten Anfangszeit von unserem Knoten
1. Gleich 5 Zeiteinheiten. Mit dem Befehl Solf, Modellname,
Minimals, F-Using, LP, rufen wir den Zolver auf.
Wir sagen, dass das Modell NPTV, der Vorwärtsrechnung,
gelöst werden soll, dass unser,
ob unser Zielfunktionswert F minimiert werden soll,
Und dass wir ein LP, also ein lineares Problem vorliegen haben.
Nachdem wir dieses Modell gelöst haben, können wir
die späteste Endzeitpunkt des Vorgangs 9 tixieren.
Auf 23 Zeiteinheiten. Auch hier muss das Modell wieder gelöst
werden. Durch den Befehl Solve. Modell, Rückwärtsrechnung,
Minimierung, des Zielfunktionswertes und der Verwendung des linearen Problems
Anschließend können wir auch in Games die Pufferzeiten berechnen lassen.
Hierzu legen wir einen Parameter an,
den wir Pufferzeiten nennen und diesen Wert wollen wir für jeden Vorgang ausgeben,
die und durch das Stern geben wir an,
dass wir diesen Menge, dieses Set, anschließend erst definieren wollen.
Das tun wir hier über die Pufferzeiten für den Über die Bezeichnung GP
für Gesamtpufferzeit und die Gleichung ergibt sich wieder analog zu den Pufferzeiten,
die wir in der vorherigen Aufgabe kennengelernt haben.
Das Gleiche machen wir auch für die freie Pufferzeit,
die S-Min-Function gibt uns hier den minimalen Wert zurück über die Bedingung AIJ berücksichtigen wir,
dass dies ausschließlich für alle Vorgänger berechnet werden sollen.
Ein Nachfolger. Analog berechnen wir hier auch die Pufferzeit,
die freie Rückwärtspufferzeit. Auch hier gibt uns die S-Min-Funktion,
die S-MAX-Funktion, den maximalen Wert zurück.
Das Gleiche können wir auch für unsere unabhängige Pufferzeit machen
Die Bezeichnung Variable.l gibt hier an, dass wir den Level-Wert,
also den Wert einer Variable zurückgeben wollen.
Über den Befehl Execute Unload können wir eine GDX-Datei erstellen.
Eine GDX-Datei ist eine Dateiformat vom Games,
um ein Datenexport zu erzeugen
Und in diesem Datenexport können wir uns dann unsere Variablenwerte sowie unsere Parameter,
die wir hier berechnet haben, die Pufferzeiten anzeigen lassen.
Wir stellen Ihnen das Gamescript zur Verfügung und möchten
Sie motivieren,
dieses auch anzuwenden
Ich hoffe, das Video konnte Ihnen dabei helfen,
die Thematik der Netzplantechnik besser zu verstehen.
Falls Sie noch Fragen oder Anmerkungen zu diesem Video haben,
nutzen Sie gerne die Kommentarfunktion oder senden wir
eine E-Mail