Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Turing machine for programming #日曜数学会

1,871 views

Published on

第三回 #日曜数学会 で @tsujimotter が発表したスライドです。

デモアプリURL -> http://tsujimotter.info/works/turing/

Published in: Education

Turing machine for programming #日曜数学会

  1. 1. Turing Machine for Programming 日曜数学者 順平 (@tsujimotter)
  2. 2. みんなで遊べる チューリング・マシン を作ったった! 2 今日お話ししたいこと
  3. 3. Turing Machine http://bit.ly/turing-machine にて公開中 3 (@tsujimoter のツイートでも紹介しています)
  4. 4. 計算 とは? 4
  5. 5. アラン・チューリング 5
  6. 6. 計算 = 6 def チューリング・マシン によってできること
  7. 7. なにそれきになる 7
  8. 8. というわけで 8
  9. 9. チューリング・マシン つくってみた じゃじゃーん 9
  10. 10. チューリング・マシンの構成要素 10 テープ(無限に長い) セル ヘッド 左右に移動できる (「移動しない」も可) ヘッド位置にあるセルを読み書きできる
  11. 11. 11 qacc q2 q0 q1 内部状態: (q_0, 1) -> (1, R, q_1) (q_1, 1) -> (1, R, q_2) (q_2, 1) -> (1, R, q_0) (q_0, BLANK) -> (BLANK, N, q_acc) 遷移ルール: 1 1 1 BLANK q0
  12. 12. 12 (q_0, 1) -> (1, R, q_1) (q_1, 1) -> (1, R, q_2) (q_2, 1) -> (1, R, q_0) (q_0, BLANK) -> (BLANK, N, q_acc) qacc q2 q0 q1 内部状態: 遷移ルール: BLANK 1 1 1 内部状態:q0 テープ:1 q0
  13. 13. 13 (q_0, 1) -> (1, R, q_1) (q_1, 1) -> (1, R, q_2) (q_2, 1) -> (1, R, q_0) (q_0, BLANK) -> (BLANK, N, q_acc) qacc q2 q0 q1 内部状態: 遷移ルール: 1 1 1 内部状態:q0 テープ: BLANK BLANK q0
  14. 14. (q_0, 1) -> (1, R, q_1) (q_1, 1) -> (1, R, q_2) (q_2, 1) -> (1, R, q_0) (q_0, BLANK) -> (BLANK, N, q_acc) qacc q2 q0 q1 内部状態: 遷移ルール: 1 1 1 受理状態 (ACCEPT) BLANK qacc 14
  15. 15. (q_0, 1) -> (1, R, q_1) (q_1, 1) -> (1, R, q_2) (q_2, 1) -> (1, R, q_0) (q_0, BLANK) -> (BLANK, N, q_acc) qacc q2 q0 q1 内部状態: 遷移ルール: 1 1 1 BLANK q0 X どれにも該当しない場合,拒否状態 (REJECT) となって停止 15
  16. 16. 16 遷移ルールは, まさにプログラムそのもの
  17. 17. プログラム言語を作ってみた # 内部状態 q_0, 現在のテープが “0” のとき, # テープに “1” を書き込み, 右方向 (R) へと移動 # 内部状態を q_1 に変更 (q_0, 0) -> (1, R, q_1) チューリング・マシン記述言語 (.tm) 17 q_0, 0, 1, R, q_1
  18. 18. nabeatsu.tm # テープにあらかじめ書き込んだ文字列(入力) # の“1” の本数が # “3 の倍数” のとき,accept (アホ) q_0, 1, 1, R, q_1 q_1, 1, 1, R, q_2 q_2, 1, 1, R, q_0 q_0, BLANK, BLANK, N, q_acc # 上記以外の状態のとき, q_rej へ 18
  19. 19. accept 111111 入力 出力 19 reject 11111 入力 出力nabeatsu.tm
  20. 20. Movie 20
  21. 21. 21 h"p://bit.ly/turing-machine
  22. 22. accept or reject 12x35=123 入力 出力 22 与えられた質問に対し yes/no を応答する機械
  23. 23. 沸き起こる全能感 23
  24. 24. 素数判定とか イケるんじゃね?w 24
  25. 25. Demo 25
  26. 26. 26 h"p://bit.ly/turing-machine
  27. 27. Turing Machine http://bit.ly/turing-machine にて公開中 27 (@tsujimoter のツイートでも紹介しています)

×