Dies ist eine Aufgabe des Bundeswettbewerb Informatik, aber da die Frist abgelaufen ist, ist es kein Betrug, diese Frage zu stellen.
Finden Sie bei einem , gerichteten Graphen und den Werten eine Teilmenge der Knoten V_ {res} \ subseteq V , die \ sum_ {v \ in V_ {res}} c_v maximiert, vorbehaltlich \ forall ( u, v) \ in E: u \ in V_ {res} \ impliziert v \ in V_ {res} Ist dieses Problem NP-schwer?
Ich konnte beweisen, dass das Problem in P liegt, wenn jeder Knoten entweder keine Eltern oder keine Kinder hat, indem ich zeigte, dass es in diesem Fall durch Vertex Cover auf zweigeteilten Graphen gelöst werden kann, aber ich konnte keine Reduktion finden, die die NP-Härte belegt des ursprünglichen Problems.
Kann mir jemand einen Hinweis geben, wie das geht?
PS: Im Wettbewerb bestand die Aufgabe nur darin, einen Algorithmus zu finden, der dieses Problem löst. Die ursprüngliche (deutsche) Definition ist Aufgabe 1 dieses Dokuments: http://www.bundeswettbewerb-informatik.de/fileadmin/templates/bwinf/ aufgaben / bwinf35 / aufgaben352.pdf
quelle
Antworten:
Das Problem ist in Polynomzeit lösbar, wie in Lemma 1 des Papiers Computational Complexity of Some Maximum Average Weight Problems mit Prioritätsbeschränkungen vorgeschlagen .
Grundsätzlich ist die Idee, ein lineares Programm zu schreiben , auf Variable , wobei , wenn . Die vorzeichenbehaftete Adjazenzmatrix ist völlig unimodular, sodass wir das integrale Optimum berechnen können.xi∈[0,1] xu−xv≤0 (u,v)∈E
quelle