Einer meiner Freunde fragt mich das folgende Planungsproblem auf Baum. Ich finde es sehr sauber und interessant. Gibt es eine Referenz dafür?
Problem: Es gibt einen Baum , jede Kante hat symmetrische Reisekosten von 1 . Für jeden Eckpunkt gibt es eine Aufgabe, die vor ihrem Stichtag erledigt werden muss . Die Aufgabe wird auch als . Jede Aufgabe hat den einheitlichen Wert 1. Die Bearbeitungszeit für jede Aufgabe beträgt 0 , dh der Besuch einer Aufgabe, bevor ihre Frist ihrem Abschluss entspricht. Ohne Verlust der Allgemeinheit bezeichne die Wurzel und nehme an, dass sich bei keine Aufgabe befindet . Es ist ein Fahrzeug , bei zum Zeitpunkt 0 Außerdem gehen wir davon aus, dass für jede Ecke ,steht für die Tiefe von . Dies ist selbstverständlich, der Scheitelpunkt mit einer kürzeren Frist als die Tiefe sollte als Ausreißer betrachtet werden. Das Problem besteht darin, eine Zeitplanung zu finden, die möglichst viele Aufgaben erledigt.
Fortschritt:
- Wenn der Baum auf einen Pfad beschränkt ist, befindet er sich über dynamische Programmierung in .
- Wenn der Baum zu einem Graphen verallgemeinert ist, ist er in -complete.
- Ich habe einen sehr einfachen gierigen Algorithmus, von dem angenommen wird, dass er eine 3-Faktor-Apporoximation aufweist. Ich habe es nicht vollständig bewiesen. Nun, ich bin mehr an den NP-harten Ergebnissen interessiert. :-)
Danke für deinen Rat.
quelle
Antworten:
Ich bin mir nicht sicher, ob dies Ihre Antwort ist (siehe unten), aber ein bisschen zu lang für die Kommentare.
Ich dachte, Ihr Problem wäre etwa: , wobei:( S.| tree; pich= 1 | Σ Tich)
Wenn dies der Fall ist, ist Ihr Problem NP-schwer: Sie können es als eine Verallgemeinerung der Minimierung der Gesamtverzögerung auf einer einzelnen Maschine mit Prioritätsbeschränkungen ansehen . In der Tat besagt dieses Papier, dass es für mehrere lineare Ketten auf einem einzelnen Prozessor NP-schwer ist. Die einfache Transformation besteht darin, die Bäume der Form einer Wurzel und lineare Ketten, die von der Wurzel ausgehen, zu nehmen.
Ich bin jedoch überrascht, weil Sie anscheinend sagen, dass Sie für den Fall einer einzelnen linearen Kette die dynamische Programmierung verwenden würden. Ich verstehe nicht, warum Sie DP benötigen würden, da es mir so scheint, als hätten Sie beim Planen einer einzelnen linearen Kette aufgrund der Prioritätsbeschränkungen keine große Auswahl: nur eine einzige Auswahl. Vielleicht habe ich dein Problem falsch verstanden.
quelle
Damit dies stimmt, müssen wir einige Annahmen treffen. Siehe Kommentare unten
Für den Baumfall gibt es meines Erachtens einen Algorithmus für die rekursive dynamische Programmierung der Polynomzeit, der durch die maximale Deadline-Zeit parametrisiert ist. Die Teilprobleme sind: wenn wir einen Unterbaum durch die Zeit eingeben und verlassen Sie den Unterbaum durch die Zeit t b , was ist die maximale Anzahl von Aufgaben , die wir in dem Unterbaum beenden können? Die Basisfälle an den Blättern sind einfach und wir merken von unten nach oben.tein tb
Wenn wir wirklich durch die maximale Deadline-Zeit parametrisieren würden, wäre der Algorithmus in der Größe des Baums nicht wirklich polynomisch. Die Länge des längsten Pfads, der jeden Knoten in der Struktur besucht, ist jedoch nur in polynomial V | , und wir müssen nie mehr die Fristen nachprüfen.| V|
quelle
Das Problem, eine konstante Annäherung für diesen Fall zu erhalten oder NP-Hard zu beweisen, ist noch offen, und jedes Ergebnis wäre eine gute Veröffentlichung. Einige Sonderfälle wurden behoben. Ich habe, zusammen mit anderen, einige Teilergebnisse, die spezielle Fälle wie Spinnen und Bäume mit konstanter Höhe lösen. Das allgemeine Problem für Bäume ist jedoch ungelöst.
quelle