GoogleのTuring Doodleはどのタイプのオートマトンですか?


10

アランチューリングの誕生日を祝って、Google は機械を示すDoodleを公開しました。Doodleはどのようなマシンですか?チューリング完全言語を表現できますか?

古典的なチューリングマシンには明らかな違いがあります:有限のテープ、状態を接続する方法の制約、...

Doodleはまだここにあります Doodleのスクリーンショット

(右上のディスプレイは予想される出力を示しています。)

真ん中のテープは、ブランク、ゼロ、または1を保持できる正方形に分割されています。ヘッドは正方形の1つの上に配置され、読み取りと書き込みに使用されます。

テープの下に緑色の矢印が表示され、クリックしてマシンを起動できます。その隣に2本の円の線があり、そのうちのいくつかは接続されています。それらを「状態」と呼びます。

マシンが起動すると、緑色のボタンの右側にある最初の状態が点灯し、次に右側に次の状態が続きます。各状態には、次のいずれかのコマンドが含まれています。

  • 空白=何もしない(次の状態に移動するだけ)
  • 1 =ヘッドの現在位置でテープに1を書き込む
  • 0 =ヘッドの現在位置でテープにゼロを書き込む
  • 左矢印=頭を左に1ステップ移動
  • 右向き矢印=頭を1つ右に移動
  • 条件:頭の下の値が四角に示されている値と等しい場合、2行目の状態に進みます。そうでない場合は、右の次の状態に移動します
  • 左ジャンプ:(固定された)前の状態に戻りますが、上の行のみ[元々その状態を忘れていました。@ Marzioに感謝します!]

2つのジャンプを「重ね合わせる」方法はありません。マシンが状態を去ると停止し、その右側に次の状態はありません。

(マシンが停止した後、テープの内容はディスプレイの内容と比較されますが、それがマシンの意図された機能の一部であるとは考えていません。)


9
もちろんチューリングマシン!en.wikipedia.org/wiki/Turing_machine移行システムがファンキーなため、おそらく混乱していました。
ハックベネット

制御エンジンには、前の位置に戻ることを許可する「左ジャンプ演算子」もありますが、上の行にのみあります。さらに、2つのジャンプを「重ね合わせる」方法はありません。ジャンプ演算子がなければ、マシンはDFAと同等です(制御エンジンでのアクションは左から右に「実行」されます)が、左ジャンプ演算子が制限されているため、マシンはLBAをシミュレートするには十分に強力ではないようです(しかし、私はしませんでした)考えすぎます)。テープが有限であるため、すべての場合でチューリング完全にすることはできません。
Marzio De Biasi

1
@Marzio De Biasi:このパズルにはジャンプの指示が含まれていますが、それがなければ、マシンは一定時間しか実行できないため、モデルは明らかに非常に弱くなります。(「DFAと同等」とはどういう意味かわかりません。)ジャンプの指示にどのような制限を課すと、答えが変わる可能性があります。「テープは有限です」はおそらく正しくない仮定です。
伊藤剛

GoogleはDoodleを常に使用できるようにしています(ただし、必ずしもインタラクティブなバージョンとは限りません)。
ラファエル

@TsuyoshiIto:つまり、ループのないマシンを指定すると、それをシミュレートするDFAを構築できるということです(ただし、おそらく私は間違っています)。両方向の任意のジャンプを許可し、それが重複する可能性がある場合、2行しかなくても(状態は水平に「平坦化」できる)、マシンはすぐに「チューリング完了」します(無限テープと仮定)。重複する可能性のあるジャンプ(最初の行のみ)と任意の数の行(ただし、下の行のコントロールは上下にしか移動できない)を許可するとどうなるかわかりません。おそらくそれはcs.stackexchange.comのための素晴らしい質問だ
マルツィオ・デ・BIASI

回答:


10

仮定して:

  • 任意の数の行(「ステータス行」)を追加できます
  • 行は任意に長くすることができます
  • テープは無限です

小さなチューリングマシンと一般化された多忙なビーバーの競争」で説明されているマシンをエミュレートするアランチューリングのDoodleマシン構成を構築しようとしましたが、オープン(私の知る限り)のCollat​​zのような問題に依存する停止問題があります。全体像はこちらから入手できますM4

落書き

... ATのDoodleがおそらくチューリング完全ではない場合でも(最初の行でのみ使用可能な左重複ジャンプ演算子が重複しないため)、(非)決定可能性の細い線を歩くのに十分強力です:- D

編集:DOODLEの調整は完全な調整です

(この部分が正しいかどうかわからないので、上記の前の回答はそのままにしておきます:-)

左に1つの重ならないジャンプでも、チューリングDoodleはチューリング完成だと思います。(単純な)アイデアは、テープ自体を使用して現在の状態を格納し、複数のセルを使用してより大きなアルファベットを表すことです。

たとえば、2つの状態の8つのシンボルTMは、次のテープ表現を使用してシミュレートできます。

    HEAD POSITION
    v
...[s][b2 b1 b0] [_][b2 b1 b0] [_][b2 b1 b0] ....
   ^^^^^^^^^^^^^
    "macro cell"

チューリングDoodleでは次のことができます。

  1. s
  2. b2b1b0
  3. 次の記号を書き、頭を左または右の「マクロセル」に移動し、次の状態に保存します。下の図では、これらの操作(セルのシーケンスに対して左/右に移動して書き込むアクションを使用して実行できます)は「MW」と呼ばれます。
  4. 最後に、コントロールを上の行に移動します。左に1回ジャンプすると、コントロールがステップ1に戻ります。

全体像はこちらから入手できます

TdoodleTC

TMDM


やった!あなたは私に勝ちました!テープではなく状態空間で任意のTMを作成する方法を書いていたところです。ただし、1つのジャンプしか使用しないため、アプローチはより優れています。よくやった!待ってください、あなたのマシンはどのように入力を受け取りますか?
Artem Kaznatcheev

@ marzio-de-biasiよくできました!
pepper_chico

1
@ArtemKaznatcheev:テープで入力を受け取ります。明らかに、エミュレートするTMの元のアルファベット記号に従ってエンコードし、状態を表すために空白を残す必要があります。
Marzio De Biasi

ジュニアのマークalen turing。私はこれを読むのを楽しんだ
iDroid

TMの完全性を完全に確信していません。TMが以前に入力テープで定義されていない新しい空白の四角形に書き込むケースを処理したとは思わないでください。これは、TMの完全性に必要です。それ以外の場合は、有限計算のみです。
vzn

5

マシンには「テープ」(紙のアナログ)が付いており、それぞれに「記号」を付けることができるセクション(「正方形」と呼ばれます)に分割されています。いつでも、「マシン内」にあるシンボルS(r)が付いたr番目の正方形が1つだけあります。この正方形を「スキャンされた正方形」と呼ぶ場合があります。スキャンされた正方形上のシンボルは、「スキャンされたシンボル」と呼ばれることがあります。「スキャンされたシンボル」は、マシンがいわば「直接認識」している唯一のシンボルです。ただし、m構成を変更することにより、マシンは以前に「見た」(スキャンした)シンボルの一部を効果的に記憶できます。任意の瞬間のマシンの可能な動作は、m構成qnとスキャンされたシンボルS(r)によって決定されます。このペアqn、S(r)は「構成」と呼ばれます。したがって、構成はマシンの可能な動作を決定します。スキャンされた四角が空白である(つまり、シンボルがない)構成の一部では、マシンはスキャンされた四角に新しいシンボルを書き留めます。他の構成では、スキャンされたシンボルを消去します。機械は、スキャンされている正方形を変更することもできますが、それを右または左に1桁シフトするだけです。これらの操作のいずれかに加えて、m構成を変更できます。{232}と書かれた記号のいくつかは、計算される実数の10進数である一連の数字を形成します。その他は、「記憶を支援する」ための大まかなメモです。消去しがちなのは、これらのラフなメモのみです。シンボルはありません)マシンは、スキャンされた正方形に新しいシンボルを書き留めます。他の構成では、スキャンされたシンボルを消去します。機械は、スキャンされている正方形を変更することもできますが、それを右または左に1桁シフトするだけです。これらの操作のいずれかに加えて、m構成を変更できます。{232}と書かれた記号のいくつかは、計算される実数の10進数である一連の数字を形成します。その他は、「記憶を支援する」ための大まかなメモです。消去しがちなのは、これらのラフなメモのみです。シンボルはありません)マシンは、スキャンされた正方形に新しいシンボルを書き留めます。他の構成では、スキャンされたシンボルを消去します。機械は、スキャンされている正方形を変更することもできますが、それを右または左に1桁シフトするだけです。これらの操作のいずれかに加えて、m構成を変更できます。{232}と書かれた記号のいくつかは、計算される実数の10進数である一連の数字を形成します。その他は、「記憶を支援する」ための大まかなメモです。消去しがちなのは、これらのラフなメモのみです。{232}と書かれた記号のいくつかは、計算される実数の10進数である一連の数字を形成します。その他は、「記憶を支援する」ための大まかなメモです。消去しがちなのは、これらのラフなメモのみです。{232}と書かれた記号のいくつかは、計算される実数の10進数である一連の数字を形成します。その他は、「記憶を支援する」ための大まかなメモです。消去しがちなのは、これらのラフなメモのみです。

これらの演算には、数値の計算に使用されるすべての演算が含まれるというのが私の主張です。マシンの理論が読者によく知られていると、この競合の防御は容易になります。したがって、次のセクションでは、理論の開発を進め、「機械」、「テープ」、「スキャン」などの意味が理解されていると仮定します。

これは、元のチューリング紙「計算可能数について、Entscheidungsproblemへの応用」からの抜粋です。

私がお勧めするこの論文の現代的な優れた仲間は、チャールズペツォルドの「注釈付きチューリング」です。

ご覧のように、GoogleはTuringの説明に非常によく似たマシンに似せようとしました。

編集:GoogleのTMの完全なアルファベットがバニーアイコンをクリックした後にゲームの最後に表示されるものであると仮定し、無限のシーケンスを生成しているという事実から、より多くの行と列を得ました(それで、 )、任意の行左ジャンプ(および左ジャンプのオーバーラップ)があり隣接する行間に条件付きおよび無条件のジャンプがあります。チューリング完全だと思います。


しかし、彼らは実際にチューリングマシンを実装しましたか?これは有限のテープなので、それはすぐに識別できる違いです。それは違いを生む違いですか?彼らは実際に弱いマシンを実装しましたか?
bjelli

2
@bjelliまあ、私はそれを設計していないので、私は彼らのマシンに関するすべてのルールを知っているわけではないので、保証することはできません。ただし、ゲームの最終段階に到達した場合は、バニーアイコンをクリックして、より長いテープに移動できます。ここで分析を確認してください:sbf5.com/~cduan/technical/turing。したがって、マシンが取得できる行数に制約がない可能性があります。これにより、任意のサイズのテープが作成されます。
pepper_chico

plzは

4

パズルでは、ジャンプは両方の行で許可されていますが、重複することはできません。ゲーム終了時の最後のラビットシーケンスDoodleでは、すべての行でジャンプを許可し、ブラケットをネストしてネストできるため、[()]は許可されていますが、([)]は許可されていないようです。

次の仮定を使用します。

  1. 01ε
  2. マシンは任意の固定数のラインを使用できます
  3. 左ジャンプはどの行でも許可されています(1行に1つの左ジャンプを使用します)
  4. ε01

これらの前提があれば、Google Doodleマシンは完全なチューリングです。

01ε01

1+15+1

Google Doodle Machine

ε01ε0101

GDMはTMを次のようにシミュレートします。

  1. 1
  2. j
  3. ε01
  4. ε
  5. 01
  6. 01

お気に入りのユニバーサルTMを選び、上記の手順でそれを実装して、ユニバーサルGDMを取得します。

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