Ich habe eine DAG mit N Knoten, d. H. 1, 2, ..., N
, und jeder Knoten hat ein Gewicht (wir können es Zeit nennen) x_1, x_2, ..., x_N
. Ich möchte eine topologische Sortierung durchführen, aber die Schwierigkeit besteht darin, dass ich beim Sortieren eine Zielfunktion habe. Meine Zielfunktion ist die Minimierung der Gesamtzeit zwischen mehreren Knotenpaaren.Topologische Sortierung mit einer Zielfunktion
Zum Beispiel habe ich eine DAG mit 6 Knoten, und ich möchte eine bestimmte topologische Sortierung so dass (1,3) + (2,4)
minimiert wird, wo (A,B)
die Zeit zwischen zwei Knoten A und B. Zum Beispiel zeigt, wenn wir eine Art [1, 6, 3, 2, 5, 4, 7]
, (1,3) = x_6
und (2,4) = x_5
. Basierend auf der DAG, möchte ich eine Sortierung finden, die (1,3) + (2,4)
minimiert.
Ich habe eine Zeit lang dieses Problem nachgedacht. Generieren Sie alle möglichen topologischen Sortierungen (Referenz link) und berechnen Sie die Zielfunktion eins nach dem anderen ist immer eine mögliche Lösung, aber es dauert zu lange, wenn N groß ist. Ich war auch Zweig gebundene Beschneidung vorgeschlagen zu verwenden, wenn alle möglichen Arten zu erzeugen (Ich bin nicht sehr vertraut Zweig gebunden, aber ich denke, das wird nicht dramatisch, die Komplexität reduzieren).
Jeder (optimale oder heuristische) Algorithmus für diese Art von Problem? Es wäre perfekt, wenn der Algorithmus auch auf andere Zielfunktionen angewendet werden könnte, wie zum Beispiel die Minimierung der Gesamtstartzeit für einige Knoten. Jeder Vorschlag wird geschätzt.
PS: Oder ist es alternativ möglich, dieses Problem als ein lineares ganzzahliges Optimierungsproblem zu formulieren?
Ich vermute das Problem ist schwer, weil 2 kleine Variationen davon definitiv sind: (1) Wenn die * Summe * der Entfernungen durch die * maximalen * Distanzen ersetzt wird, dann kann das Problem der Bandbreitenminimierung bei NP-hard auf dieses Problem reduziert werden (von der Eingabegraph G, lösche alle Kanten und füge einen einzelnen Wurzelknoten mit einer Out-Kante zu jedem anderen Knoten hinzu - das bedeutet, dass * alle * Ordnungen der ursprünglichen n Knoten eine gültige topologische Ordnung sind - und für jede Kante (u , v) in G (das du gelöscht hast), füge einen Ausdruck '(u, v)' zu der zu minimierenden Zielfunktion hinzu; ... –
... (2) wenn Sie stattdessen die Summe (nicht das Maximum) der Abstände zwischen den Paaren beibehalten, aber die Zielfunktion leicht verallgemeinern, um jeden Ausdruck (zB '(1,3)' oder '(2, 4) 'in Ihrem Beispiel) mit einem separaten Gewicht multipliziert werden, dann können Sie das NP-harte Problem der quadratischen Zuordnung auf dieses Problem auf die gleiche Weise reduzieren. Es kann sein, dass selbst der spezielle Fall der QAP, bei dem jedes Gewicht 1 ist, immer noch NP-schwer ist - das würde bedeuten, dass dein Problem auch ist - aber ich konnte das nicht mit ein paar Googles bestätigen. –
@ j_random_hacker. Danke für deine Antwort. Ich glaube auch, dass dieses Problem NP-schwer ist. Ich erkannte, dass mein Problem dem Problem des reisenden Verkäufers ähnelt. Mir ist das Problem der quadratischen Zuweisung und das Problem der Minimierung der Bandbreite nicht bekannt. Danke für die Verbindung. Ich habe bereits eine heuristische Methode für dieses Problem entworfen. Ich bin jedoch auf der Suche nach einer kombinatorischen Optimierungsformulierung, bei der Branch-and-Bound angewendet werden kann, um die optimale Lösung für einen Vergleich meiner heuristischen Methode zu erhalten. – MIMIGA