- ベストアンサー
多項式時間変換についての質問
- 多項式時間還元について質問させて下さい。問題Aが問題Bに多項式時間還元できるかの証明として、問題Aの問題例を多項式時間で問題Bの問題例に変換できるかどうかや、両者の解が一致すること、そしてどのような意味があるかについて調べています。
- AがnoならBもnoであり、BがnoならAもnoであることを証明し、多項式還元可能だとされる場合、Bが解けない場合はAも解けないことが言えません。そのため、問題の難しさを比較する際には、同程度の難しさを示すことはできません。
- 証明(2)で矛盾を確かめている理由は理解できますが、証明(3)の目的がわかりません。証明(3)では、問題Bが解ける場合、自動的に問題Aも解けることを確かめるために行われます。つまり、問題Bの解決方法が問題Aの解決方法となるための条件を確認しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あ, すみません, 間違えました. この内容は「多項式時間変換」に限定したものです. 「多項式時間還元」で一般的に成り立つものではありません. 既に書いたように, 「A から B に多項式時間還元できる」というのは「B を解くオラクルがあれば A を多項式時間で解くことができる」ということです. B を解くオラクルを使うためには, 与えられた A の問題例から B の問題例を (多項式時間で) 作る必要がありますが, B の問題例を「1個だけ」作るとは限りませんし, 与えられた A の問題例の答え (yes/no) が作られた B の問題例の答え (yes/no) と一致する必要もありません. 極端にいえば, 問題 A とその補問題 A' (A の yes/no を反転した問題) があれば, 「A から A' に多項式時間還元できる」ことになります. つまり, A の問題例 x が与えられたときに, A' を解くオラクルに x を与えます. すると yes/no が得られるわけですが, これは A の問題例としての yes/no とはちょうど正反対です. つまり, 「A' を解くオラクルに x を与えて得られる答え」の yes/no を反転すればよく, これは「A' を解くオラクルを用いた A の多項式時間アルゴリズム」です. まあ, 普通「A が B に還元できる」ということを示すときには「A から B への変換」を作る (つまり「A から B に変換できる」から「還元可能」ということを示す) んですけど, 一般論として「常に変換が作れる」とは限りません. ちなみに「多項式時間還元」と「多項式時間変換」を同じ意味で使うときには, どちらも「多項式時間還元」の意味で使うんじゃないかなぁ.
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
う~ん, 日本語下手だな~>自分 #2 の最初の部分は, 「この質問で挙げられている内容が多項式時間変換のものである」という意味です. 意味不明な日本語になっていますが, そんな感じで理解してください.
- Tacosan
- ベストアンサー率23% (3656/15482)
とりあえず明らかにしておきたいことがあります: 1.「還元」と「変換」が混在しているんですけど, 区別しているんでしょうか? 内容を見る限り区別しないと変な感じはするんですが, 区別していると仮定すると内容がおかしいです. 区別するなら ・A から B に多項式時間還元可能: B を解くオラクルがあれば A は多項式時間で解ける ・A から B に多項式時間変換可能: A の問題例が与えられれば, それと yes/no が一致する B の問題例を多項式時間で生成できる という意味です. 2.yes/no を「解のある/なし」としていますが, これは間違っています. そもそも「与えられた問題例に対して yes/no を答える」という問題ですから, 解はあるに決まっています. その解が yes (問題によって定まる性質を満たす) か no (性質を満たさない) かのどちらかである, ということです. で, 2つ目の問題は「還元」と「変換」を区別していないと意味を持たないんですが, 区別しているなら「普通はなくてもいい」ということになりそう. 「変換」の定義から A の答えが yes iff B の答えが yes なので, (2) と (3) は (yes/no のどちらかに必ず定まるという前提のもとで) 等価です. あと, 1つ目の方は「普通そんな表現はしない」というのが正解かな. 普通は 「A から B に多項式時間還元可能 → B は A と同等以上に難しい」 ですね. 「同等に難しい」ことまでは保証しません. これは「変換」でも同じかな.
補足
紛らわしく還元と変換を混同させて申し訳ないのです。 多項式時間変換と多項式時間還元は同じ意味だと解釈してました。 知りたいのは多項式時間還元の方です。 yes,noの意味は、性質を満たすかどうかで解の有る無しではないのですね。言われてみればそう思います。 それで、アドバイスから察すると例えば問題Bがnoならば,問題Bは'解けて' 性質を満たさないことがわかった。なのでAは多項式時間変換+Bのアルゴリズムを使っているのでAも性質を満たさないことがわかる。 つまり「BがnoならAもno」の時でもBは解いているのでAも解けるということなんですね。 最後に、変換の方は証明(3)は「普段はなくてもいい」の意味などは わかりました。それで、還元の方はやはり証明(3)問題Aがyes(no)ならば問題Bもyes(no)の必要性がわかりません。Bが解ければAも解ける事がいえればいいので(1)(2)だけでいいと思うのですが。
お礼
なんとなくわかりました。つまり多項式時間還元で 解の一致が求められるのは、変換と還元を同じ意味で使っていたからなんですね。別々の意味だと還元はAの補問題A'にも還元できるし、解が一致する必要もない。またBの問題例を複数個作る事も可能なのですね。 色々有難うございました。アドバイス助かりました。