Ich habe einen ungerichteten ungewichteten Graphen und möchte Knoten aus so auswählen, dass sie in Bezug auf die geodätische Entfernung paarweise so weit wie möglich voneinander entfernt sind . Mit anderen Worten, sie müssen so weit wie möglich im Diagramm verteilt sein.k G.
Lassen ist die Länge eines kürzesten Weg zwischen und in . Definieren Sie nun für eine Menge von Eckpunktenu v G X ≤ V ( G ) d ( X ) = ≤ { u , v } ≤ X d ( u , v ) .
Das Problem SCATTERED SET sei das Problem am Eingang nach einer Menge von Eckpunkten fragt, die maximieren .k X d ( X )
Gibt es einen effizienten Algorithmus zum Lösen von SCATTERED SET?
Antworten:
Ich weiß nicht, ob es einen Polynom-Zeit-Algorithmus gibt (es scheint NP-schwer zu sein), aber hier sind einige plausible algorithmische Ansätze, die Sie in Betracht ziehen könnten, wenn Sie ihn in der Praxis lösen müssen:
Heuristik
Ein gut erforschter Algorithmus ist Furthest Point First (FPF). Bei jeder Iteration wird ein Punkt ausgewählt, der am weitesten von der bisher ausgewählten Punktmenge entfernt ist. Iterate mal. Da es sich um eine gierige Strategie handelt, gibt es keinen Grund zu der Annahme, dass dies eine optimale oder sogar nahezu optimale Antwort liefert, und sie wurde entwickelt, um eine etwas andere Zielfunktion zu optimieren ... aber in einigen Kontexten gibt sie eine vernünftige Annäherung es könnte einen Versuch wert sein.k
FPF stammt aus der Literatur zum graphbasierten Clustering und wurde in folgendem Forschungsbericht vorgestellt:
Teofilo F. Gonzalez. Clustering, um den maximalen Abstand zwischen den Clustern zu minimieren . Theoretical Computer Science, Bd. 38, S. 293-306, 1985.
Sie können versuchen, die Literatur zu graphbasiertem Clustering zu durchsuchen, um festzustellen, ob jemand Ihr spezifisches Problem untersucht hat.
Genaue Algorithmen
Wenn Sie dieses Problem in der Praxis haben und eine genau optimale Lösung benötigen, können Sie versuchen, es mit einem ILP-Solver zu lösen.
Hier ist wie. Führen Sie 0-oder-1-Variablen , wobei angibt, ob der te Scheitelpunkt ausgewählt wurde, und 0-oder-1-Variablen , mit der beabsichtigten Bedeutung, dass nur ist, wenn und . Maximieren Sie nun die Zielfunktion unter den Bedingungen und und . Lösen Sie dieses ILP nun mit einem handelsüblichen ILP-Solver. Da ILP NP-hart ist, gibt es keine Garantie dafür, dass dies effizient ist, aber es könnte bei einigen Probleminstanzen funktionieren.xi xi i yi,j yi,j=1 xi=1 xj=1 ∑i,jd(i,j)yi,j ∑xi≤k xi≥yi,j xj≥yi,j
Ein anderer Ansatz ist die Verwendung von gewichtetem MAX-SAT . Führen Sie insbesondere die booleschen Variablen und ein, wenn der te Scheitelpunkt ausgewählt wurde, sowie die Variablen . Die Formel lautet , wobei wahr sein muss (seine Klauseln haben das Gewicht für einige sehr große ) und jede Klausel gegeben ist Gewicht . Definieren Sie die Formel um wahr zu sein , wenn höchstens des ist wahr sind (siehe hier für Details, wie das zu tun) , und wennx i i y i , j φ ∧ ∧ i , j y i , j φ W W y i , j d ( i , j ) φ k x i y i , j = x i ∧ x j i , jxi xi i yi,j ϕ∧∧i,jyi,j ϕ W W yi,j d(i,j) ϕ k xi yi,j=xi∧xj für alle . Die Lösung für dieses gewichtete MAX-SAT-Problem ist nun die Lösung für das ursprüngliche Problem. Sie können also versuchen, einen gewichteten MAX-SAT-Löser auf das Problem zu werfen. Die gleichen Einschränkungen gelten.i,j
quelle
Nein, das Problem ist NP-vollständig.
Sei eine Instanz von INDEPENDENT SET. Konstrukt durch eine universelle Vertex Zugabe zu . Die entscheidende Beobachtung ist, dass der Abstand zwischen zwei Eckpunkten in genau dann 1 in beträgt, wenn sie in benachbart sind , und ansonsten 2.G ' U G G G ' G(G,k) G′ u G G G′ G
Die optimale Lösung von SCATTERED SET am Eingang ist genau dann wenn einen unabhängigen Satz der Größe .(G′,k) Gk2(k2) G k
quelle