これはドイツのITコンテスト( "Bundeswettbewerb Informatik")からのタスクですが、締め切りが過ぎているため、この質問をすることは不正行為ではありません。
頂点加重有向グラフ所与と値が、ノードのサブセットを見つけるその最大化対象 この問題はNP困難ですか?
この場合、2部グラフのVertex Coverで解決できることを示すことで、すべてのノードに親も子もない場合、問題がPであることを証明できますが、NP硬度を証明する削減を見つけることができませんでした。元の問題の。
誰かが私にこれを行う方法のヒントを与えることができますか?
PS:コンテストでは、タスクはこの問題を解決するアルゴリズムを見つけることだけでした。元の(ドイツ語)定義は、このドキュメントのタスク1です。http://www.bundeswettbewerb-informatik.de/fileadmin/templates/bwinf/ aufgaben / bwinf35 / aufgaben352.pdf
5
一般性を失うことなく、ダグ(有向非巡回グラフ)の場合に集中できます。一般的な有向グラフでは、強連結成分に分解します。次に、コンポーネントのすべてのノードを取得するか、ノードを1つも取得しません。メタグラフを(コンポーネントごとに1つの頂点を使って)作成し、メタグラフの問題を解決できます。
—
DW
@DW、あなたはDAGをトポロジー的にソートするつもりだと思いますが、次のステップは正確に何であるかははっきりしません。メタグラフの各頂点について、そのすべての子孫の重みを合計しますか?
—
Eric_
@Eric_、悲しいかな、次のステップは考えていません。これを任意のDAGに対して解決するアルゴリズムが見つかれば、それを使用して任意の有向グラフに対してそれを解決できると私は言っています。多分それは誰かに問題に取り組む方法についてのいくつかのアイデアを与えるでしょう-あるいはそうでないかもしれません。私はそれを自分で解決する方法を知りません、私は恐れています。
—
DW