計算の2つのモデルが同等であることを示す方法は?


21

計算の2つのモデルが同等であることを証明する方法について説明を求めています。同等性の証明が省略されていることを除いて、私は主題に関する本を読んでいます。計算の2つのモデルが同等であることの意味についての基本的な考えがあります(オートマトンビュー:同じ言語を受け入れる場合)。同等性について他に考える方法はありますか?チューリングマシンモデルがラムダ計算と同等であることを証明する方法を理解できれば、それで十分です。


間違った本を選んだと思います。
ラファエル

@Raphaelこのテーマに関する良い本は何ですか?
-saadtaame

「オートマトンに関するすべての本」と言いたいのですが、どうやらそれは事実です。残念ながら、手元に適切な英語の本はありません。ごめんなさい。
ラファエル

1
オートマトンに関する本だけでは十分ではありません。
reinierpost

どんな本を使っていますか?
-saadtaame

回答:


20

どちらかのモデルが他方をシミュレートできること、つまりモデルAにマシンが与えられていること、モデルBに同じ関数を計算するマシンがあることを示しています。このシミュレーションは計算可能である必要はありません(通常は計算可能です)。

たとえば、2つのスタック(2-PDA)を持つプッシュダウンオートマトンを考えます。別の質問では、両方向のシミュレーションの概要を説明します。これを正式に行った場合は、一般的なチューリングマシン(タプル)を使用して、対応する2-PDAが何であるかを明示的に構築し、その逆も同様です。


正式には、このようなシミュレーションは次のようになります。させて

M=(Q,ΣI,ΣO,δ,q0,QF)

チューリングマシン(テープ1本付き)である。次に、

AM=(Q{q1,q2},ΣI,ΣO,δ,q1,QF)

ΣO=ΣO.{$}δによって与えられます

(q1,a,hl,hr)δ(q1,ahl,hr)すべてについてΣ Iおよび H RHのLΣ OaΣIhr,hlΣO
(q1,ε,hl,hr)δ(q2,hl,hr)すべてに対するhr,hlΣO
(q2,ε,hl,hr)δ(q2,ε,hlhr)すべてに対するhr,hlΣOhl$
(q2,ε,$,hr)δ(q0,$,hr)のためのすべてのhrΣO
(q,ε,hl,hr)δ(q,ε,hla)(q,hr)δ(q,a,L)すべてについてqQhlΣO
(q,ε,$,hr)δ(q,$,a)(q,hr)δ(q,a,L)すべてについてqQ
(q,ε,hl,hr)δ(q,ahl,ε)(q,hr)δ(q,a,R)すべてについてqQ,hlΣO
(q,ε,hl,$)δ(q,hl,$)すべてについてqQおよびhlΣO、及び
(q,ε,hl,hr)δ(q,hl,a)(q,hr)δ(q,a,N)すべてについてqQ,hlΣO

同等の2-PDAです。ここでは、チューリングマシンが使用することを前提としていΣOブランクのシンボルとして、両方のスタックは、マーカーで始まる$ΣO(削除されることはありません)と(q,a,hl,hr)δ(q,l1li,r1rj)ことを意味しAM入力消費a、から状態を切り替えますqからqようにスタックを更新します:

スタック更新
[ ソース ]

これは、ことを示すために残っているAM上で最終状態に入るxΣI場合と場合にのみ、Mそうします。これは、構築によって非常に明確です。正式には、M受け入れ実行をAM受け入れ実行に変換する必要があり、その逆も同様です。


@frabalaあなたは正しかった、私は初期状態を間違った方向に持っていた。今すぐ修正、ありがとう!
ラファエル

4

開始時に、通信とモバイルシステム:パイ微積分:ロビン・ミルナーによって、オートマトンとどのように彼らは区別できないことをお互いにそうシミュレートすることができます上の紹介があり双模倣は。(ウィキペディアのBisimulationを参照)

私はよく覚えていないので、この章を読み直す必要がありますが、シミュレーションとバイシミュレーションに問題があり、計算の等価性に十分ではありませんでした。

したがって、Robin Milnerは彼のPi-Calculusを紹介し、本の残りの部分で公開します。

最終的に、彼の最後の本『コミュニケーションエージェントの空間と動き』で、ロビン・ミルナーの伝記を見ることができます。オートマトン、ペトリネット、パイ計算、その他の計算方法論をモデル化できます。


2

私の知る限り、これを行う唯一の(または少なくとも最も一般的な)方法は、マシン/モデルが受け入れる言語を比較することです。それがオートマタ理論の要点です。それは問題やアルゴリズムの曖昧な概念を取り、それを具体的な数学的集合(つまり言語)に変えて推論することができます。

これを行う最も簡単な方法は、1つのモデルから任意のマシン/関数を指定して、同じ言語を計算する2番目のモデルからマシンを構築することです。おそらく、式の長さ、機械の状態、文法の規則などに帰納法を使用するでしょう。

LambdaとTMでこれを実行したことはありません(可能性は99%確信しています)が、NFAと正規表現の同等性を証明するこの種のことは間違いなく見ています。最初に、任意の原子を受け入れることができるNFAを示し、次に誘導を使用して、小さいNFAのユニオン/連結/ Kleene-starを受け入れるNFAを作成します。

次に、反対の操作を行い、NFAのREを見つけます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.