110 likes | 256 Views
Priorittsregelverfahren. ZeitplanungsproblemZulssigkeitZeitliche Nebenbedingungen erfllenRessourcen-Nebenbedingungen erfllenOptimalittZulssig undminimal bzgl. Zielfunktion WET bzw. RACHeuristikLiefert i.A. keine optimale Lsung sondern nur gute Lsung bzgl. der ZielfunktionSehr schn
E N D
2. Prioritätsregelverfahren Zeitplanungsproblem
Zulässigkeit
Zeitliche Nebenbedingungen erfüllen
Ressourcen-Nebenbedingungen erfüllen
Optimalität
Zulässig und
minimal bzgl. Zielfunktion WET bzw. RAC
Heuristik
Liefert i.A. keine optimale Lösung sondern nur „gute“ Lösung bzgl. der Zielfunktion
Sehr schnelles Verfahren, aber eventuell werden existierende Lösungen überhaupt nicht gefunden
Besonders für große Probleminstanzen und NP-schwere Probleme (RAC) geeignet
Bei dieser Folie sollte beim Vortrag zum Punkt „Sehr schnelles Verfahren“ erwähnt werden, dass unser Verfahren zum finden einer Lösung mehrmals mit verschiedenen Parametern gestartet wird, da die einzelnen Durchläufe so schnell sind. - OlliBei dieser Folie sollte beim Vortrag zum Punkt „Sehr schnelles Verfahren“ erwähnt werden, dass unser Verfahren zum finden einer Lösung mehrmals mit verschiedenen Parametern gestartet wird, da die einzelnen Durchläufe so schnell sind. - Olli
3. „Klassisches“ Prioritätsregelverfahren Prioritätsregelverfahren (Reparaturmethode 1)
Ressourcenbeschränktes Projekt-Planungs-Problem
Zeitliche Beschränkungen zwischen den Aktivitäten
Vorgeschriebene Projekthöchstdauer
Zielfunktion WET bzw. RAC
Algorithmus
Wähle Aktivität mit höchster Priorität aus den noch nicht eingeplanten
Wähle den optimalen Startzeitpunkt und plane die Aktivität ein
Falls die Aktivität nicht eingeplant werden kann, entferne alle bereits geplanten Aktivitäten, die in Konflikt stehen und verschärfe deren ES und LS Zeiten
4. Reparaturmethode Prioritätsregelverfahren
Keine Ressourcenbeschränkungen
Zeitliche Beschränkungen zwischen den Aktivitäten
Vorgeschriebene Projekthöchstdauer
Zielfunktion WET bzw. RAC
Reparatur (Reparaturmethode 2)
Beseitigen der Ressourcenüberschreitungen
5. Reparaturmethode Folien vor der Präsentation noch entfernt werden - OlliFolien vor der Präsentation noch entfernt werden - Olli
6. Algorithmus Reparaturmethode Schritt 1
Konsistenztests
Falls Sn+1 > d? ist, gibt es keinen zulässigen Schedule
Berechne einen zeitzulässigen Schedule S
Setze Zähler: u = 0
Schritt 2
Wenn zu jedem Zeitpunkt rk(S,t) = Rk gilt, ist der Schedule zulässig
Erhöhe Zähler: u = u + 1 und breche ab, falls u > Iterationsschranke u?
Berechne den frühesten Startzeitpunkt t aller bereits eingeplanter Aktivitäten, an dem eine Ressourcenüberschreitung stattfindet
Berechne die Aktive Menge A(S,t)
7. Algorithmus Reparaturmethode Schritt 3
Für alle Aktivitäten i ? A(S,t)
Berechne alle Startzeitpunkte ti, an die Aktivität i nach links oder rechts
verschoben werden kann:
ti ? [ESi,t-pi] und (ti+pi ? ST(S)) oder ti ? [t,LSi] und (ti ? CT(S))
Falls S‘=(0,S1,...,Si-1,ti,Si+1,...,Sn+1) zeitzulässig ist und
ressourcenzulässig für [ti,ti+pi[, dann verschiebe Aktivität i
von Si nach ti (S = S‘) und gehe zu Schritt 2 Die Bezeichner werde ich noch als Formeln setzen. - OlliDie Bezeichner werde ich noch als Formeln setzen. - Olli
8. Algorithmus Reparaturmethode Schritt 4
Für alle Aktivitäten i ? A(S,t)
S‘ = S
Falls es ein t‘ = min{r ? ]t,LSi] | r ? CT(S)} gibt
Falls Recursiveforward(i, t‘) dann S = S‘ und gehe zu Schritt 2
Falls es ein t‘‘ = max{r ? [ESi, t[ | r+pi ? ST(S)} gibt
Falls Recursivebackward(i, t‘‘) dann S = S‘ und gehe zu Schritt 2
9. Algorithmus Reparaturmethode Recursiveforward(i,t‘)
Für alle ti ? {t‘} U {r ? ]t‘, LSi] | r ? CT(S‘)}
S‘i = ti
Falls rk(S‘,r) = Rk für alle r ? [ti, ti+pi [ n ST(S‘)
rep = true
Für alle j ? Succ(i) mit S‘i + dij > S‘j
Falls Recursiveforward(j, S‘i + dij) = false
rep = false
Falls rep = true dann return true
return false
10. Reparaturmethode Algorithmus Reparaturmethode Schritt 5
Wie Schritt 4 lediglich Recursiveforward wird geändert
Für alle ti ? {t‘} U {r ? ]t‘, LSi] | r ? CT(S‘)}
S‘i = ti
Falls rk(S‘,r) = Rk für alle r ? [max(ti,Si+pi), ti+pi [ n ST(S‘)
rep = true
Für alle j ? Succ(i) mit S‘i + dij > S‘j
Falls Recursiveforward(j, S‘i + dij) = false
rep = false
Falls rep = true dann return true
return false
Schritt 6
Die Ressourcenverletzungen konnten nicht repariert werden, kein zulässiger Schedule gefunden
11. Schnittstellen zu anderen Gruppen Input
Datenformat zum Speichern eines Netzwerks
Knoten, Pfeile
Vorgangsdauer
Ressourceninanspruchnahme
Datenformat für Schedule
Distanzmatrix (ES, LS)
Abhängigkeitsgraph (Predecessor-Set, Successor-Set)
Konsistenztest (Preprocessing): update von Netzwerk und Distanzmatrix
Zeitschranke (Begrenzung der Iterationsanzahl)
Output
Schedule
Verwendete Methode und Prioritätsregeln
Leistungsparameter (Iterationen, benötigte Zeit) Die Pfeilbewertungen, also höchst und Mindestabstände sind in der Distanzmatrix enthalten - OlliDie Pfeilbewertungen, also höchst und Mindestabstände sind in der Distanzmatrix enthalten - Olli
12. weiteres Vorgehen Abstimmung mit Integrationsgruppe
Schnittstellen und Datenformate
Prioritätsregeln und Iterationen
Welche Informationen darüber kann die Benutzeroberfläche darstellen?
Steuerung durch die Benutzeroberfläche möglich?
Implementierung
Testen
Welche Prioritätsregeln bzw. Kombinationen davon sind sinnvoll?
Führt zufällige Prioritätenwahl zu Verbesserungen?
Wie viele Iterationen zu einem gegebenen Problem sind sinnvoll? Ein erster Entwurf für eine etwas aufgewertete letzte Folie - OlliEin erster Entwurf für eine etwas aufgewertete letzte Folie - Olli