パスワードを忘れた? アカウント作成
292838 story
数学

3SAT問題を多項式時間で解くアルゴリズムが発表される。P=NP証明に? 19

ストーリー by hylom
世紀のアルゴリズムか、それとも 部門より

あるAnonymous Coward 曰く、

本家/.によると、Vladimir Romanov氏が、3SAT問題を解く多項式時間アルゴリズムなるものをリリースしたそうだ(該当のブログエントリ) 。

3SAT問題はNP完全なので、この主張が正しければ、P=NPであることになる。ソースコードはGitHubにて公開されている 。

NP完全問題と3SAT問題の関連については東京電機大学坂本直志准教授の講義資料などが参考になる。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 本家より。 (スコア:3, 参考になる)

    by greentea (17971) on 2011年01月25日 5時25分 (#1892982) 日記

    あんま英語読めないんだけど、読めた中から一番興味深かったのはこれ。
    http://science.slashdot.org/comments.pl?sid=1959038&cid=34942460 [slashdot.org]

    This is not a P=NP paper. The paper solves a problem of a related data structure in polynomial time (quartic time), then shows that it can be used to solve some cases of 3SAT. The 3 outputs the algorithm can give are "the formula is not satisfiable", "the formula is satisfiable" (and the solution is given), and "failure of classification" -- it couldn't solve the problem. The important question we wait for on the experts on this paper isn't "is it correct" (it probably is) but "how effective is it".

    大雑把な訳(間違ってたらごめんね):これはP=NPを示した論文じゃない。この論文で、多項式時間で、関連したデータ構造(?)の問題を解けて、それがいくつかの3SAT問題の解法として使用できることが示された。このアルゴリズムは次の3つの出力を返すことができる。「その式は充足しえない」、「その式は充足しうる」、「分類に失敗した」(問題を解けなかった)。これでは、問題が解かれたとはいえない。専門家に期待すべきなのは「このアルゴリズムは正しいか?」ではなくむしろ「どれくらいこのアルゴリズムが効果的か?」を評価してくれることだ。(アルゴリズムは多分正しい)

    一応、論文中には、

    The main experimental results presented more than 1000 testing runs for formulas with pa-
    rameters: n > 25, 100 ≤ m ≤ 1000, including n = 100, m = 1000 in a pair. The typical
    computing time values (in minutes) were: τ < 1 for n ≤ 50; τ = 1 ÷ 3 for n = 64; τ = 5 ÷ 8
    for n = 80; τ = 20 ÷ 25 for n = 100.
    (略)
    The first or the second messages terminated each run of the program, the third message (引用者注: 「分類失敗」の出力)
    didn’t occur at all.

    とあるけど、「試した中では全部成功した」ではなく「すべての場合において、成功する」ことを示さないとP=NPの証明にはならない。けれどいっぱい試して全部成功したのだから、きっと有用なアルゴリズムなんだろうね。だったらいいな。
    というお話なのかな。

    --
    1を聞いて0を知れ!
    • Re:本家より。 (スコア:5, おもしろおかしい)

      by Anonymous Coward on 2011年01月25日 10時00分 (#1893016)

      あんま英語読めないんだけど、読めた中から一番おもしろかったのはこの「そもそも3SATって何だよ」という質問に対するコメント。
      http://science.slashdot.org/comments.pl?sid=1959038&cid=34942110 [slashdot.org]

      Here you go: Let's say you want to have sex with Natalie Portman (NP). Up until now, it was generally assumed that meant you had to satisfy three conditions: be rich, handsome, and fascinating. Unfortunately, any one of those would leave out the vast majority of people on this list; satisfying all three (3-SAT) was considered virtually impossible.

      But now, Romanov claims that it is sufficient merely to say the mathematical equivalent of "Please" (P). Naturally, people are skeptical.

      大雑把な訳(間違ってたらごめんね。一部超訳):

      君がナタリー・ポートマン (NP) とヤりたいとしよう。今までは、一般に君は以下の3つの条件を充足しなければならないと考えられていた: 金持ちで、イケメンで、高学歴であること。残念なことに、ここを読んでるみんなの大多数にとっては一つを満たすのも難しい。まして3つのすべてを充足するなんて (3SAT) 事実上不可能だと思われた。

      ところが、ロマノフって奴が現れて、いや単に「お願い」(Plaease, P) って言うだけでも数学的には同じことで、それで十分なんだって言い出した。もちろん、みんなは疑ってる。

      「試した中では全部成功した」ではなく「すべての場合において、成功する」ことを示さないとP=NPの証明にはならない。けれど二次元で試して全部成功したのだから、きっと有用なアルゴリズムなんだろうね。だったらいいな。
      というお話なのかな。

      親コメント
      • Re:本家より。 (スコア:1, 参考になる)

        by Anonymous Coward on 2011年01月25日 17時22分 (#1893271)

        fascinating は高学歴という意味ではないですね。

        あと、

        「お願い」(Plaease, P) って言うだけでも数学的には同じこと

        ではなくて、

        数学的に「お願い」(Plaease, P) にあたることを言えばいい

        というようなことが書いてあります。

        親コメント
        • by Anonymous Coward

          > fascinating は高学歴という意味ではないですね。
          うん、そのへんが超訳。handsome, and fascinatingがイケメンに吸収されてしまったので3つになるように三高の定義から借りてきたの。
          >> 数学的に「お願い」(Plaease, P) にあたることを言えばいい
          > というようなことが書いてあります。
          ことらは御意。

          • by Anonymous Coward

            fascinatingは外見のことではないよ。イケメンには吸収できない。
            すごく面白い人という意味。(お笑いの面白いではなくて)

    • by Anonymous Coward on 2011年01月25日 8時09分 (#1892990)

      3SATのソルバーはnが小さい(と言っても10万くらい)うちは優秀なものがいくらでもあるので、少なくともそれらよりは性能がいいことを示さないと意味がありません。
      一般にオーダーに支配されるのはnが無限に大きくなったときで、nが小さいうちなら一見効率がよく見えるものはありふれています。たとえばほとんどのコンピュータにはたかだかn<2^32やn<2^64のときにはO(1)で乗算を行う演算器が付いていると思いますが、たとえばπを5兆桁求めようと思ったら [srad.jp]素朴に計算しているときっちりO(n^2)に支配されるので、ちゃんとFFTなど(真に)高速なアルゴリズムを採用する必要があります。

      親コメント
      • by Anonymous Coward

        > n<2^32やn<2^64
        big-O表記のnは入力のサイズを表しますから、入力が数字1つならその桁数、つまりn<32とかn<64で表すのが適切です。テープに2^64種類の文字が書けるならどちらもn=1ということになるので同じになるのは当たり前ですね。テープに書ける文字の種類を増やすことで、定数倍ならいくらでもチューリングマシンを速くできるという定理があって、線形加速定理 [dendai.ac.jp]と呼ばれています。プログラマにとって直感的に分かりやすい表現をするなら「64ビットマシンは32ビットマシンより速い」「ソフトウェアでロジックを実現するよりハードウェアのほうが速い」ということです。

  • 月刊P=NP?問題 (スコア:1, 参考になる)

    by Anonymous Coward on 2011年01月24日 22時52分 (#1892897)

    http://www.win.tue.nl/~gwoegi/P-versus-NP.htm [win.tue.nl]
    毎月のようにP=NPであることが証明されたりP≠NPであることが証明されたり忙しいですね。

    • by Anonymous Coward on 2011年01月25日 3時17分 (#1892965)

      逆にどこが間違ってたか毎月種明かしして欲しいですね。
      中にはなんだこんなの世に出すなよってへぼい証明もありそう。

      親コメント
  • P=NP問題なぞ、人類の神こと山口人生様が10年も前に解決しているというのに!

    http://www.int2.info/news1.htm [int2.info]
    #超高出力電波注意

    元大学准教授だったというのが信じられん

  • by Anonymous Coward on 2011年01月25日 0時57分 (#1892944)
    リンク先の資料に 「巡回セールスマン問題はNP完全問題」 ってあるけど、NP困難じゃなかったっけ?
    • by Anonymous Coward
      リンク先に「予算内の経路」ってあるから判定問題にしている。だから完全だね。
      • by s02222 (20350) on 2011年01月25日 11時04分 (#1893039)
        TSPの場合、「予算内に収まる経路があるかないか?」がNP完全問題バージョンで、「最も安い経路を探せ」がNP困難問題バージョン。

        NP完全問題が「あらゆるクラスNPの問題より難しく(すなわち、その問題を速く解くアルゴリズムを応用すれば全てのクラスNPの問題がさくさく解ける)」「YesかNoか?を求める問題」と定義できるから。

        基本的に完全問題バージョンと困難問題バージョンがある問題の場合は、どっちかを速く解けるアルゴリズムが見つかれば逆もまたしかりなので、厳密な議論をしている場合を除くと意識してない事が多く、慌ててしゃべってるときなんかはちょいちょい言い間違えるorz

        ちなみに、逆もまたしかりなのは、「最も安い経路」が求まるなら、「予算内の経路」があるかどうかは自明。 その逆は、コストの最大値を求めて二分探索でもすればよい(線形探索でもかまわない)。まず、全部の道の費用を単純に全部足して架空の「最大コスト」を求める。TSPだと同じ道を2回以上通る経路は解にはならないので、ここで求めた「最大コスト」より費用のかかる解は存在しない(極端な場合を除くと「最大コスト」になる経路も存在しないけど)。そこで、この「最大コストの半分のコストの道はあるかないか?」を判定する。あれば「さらにその半分」・・・とやっていく。酷い話だけど、ここまでやっても、判定に使うのが「TSP判定問題を多項式時間で解くアルゴリズム」なら、最安値を求める問題も「多項式時間で解ける」ことになる。
        親コメント
        • by Anonymous Coward

          NP-hard と呼ばれるのは、TSPで予算内に収まるかどうかだけでも既に NPC なので、最安値はいくらかとか、最安経路を求めるなど様々な実用的なバリエーションに予算内判定を帰着できるからでしょう。

          で、二分探索を簡単に考えていますが、「解ける」をどう捉えるかが問題です。 非決定性の計算は受理計算が存在するかだけなので、単なる非決定性のチューリング機械では多項式時間で最安値を求めることも、与えられた値が最安値かどうかを判定することもできないと思います。 予算内判定を多項式時間で yes, no を判別できれば最安値判定問題が解けます(Δp 2-completeだったはず)。 あと、最安経路は複数存在しますので、予算内判定問題が簡単でも最安経路を求めるのはそれほど自明ではありません(関数のクラスとしてはΔp 2MVかな?)。

typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...