日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

形式语言与自动机 Part.6 图灵机

發布時間:2024/3/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 形式语言与自动机 Part.6 图灵机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

課程名:形式語言與自動機

作者:Lupinus_Linn

許可證:CC-BY-NC-SA 3.0 創作共用-署名-非商業性-相同方式共享

  • 署名(英語:Attribution,BY):您(用戶)可以復制、發行、展覽、表演、放映、廣播或通過信息網絡傳播本作品;您必須按照作者或者許可人指定的方式對作品進行署名。
  • 非商業性使用(英語:Noncommercial,NC):您可以自由復制、散布、展示及演出本作品;您不得為商業目的而使用本作品。
  • 相同方式共享(英語:Sharealike,SA):您可以自由復制、散布、展示及演出本作品;若您改變、轉變或更改本作品,僅在遵守與本作品相同的許可條款下,您才能散布由本作品產生的派生作品。(參見copyleft。)

引用:

  • 本文中部分文字與圖片引用自北京郵電大學計算機學院王柏教授的《形式語言與自動機》課程課件。
  • 緒論中的證明方法部分引自清華大學王生原老師課件。
  • 部分題目插圖引用自北京郵電大學出版社《形式語言與自動機 第二版》教材。

在此一并表示感謝,并不做商業用途。

本筆記所有內容的傳送門

Part.1緒論, Part.2 語言與文法
Part 3.有限自動機
Part.4 正則語言,2DFA,Mealy&Moore機
Part.5 上下文無關語言與下推自動機(PDA)
Part.6 圖靈機

文章目錄

    • Part.6 圖靈機
      • 6.1 基礎
      • 6.2 圖靈機設計實例
        • 6.2.1 L = { a n b n } L=\{a^nb^n\} L={anbn}
        • 6.2.2 L = { 0 n 1 n 2 n } L=\{0^n1^n2^n\} L={0n1n2n}
      • 6.2.3 整數函數計算
        • 6.2.4 真減法: m Θ n = ( m > n ) ? m ? n : 0 m\Theta n=(m>n)?m-n:0 mΘn=(m>n)?m?n:0

Part.6 圖靈機

6.1 基礎

  • 性質:
  • 每個過程都是有窮可描述的。
  • 過程是離散可執行的。
  • 基本模型:
  • 一個讀寫頭配一個右端無限的紙帶。讀寫頭有狀態,這些狀態屬于有限狀態集 Q Q Q.有一個開始狀態 q 0 , q 0 ∈ Q q_0 ,q_0\in Q q0?q0?Q,被接受的狀態集合是 F , F ? Q F,F\sube Q F,F?Q.
  • 紙帶有單元格(cell),單元格上書寫帶符(tape symbol),這些帶符屬于有限帶符號集 Σ \Sigma Σ.有一個特殊帶符空白符 B B B.
  • 讀寫頭每次從紙帶讀取一個符號,這些符號屬于有限輸入符號集 T T T.輸入符號的種類可能比紙帶的符號種類少( T ? Σ T\sube \Sigma T?Σ),最起碼空白符 B B B在紙帶上而不在輸入符號集里( B ∈ Σ ? T B\in \Sigma-T BΣ?T)。
  • 圖靈機可以根據狀態和輸入字符向左向右移動,并且在紙帶上寫字,這全由轉移函數 δ : Q × Σ → Q × Σ × { L , R } \delta:Q\times \Sigma \to Q\times \Sigma \times \{L,R\} δ:Q×ΣQ×Σ×{L,R}決定。其含義是 δ ( 當 前 狀 態 , 讀 入 字 符 ) = ( 下 一 個 狀 態 , 寫 下 的 字 符 , 向 左 向 右 移 動 ) \delta(當前狀態,讀入字符)=(下一個狀態,寫下的字符,向左向右移動) δ()=()
  • 由于圖靈機是上下文有關的,所以其格局為 ω 1 q ω 2 \omega_1q\omega_2 ω1?qω2?,描述圖靈機(Turning Machine, TM)的瞬間工作終態。 ω 1 ω 2 \omega_1\omega_2 ω1?ω2?是從左端到右端空白符號為止的內容。(因為右端無限長)。
    ω 1 q ω 2 \omega_1q\omega_2 ω1?qω2?表示讀寫頭正在掃描 ω 2 \omega_2 ω2?的最左字符。
    ω 2 = ? \omega_2=\epsilon ω2?=?表示讀寫頭正在掃描空白字符。
    當讀寫頭在最左邊還要求向左時,拒絕移動,仍然停留在最左端。
  • 圖靈機是狀態接受的。起初有一個字符串在紙帶上,讀寫頭指向最左單元,其實狀態是 q 0 q_0 q0?,只要能在工作過程中進入某個接受狀態,則立即停機,認為接受。
  • 無法判斷圖靈機 M M M在接受某個串 ω ∈ T ? \omega\in T^* ωT?后是否停機,因為很容易可以寫出死循環。停機問題是不可判定的。被接受的字符串一定會停機,不被接受的就不知道了。

6.2 圖靈機設計實例

6.2.1 L = { a n b n } L=\{a^nb^n\} L={anbn}

  • 思路:一一配對,從最左的a開始,每讀取一個a置為無關字符x,然后到b串里讀取最左一個b,再把b置為,在找最左的a,循環往復。凡是在配對中找不到另一個字符的,說明 a < b a\lt b a<b或者 a > b a\gt b a>b,就立即停機,不接受。

6.2.2 L = { 0 n 1 n 2 n } L=\{0^n1^n2^n\} L={0n1n2n}

  • 同理,消除一個0就把1和2置為無用字符。

6.2.3 整數函數計算

  • 思路:轉化為1進制,即把整數 i ≥ 0 i\ge 0 i0表示成 0 i 0^i 0i i i i個0)。
  • 如果一個函數有 k k k自變量 i 1 , i 2 , … , i k i_1,i_2,\dots,i_k i1?,i2?,,ik?,則開始時把整數挨個放置,并且中間用 1 1 1隔開: 0 i 1 1 0 i 2 1 … 1 0 i k 0^{i_1}10^{i_2}1\dots10^{i_k} 0i1?10i2?110ik?.
  • 如果圖靈機停止(不論狀態是否接受),則帶上的結果 0 m 0^m 0m f ( i 1 , i 2 , … , i k ) = m f(i_1,i_2,\dots,i_k)=m f(i1?,i2?,,ik?)=m的計算結果。
  • 所有常用的整數算數函數都是全遞歸。

6.2.4 真減法: m Θ n = ( m > n ) ? m ? n : 0 m\Theta n=(m>n)?m-n:0 mΘn=(m>n)?m?n:0

  • 思路:用 0 m 1 0 n 0^m10^n 0m10n作為帶子,每讀一個 0 m 0^m 0m最左端的0就置為B,把 0 n 0^n 0n最左端的0置為1(不能置空,因為在11100B中,如果變成了BBBBB,就不知道是否用完了0)。讓再回去找 0 m 0^m 0m的0.如果有在 0 n 0^n 0n找0遇到B,說明 m > n m\gt n m>n,則將所有非B的符號全部換成0,這些0有 0 n ? m 0^{n-m} 0n?m個。

總結

以上是生活随笔為你收集整理的形式语言与自动机 Part.6 图灵机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。