軟考之有限自動機
1. 根據上面的狀態轉換圖寫出狀態轉換表,什麼!不知道什麼是狀態轉換表?那你來對地方了。狀態轉換表是轉檯轉換圖的另外一種表示形式,如下圖,左側表頭0~9表示的
是狀態,上方表頭a,b,c表示的是條件。其餘部分表示的是後繼狀態
a |
b |
ε |
|
0 |
∅ |
∅ |
1, 7 |
1 |
∅ |
∅ |
2, 4 |
2 |
3 |
∅ |
∅ |
3 |
∅ |
∅ |
6 |
4 |
∅ |
5 |
∅ |
5 |
∅ |
∅ |
6 |
6 |
∅ |
∅ |
1, 7 |
7 |
8 |
∅ |
∅ |
8 |
∅ |
9 |
∅ |
9 |
∅ |
∅ |
∅ |
2. 求出ε-closure(s),ε-closure(s)表示由狀態s經由條件ε可以到達的所有狀態的集合
ε-closure(0)={0,1,2,4,7}
ε-closure(1)={1,2,4}
ε-closure(2)={2}
ε-closure(3)={1,2,3,4,6,7}
ε-closure(4)={4}
ε-closure(5)={1,2,4,5,6,7}
ε-closure(6)={1,2,4,6,7}
ε-closure(7)={7}
ε-closure(8)={8}
ε-closure(9)={9}
3. 轉換,下面就是真正劇情了
首先將初始態的轉換閉包ε-closure(0)設為狀態A,即A={0,1,2,4,7},注意這裡的狀態A是DFA中的,和前面的狀態0,1,2,3,4,5沒有關係
接著寫出狀態A經過上面轉換圖中所有轉換條件得到的狀態,後繼狀態裡面不包括自身,這裡的轉換條件包括a和b,注意,不包括ε,轉換的一個目的就是消除ε。
ε-closure(0) = A
ε-closure(move(A,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B
ε-closure(move(A,b)) = ε-closure(5) = {1,2,4,5,6,7} = C
ε-closure(move(B,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B
ε-closure(move(B,b)) = ε-closure({5,9}) = {1,2,4,5,6,7,9} = D
ε-closure(move(C,a)) = ε-closure()
ε-closure(move(C,b))
ε-closure(move(D,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B
ε-closure(move(D,b)) = ε-closure(5) = {1,2,4,5,6,7} = C
4. 畫出DFA狀態轉換表(每一個狀態只有一個後繼狀態)
a |
b |
|
A |
B |
C |
B |
B |
D |
C |
B |
C |
D |
B |
C |
5. 畫出DFA狀態轉換圖
4.DFA的最小化
(1) 消除多餘狀態
Ⅰ. 什麼是多餘狀態
· 從這個狀態出發沒有通路到達終態
· 從開始狀態出發,任何輸入串也不能到達的那個狀態
Ⅱ. 如何消除多餘狀態
刪除
(2) 等價狀態
Ⅰ. 何為等價狀態,對於兩個狀態s和t
· 一致性條件:狀態s和t必須同時為終態或非終態
· 蔓延性條件:對於所有輸入符號,狀態s和狀態t必須轉化到等價的狀態裡
接下來是關於如何利用上面的兩個條件來判斷是否為等價狀態,來一張複雜的狀態轉換圖,是不是有點暈,哈哈
首先,畫出狀態轉換表
看1和2,1和2都是非終態,滿足條件1,1和2都可以轉換成狀態2,滿足條件2,將兩者合併。
看6和7,6和7都是終態,滿足條件2,6和7都可以轉化成狀態6,滿足條件2,將兩者合併。
以此類推,當然,2和5也是可以合併的,記住最後的結果只有一種,只要滿足合併後的狀態最少就行
轉化
1,2→A
3,4→B
5→C
6,7→D
列出轉化後的轉檯轉換表
再畫出相應的狀態轉換圖就大功告成啦~~
5.有限自動機與正規式之間的轉換
來源:http://blog.csdn.net/cgzhello1/article/details/79619651.有限自動機轉換為正規式
對於 ∑上的NFAM,可以構造一個 ∑上的正規式R,使得L(R)=L(M)。拓廣狀態轉換圖的概念,令每條弧可用一個正規式作標記。為 ∑上的NFA M構造相應的正規式R,分為如下兩步:
(1)在M的狀態轉換圖中加兩個節點,一個x節點,一個y節點。從x節點到NFA M的初始狀態節點引一條弧並用 ε標記,從NFA M的所有終態節點到y節點引一條弧並用 ε標記。形成一個與 M等價的M',M'只有一個初態x和一個終態y。
(2)按下面的方法逐步消去M'中除x和y的所有節點。在消除節點的過程中,用正規式來標記弧,最後節點x和y之間弧上的標記就是所求的正規式。消除節點的規則如圖2-6所示。
圖 2-6 有限自動機到正規式的轉換規則示意圖 |
2.正規式轉換為有限自動機
同樣地,對於 ∑上的每個正規式R,可以構造一個E上的NFA M,使得L(M)=L(R)。通過對正規式R進行分裂並加入新的節點,逐步把圖轉變成每條弧上的標記是E上的一個字元或 ε。轉換規則如圖2-7所示。
圖 2-7 正規式到有限自動機的轉換規則示意圖 |
題目給定一用狀態圖表示的NFA,要求給出其對應的DFA或最簡DFA形式。
題目給定一NFA、DFA或最簡DFA,要求給出其對應的正規式。
題目給定一正規集,要求給出其相應的DFA。
題目給定一用自然語言描述的正規集,要求給出其相應的正規式表示形式
例題:(來源見水印)
[解析] 至少要有一個.或E,所以在BCD中。
然後不含+,所以在CD中。
然後觀察5出去的兩條邊(對應於.後的字元),如果是數字的話,就不能出現E了,所以選C。
具體來說
0是入口,6是出口,初始進入0狀態,必需最終到達6狀態
A 3857,狀態過程:0->1->1->1->1
B 1.2E+5,E+5狀態過程:0->1->5->2->?
C -123.67,狀態過程:0->4->1->1->1->5->6->6
D 0.576E10,狀態過程:0->1->5->6->6->6->?
相關推薦
軟考之有限自動機
1. 根據上面的狀態轉換圖寫出狀態轉換表,什麼!不知道什麼是狀態轉換表?那你來對地方了。狀態轉換表是轉檯轉換圖的另外一種表示形式,如下圖,左側表頭0~9表示的 是狀態,上方表頭a,b,c表示的是條件。其餘部分表示的是後繼狀態 a b
【軟考】編譯原理之有限自動機
什麼是有限自動機? 答:是一種識別裝置的抽象概念,它能準確地識別正規集,他分為兩類:確定的有限自動機和不確定的有限自動機 DFA(確定有限自動機) NFA(不確定有限自動機) S 是一個有限集
軟考之路--從生活著手,看PV怎樣操作
是我 信號 技術 生活 復雜 問題 工具 否則 是否 PV操作。是軟考其中一個非常重要的考點,一聽到這個名詞,頓時趕腳高大上有麽有,在軟考的歷年試題中,也不乏PV操作的身影,老師也對PV操作進行了一次講課,那時年少。聽得稀裏糊塗,也不是非常理解,在小編
軟考之進程,線程,管程比較
-1 舉例 article track spa pre 說明 popu 沒有 在操作系統中。遇到了三兄弟,看起來好像,暈了好長時間,在今天把他大概能弄明確了,故此把這篇文章獻給還在迷茫在他們三兄弟之間的你們。由於他們都有一個程字。所以我們在學習的在剛剛學習的時候難免會把
軟考之網路管理員(包含2004-2018歷年真題詳解+課本教材講義+視訊教程)
軟考-網路管理員2004-2018歷年考試真題以及詳細答案(試題和答案分離的哦),同時含有最新課本教材、複習筆記、網路管理員視訊教程。持續更新後續年份的資料。請點贊!!請點贊!!!絕對全部貨真價實的資料!!! 全網最全,獨此一家,費心整理,希望各位同學順利通過考試!!! 網路管理員歷
軟考之初級程式設計師(包含1990-2018歷年真題詳解+課本教材+模擬試卷+視訊教程)
軟考-初級程式設計師1990-2018歷年考試真題以及詳細答案(試題和答案分離的哦),同時含有課本教材、模擬試卷、程式設計師視訊教程、考試知識點。持續更新後續年份的資料。請點贊!!請點贊!!!絕對全部貨真價實的資料!!!! 全網最全,獨此一家,費心整理,希望各位同學順利通過考試!!!
軟考之軟體設計師(包含05-18年真題詳解、高清教程、學習筆記)
費心整理出來的,希望對軟考的同學有幫助。包含: 1、二、三、四版設計師教程; 2、2005年到2018年曆年軟考設計師真題以及答案,包含上下午的哈; 3、軟體設計師學習筆記; 下載地址百度網盤 https://pan.baidu.com/s/1X6kla3Gx-Up9B-
軟考之計算機組成原理之指令系統
/*學習使人 困餓醜陋貧窮不開心 0-0*/ 指令系統: 我的知識儲備:大概就是一堆指令組成的系統吧。不同的機器指令似乎是不同的。。。。為啥書還能扯3頁。。 看完一遍書:它講了啥,,,,,CISC SISC 流水線,,,,,,,,,,,,,,,,不明白講指令集系統為什
軟考之知識點亂入
XML語法的基礎知識。XML檔案的第一行必須是宣告該檔案是XML檔案以及它所使用的XML規範版本。在檔案的前面不能夠有其他元素或者註釋。所有的XML文件必須有一個根元素。XML文件中的第一個元素就是根元
軟考之路 開始的開始 我們都是孩子
為了軟考,奮力一搏,沒錢、沒人脈、沒背景,在人人自危的競爭中,要靠自己的真實力,這次考試我們積極備考,不打無準備之戰,軟考的目的,不僅僅是為了軟考通過這麼簡單,在軟考的背後還隱藏著一個古老的祕密,那就是為了學習知識,在個人重構,機房合作,牛腩新聞釋出系統等學習中
我的軟考之路(六)——資料結構與演算法(4)之八大排序
排序是程式設計的基礎,在程式中會經常使用,好的排序方法可以幫助你提高程式執行的效率,所以學好排序,打好基礎,對於程式的優化會手到擒來。無論你的技術多麼強,如果沒有基礎也強不到哪去。
【零基礎向】軟考之路(第一章)計算機系統知識(第三節)
寫在前面: 本系列文章用於記錄本人軟考學習歷程,適用於零基礎人群,每天不定期更新,如果讀者哪裡不理解或者發現哪裡理解的有問題,歡迎評論,一起進步學習,祝大家都能順利通過考試~第三節 資料表示 本節主要是考察進位制轉換,也就是計算能力,需要熟記各個進位制之間的
【軟考之軟體過程模型總結】
前言: 軟體過程模型,這個名詞聽起來可能有些陌生,但說軟體開發模型,大家可能都知道了,軟體過程模型也叫做軟體開發模型,它是軟體開發全過程,活動和任務的結構框架。軟體開發模型:常見的有瀑布模型、增量模
[軟考]之樹和二叉樹
對於具有層次的資料,需要用樹形結構來描述,那麼什麼是樹,樹應該如何表示使用呢?下面,就隨著這篇博文,來感受一下樹的魅力吧。 樹的基本組成: 關於樹的基
小仙女講軟考之演算法設計和分析
小仙女課堂開課啦,演算法設計總學不好?多半是沒理解透基本概念,看小仙女牌部落格就好啦。 分治法——分而治之,各個突破 現實匯入: 想想秦始皇是怎麼統一六國的?“遠交近攻,各個擊破”。 對嘍,先集中兵力打一個國家,成功後再攻擊另一個。這便體現了分治的思想。 先打近的,再打
我的軟考之路(一)——開篇
俗話說得好:兵馬未動,糧草先行。對於備戰軟考的我來說,應該是:“考試在即,計劃先行”。 這篇部落格的目的特別簡單,為自己軟考做一次動員,也算是給自己未來2個月內備戰軟考
軟考之路--從生活著手,看PV如何操作
PV操作,是軟考當中一個很重要的考點,一聽到
編址與儲存相關計算(二)——軟考之路
很高心您能繼續關注Lucy軟考之路系列博文——編址與儲存相關計算(二),在上文中,Lucy給大家講解計算機中的單位換算和記憶體工作原理。本篇繼續。 記憶體編址 一個記憶體可能是8位,也可能是64位,容量可能是1M,也可能是1G。那麼記憶體是如何編址的呢?和地
軟考之路(七)---設計模式總結
軟考中設計模式這塊考的很是基礎,考題大部分來自大話與HeardFirst,針對做真題的過程中的經驗教訓,不難,重在細心,總結出來和大家分享。 設計模式分三大類: 建立型模式(物件的
軟考之系統集成項目管理工程師(包含2009-2018歷年真題詳解+第二版考試輔導教程+官方指定最新版教程)
工程 https follow 系統集成 分享圖片 get 項目管理 baidu 指定 軟考之系統集成項目管理工程師(包含2009-2018歷年真題以及答案詳解、系統集成項目管理工程師教程第2版-清華大學出版社-高清PDF,官方指定用書),持續更新後續年份的資料。請點贊!!