確率的チューリングマシンとBPPクラス
【 確率的チューリングマシンとBPPクラス 】
#コンピュータと数学2
#コンピュータと数学2
今回のセッションでは、「確率的チューリングマシン」と呼ばれるチューリングマシンの拡大の話をします。
「確率的チューリングマシン」の構成の仕方は、前回見た「非決定性チューリングマシン」の構成とよく似ています。
「確率的チューリングマシン」の振る舞いを説明する前に、「非決定性チューリングマシン」の振る舞いについて、少し補足しておこうと思います。
【 前回のセッションの補足 】
前回のセッションで、「非決定性チューリングマシン」の振る舞いを説明したblog記事で、「チューリングマシンの拡大では、新しい計算を定義することに意味がある」というような少し極端な議論を述べました。また、それに対して、一つの入力に対して実行のたびに異なる結果を返すような「計算」に意味はないという当然の意見も紹介しました。
ここで補足したいのは、「非決定性チューリングマシン」は、見かけほど無茶苦茶な計算を定義しているわけではないと言うことです。
次のことに注目してください。
一つには、「非決定性チューリングマシン」は、複数(それは膨大な数になるかもしれないのですが有限です)の並行に動作する「決定性チューリングマシン」でシミレート可能だということです。前回のセッションで見たように、「非決定性チューリングマシン」を、そのツリー構造の中で「決定性チューリングマシン」を表すパスを指定するテープを追加すれば、「決定性チューリングマシン」でシミュレートすることが可能です。
それが非決定論的に振る舞うように見えるのは、それが概念的には、無数の(有限個です)決定論的に振る舞うチューリングマシンの可能な全体を表現しているのに、我々が
見るのは、そのうちの一つのチューリングマシンの出力だけだからです。
【 非決定性チューリングマシンがある入力をaccept あるいは reject する条件 】
注目すべきもう一つのことは、先のことと関係しているのですが、「非決定性チューリングマシン」がある入力を「受理 (accept)」または「拒否 (reject)」する条件です。
大雑把に言えば、チューリングマシンがある入力を「accept」すると言うのは、その入力が表す命題が正しいと認めることで、「reject」すると言うのは、その入力が表す命題を正しくないと認めることです。
(チューリングマシンがある入力を「accept」する条件を completeness といい、「reject」する条件を soundness といいます。)
「非決定性チューリングマシン」 NDTM がある入力xをaccept あるいは rejectする条件は、「決定性チューリングマシン」 DTMのaccept あるいは rejectする条件に基づいて次のように定義されています。
・NDTMを構成するパスの中に、xをacceptするDTMが一つでも存在するなら、NDTMはxをacceptする。
・NDTMを構成するすべてのパスのDTMが、xをrejectするなら、NDTMはxをrejectする。
ここでは、同じ言葉が使われていますが、あるパスで指定される「決定性チューリングマシン」 DTMのacceptあるいはrejectと、「非決定性チューリングマシン」NDTM自体のacceptあるいはrejectとは、違うレベルのものだと言うことに注意してください。
【 非決定性チューリングマシンは、非常に巨大であるということ 】
「非決定性チューリングマシン」の振る舞い全体をイメージするには、まずそれが非常に巨大なシステムであることを意識するのがいいと思います。というか難しいのです。
そのことは、先のrejectの条件が、全部のパスをチェックしなければならないことを考えてみればわかります。サンプルでは、選択可能な遷移表が二つの場合を例示しましたが、これが、2ではなく、2^nだったり、2^(2^n) や2^(2^(2^n)), ... だとすると(これでも有限です)、イメージするのが「手におえないもの」になります。
逆に、acceptの条件は、「一つ見つければいい」ということですが、それに出会うのは、とてもラッキーなケースである可能性はあります。ですので、非決定性チューリングマシンが定義するNPクラスを、答えがYESの場合の検証に使うのは、実践的には大きな意味があります。
今回のセッションでは、このNPクラスの巨大さを実感してもらうために、いつもNP-完全クラスの例で出てくる3-SATや3-colouringだけでなく、「数学的証明」全体が、NP-完全だという話を紹介しようと思います。
【 確率的チューリングマシンとBPPクラス 】
前置きが長くなってしまいました。
「確率的チューリングマシン」で定義される複雑性のクラスをBPPといいます。
「確率的チューリングマシン」について留意すべきことだけを述べます。
「確率的チューリングマシン」の構成は「非決定性チューリングマシン」によく似ています。ただ、accept, rejectの条件が大きく変わっています。その定義には、「確率」が導入されています。
「確率的チューリングマシン」PTM では、あるパス上のDTMが入力x をacceptすることを見つけたとしても、PTM自身が xをacceptするわけではないのです。PTMがxをacceptするためには、PTMのツリー全体を見渡して(それは、非決定性チューリングマシンと同じように巨大なものです)、そのなかでacceptするDTMの比率が、rejectするDTMの比率よりも高いことを言わなければなりません。
これまで見てきたチューリングマシンとそれに対応する複雑性のクラスは、次のようになります。
決定性チューリングマシン : P
非決定性チューリングマシン: NP
確率的チューリングマシン : BPP
確率的チューリングマシン : BPP
「確率的チューリングマシン」では「非決定性チューリングマシン」とくらべても、何か強力で新しい計算の定義が可能になったように見えるかもしれません。
ただし、多くの数学者は、P ≠ NP だが P = BPP だろうと考えています。
−−−−−−−−−−−−−−−−−
セミナー申し込みページ
https://computer-math2.peatix.com/view
ショート・ムービー 「 確率的チューリングマシンとBPPクラス 」を公開しました。
https://youtu.be/ofaBvB2lz-g?list=PLQIrJ0f9gMcMT7vxO1dVD00bhzEVLFsBB
スライド 「 確率的チューリングマシンとBPPクラス 」のpdf
https://drive.google.com/file/d/1wKPfBBPfYuTzdXyt5XEANHjaoZ333wC9/view?usp=sharing
このblogのリンク
https://maruyama097.blogspot.com/2024/09/bpp.html
「計算複雑性理論入門」まとめページ
https://www.marulabo.net/docs/computer-math2/
「計算複雑性理論入門」に向けたショート・ムービー再生リスト
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcMT7vxO1dVD00bhzEVLFsBB
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcMT7vxO1dVD00bhzEVLFsBB
コメント
コメントを投稿