解説234 帰着・還元(NP問題)

  Рет қаралды 25

Hacker in Tokyo

25 күн бұрын

帰着(還元)は、2つの問題X,Yの困難さを比較し、直接問題Xを解く代わりに、問題Xを問題Yに変換します。/
つまり、問題Yは問題Xより難しく、問題Xを問題Yへ変換する方法がわかっており、かつ問題Yの解法がわかっていれば、XをYへ帰着できます。/
こちらの図では、その意味では矢印が逆になっていますが、上から下へ問題を帰着させています。/
たとえば、ハミルトン閉路問題は、巡回セールスマン問題に帰着できます。/
こちらの問題は、すべてNP問題なので、このうちのどれかがPとして解ければ、P=NPになります。/
帰着の関係を、もう少し詳しく見てみましょう。/
帰着するプログラムをPとします。/
プログラムXを問題Aを解くもの、プログラムYを問題Bを解くものとします。/
この場合、問題Xを解かずとも、Xを問題Yに変換する、つまり、入力をxからP(X)に変換する、/
また、問題Bの解法がわかっていれば、AはBへ帰着させることができます。/
図の上半分は少し間違っていますが、問題Aは問題Bの特殊なケースになります。/
正確には、図の下半分になります。/
どちらも、与えられた解を検証するものですが、AからBへの検証方法と、/
Bの解法がわかれば、AをBに変換(帰着)できます。/
なお、AからBへ変換するプログラムの実行時間は十分短い、となっていることが多いです。/

Пікірлер