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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★

發布時間:2025/6/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、正則表達式轉為非確定性有限自動機 NFA 要點
  • 二、正則表達式轉為非確定性有限自動機 NFA 示例 1
  • 三、正則表達式轉為非確定性有限自動機 NFA 示例 2
  • 四、正則表達式轉為非確定性有限自動機 NFA 示例 3





一、正則表達式轉為非確定性有限自動機 NFA 要點



正則表達式轉為非確定性有限自動機 NFA 流程 :

① 原子自動機 : 首先要構造 原子自動機 , 從 非接受狀態 指向 接受狀態 ;

② 基本拼裝 : 將原子自動機進行 基本的拼裝 , 并運算 , 交運算 ;

③ 復雜拼裝 :基本拼裝的自動機 進行 進一步拼裝 ;


拼裝原則 : 使用 ε\varepsilonε 箭頭 進行拼裝 ;

① 串聯 : 前者的接受狀態 使用 ε\varepsilonε 箭頭 指向 后者的開始狀態 , 前者接受狀態取消 ; 如果有兩個接受狀態 , 那么就需要引出兩個箭頭

② 并聯 : 在二者之前 , 重新添加一個非接受狀態的開始狀態 , 使用兩個 ε\varepsilonε 箭頭 分別指向二者的開始狀態 ;

③ 星運算 : 重新添加一個接受狀態的開始狀態 , 使用 ε\varepsilonε 箭頭從 接受狀態 指向 開始狀態 ; 注意所有的接受狀態 , 都要使用 ε\varepsilonε 箭頭指向開始狀態 ;





二、正則表達式轉為非確定性有限自動機 NFA 示例 1



將正則表達式 (0∪1)?000(0∪1)?\rm (0 \cup 1)^*000 ( 0 \cup 1 )^*(01)?000(01)? 轉為 NFA ;


構造原子自動機 : 注意從 非接受狀態 →\to 接受狀態 ;

(0∪1)\rm (0 \cup 1)(01) 并聯拼裝 : 在二者前面添加 非接受狀態 起始狀態 ;

(0∪1)?\rm (0 \cup 1)^*(01)? 星運算 : 使 接受狀態 →\to 起始狀態 , 并添加一個 接受狀態 起始狀態 , 指向原來的起始狀態 ;

000000000 串聯 : 前者的接受狀態 必須轉為 非接受狀態 , 前者的接受狀態 必須轉為 非接受狀態 , 后者的狀態是不變的 ;

總拼裝 :

串聯注意事項 : (0∪1)?\rm (0 \cup 1)^*(01)? 333 個接受狀態 , 需要引出 333ε\varepsilonε 箭頭 指向 000000000 代表的自動機 的 開始狀態 ;

串聯時的狀態改變 : 使用 ε\varepsilonε 箭頭 連接 前者的接受狀態 →\to 后者的起始狀態;

串聯時 前者的接受狀態 必須轉為 非接受狀態 ,

后者的狀態是不變的 , 如果是接受狀態 , 那么就保持接受狀態不變 , 同理如果是非接受狀態 , 那么保持非接受狀態不變 ;

化簡后結果 :





三、正則表達式轉為非確定性有限自動機 NFA 示例 2



將正則表達式 (((00)?(11))∪01)?\rm ( ( (00) ^* (11) ) \cup 01 )^*(((00)?(11))01)? 轉為 NFA ;


構造原子自動機 : 注意從 非接受狀態 →\to 接受狀態 ;

000000 串聯 : 前者的接受狀態 必須轉為 非接受狀態 , 前者的接受狀態 必須轉為 非接受狀態 , 后者的狀態是不變的 ;

(00)?(00)^*(00)?星運算 : 使 接受狀態 →\to 起始狀態 , 并添加一個 接受狀態 起始狀態 , 指向原來的起始狀態 ;

111111 串聯 : 前者的接受狀態 必須轉為 非接受狀態 , 前者的接受狀態 必須轉為 非接受狀態 , 后者的狀態是不變的 ;

((00)?(11))((00)^* (11))((00)?(11)) 串聯 : 前者的接受狀態 必須轉為 非接受狀態 , 前者的接受狀態 必須轉為 非接受狀態 , 后者的狀態是不變的 ;

((00)?(11))∪01((00)^* (11)) \cup 01((00)?(11))01 并聯 : 在二者前面添加 非接受狀態 起始狀態 ;

(((00)?(11))∪01)?(((00)^* (11)) \cup 01)^*(((00)?(11))01)? 星運算 : 使 接受狀態 →\to 起始狀態 , 并添加一個 接受狀態 起始狀態 , 指向原來的起始狀態 ;

化簡后結果 :





四、正則表達式轉為非確定性有限自動機 NFA 示例 3



將正則表達式 ??\varnothing ^*?? 轉為 NFA ;


??\varnothing ^*?? ={ε}=\{ \varepsilon \}={ε}

構造原子自動機 : 注意從 非接受狀態 →\to 接受狀態 ;

總結

以上是生活随笔為你收集整理的【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★的全部內容,希望文章能夠幫你解決所遇到的問題。

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