版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)六:DFA最小化 一:要求輸入: DFA。輸出: 最小化的DFA。二:實(shí)驗(yàn)?zāi)康?. 熟練掌握DFA及NFA的定義及有關(guān)概念。2. 理解并掌握確定的有窮自動(dòng)機(jī)的最小化等算法。三:實(shí)驗(yàn)原理1.化簡(jiǎn)DFA關(guān)鍵在于把它的狀態(tài)集分成一些兩兩互不相交的子集,使得任何兩個(gè)不相交的子集間的狀態(tài)都是可區(qū)分的,而同一個(gè)子集中的任何兩個(gè)狀態(tài)都是等價(jià)的,這樣可以以一個(gè)狀態(tài)作為代表而刪去其他等價(jià)的狀態(tài),然后將無(wú)關(guān)狀態(tài)刪去,也就獲得了狀態(tài)數(shù)最小的DFA。2.DFA的化簡(jiǎn)算法:(1) 首先將DFA M的狀態(tài)劃分出終止?fàn)顟B(tài)集K1和非終止?fàn)顟B(tài)集K2。KK1K2 由上述定義知,K1和K2是不等價(jià)的。(2) 對(duì)各狀態(tài)集每次按下
2、面的方法進(jìn)一步劃分,直到不再產(chǎn)生新的劃分。設(shè)第i次劃分已將狀態(tài)集劃分為k組,即:KK1(i)K2(i)Kk(i)對(duì)于狀態(tài)集Kj(i)(j=1,2,k)中的各個(gè)狀態(tài)逐個(gè)檢查,設(shè)有兩個(gè)狀態(tài)Kj、 KjKj(i),且對(duì)于輸入符號(hào)a,有:F(Kj,a)KmF(Kj,a)Kn如果Km和Kn屬于同一個(gè)狀態(tài)集合,則將Kj和Kj放到同一集合中,否則將Kj和Kj分為兩個(gè)集合。(3) 重復(fù)第(2)步,直到每一個(gè)集合不能再劃分為止,此時(shí)每個(gè)狀態(tài)集合中的狀態(tài)均是等價(jià)的。(4) 合并等價(jià)狀態(tài),即在等價(jià)狀態(tài)集中取任意一個(gè)狀態(tài)作為代表,刪去其他一切等價(jià)狀態(tài)。(5) 若有無(wú)關(guān)狀態(tài),則將其刪去。根據(jù)以上方法就將確定有限自動(dòng)機(jī)進(jìn)
3、行了簡(jiǎn)化,而且簡(jiǎn)化后的自動(dòng)機(jī)是原自動(dòng)機(jī)的狀態(tài)最少的自動(dòng)機(jī)。四:數(shù)據(jù)結(jié)構(gòu)與算法struct edge string first;/邊的初始結(jié)點(diǎn)string condition;/邊上的條件string last;/邊的終點(diǎn);string move(string collection,char ch,edge *b)/狀態(tài)集合I的a弧轉(zhuǎn)換int divide(edge *b,string change)/分割子集法進(jìn)行DFA的最小化五:出錯(cuò)分析1:在數(shù)據(jù)結(jié)構(gòu)的定義之中,字符與字符串的差別,本次實(shí)驗(yàn)室字符串而不是字符六:實(shí)驗(yàn)結(jié)果與分析七:源代碼#include#includeusing namesp
4、ace std;#define max 100struct edge string first;/邊的初始結(jié)點(diǎn)string condition;/邊上的條件string last;/邊的終點(diǎn);int N;/NFA的邊數(shù)string partmax;/分割子集string move(string collection,char ch,edge *b)/狀態(tài)集合I的a弧轉(zhuǎn)換int i,j;string s=;for(i=0;icollection.length();i+) for(j=0;jN;j+)if(bj.first0=collectioni&bj.condition0=ch) s=s+bj
5、.last;if(s=)return &;else return s;bool isexist(string s,string d)/判斷子串是否存在在某一集合if(d!=&0=d.find(s)&d.find(s)=d.length()-1)return 1;else return 0;int divide(edge *b,string change)/分割子集法進(jìn)行DFA的最小化int x,m,flag=2,flag0,i,j;string ss,part0max; flag0=flag;for(x=0;xchange.length();x+)for(m=0;mflag0;m+)for(i
6、=0;ipartm.length();i+)ss=move(partm.substr(i,1),changex,b);for(j=0;jflag;j+)if(isexist(ss,partj)part0j=part0j+partm.substr(i,1); if(ss=&)part0flag=part0flag+partm.substr(i,1);break;for(j=0;j=flag;j+)if(part0j!=&part0j!=partm)partflag+=part0j;part0j=;partm=;else part0j=;flag0=flag;return flag;void ma
7、in() int i,j,flag,x; string Condition;/邊上的條件 string ss; edge *b=new edgemax; cout.編譯原理實(shí)驗(yàn)六:DFA最小化.endl; cout請(qǐng)輸入DFA各邊信息:起點(diǎn) 條件(空用&表示) 終點(diǎn) 并以輸入#結(jié)束。endl; for(i=0;ibi.first; if(bi.first=#)break; else cinbi.conditionbi.last; N=i; cout請(qǐng)輸入該DFA的終態(tài)集合:part1; cout請(qǐng)輸入該DFA的非終態(tài)集合:part0; cout請(qǐng)輸入此DFA狀態(tài)中的邊上的條件:Conditio
8、n; flag=divide(b,Condition); coutDFA最小化劃分的子集如下:endl; for(i=0;iflag;i+) if(parti!=)coutpartiendl; cout用狀態(tài)A,B,C等代替子集:; for(i=0;iflag;i+) if(parti!=)coutparti,; coutendl則DFA最小化后的各邊信息如下:endl; char lettersmax; char letter=A; for(i=0;iflag;i+) if(parti!=) lettersi=letter; +letter; for(i=0;iflag;i+) for(j=0;jCondition.length();j+) ss=move(parti,Conditionj,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賈慶國(guó)課件教學(xué)課件
- 2026春招:新媒體運(yùn)營(yíng)面試題及答案
- 2026年基于BIM的地下管線工程管理案例
- 貨運(yùn)安全檢視課件
- 貨運(yùn)司機(jī)安全培訓(xùn)制度課件
- 貨物打包培訓(xùn)課件教學(xué)
- 醫(yī)學(xué)影像診斷與放射防護(hù)技術(shù)
- 醫(yī)學(xué)倫理規(guī)范與案例解析
- 醫(yī)院醫(yī)療廢物焚燒設(shè)備維護(hù)規(guī)范
- 2026年湖南電氣職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)帶答案解析
- 高速防滑防凍安全知識(shí)培訓(xùn)課件
- 監(jiān)控設(shè)備安裝施工方案
- DIP醫(yī)保付費(fèi)培訓(xùn)課件
- 《計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)》課程思政方案
- 腰痛的中醫(yī)治療
- 2025三力測(cè)試考試題庫(kù)及答案
- 2025秋季學(xué)期國(guó)開(kāi)電大法律事務(wù)??啤睹穹▽W(xué)(1)》期末紙質(zhì)考試總題庫(kù)珍藏版
- 第四單元課題3物質(zhì)組成的表示第3課時(shí)物質(zhì)組成的定量認(rèn)識(shí)-九年級(jí)化學(xué)人教版上冊(cè)
- 交警國(guó)省道巡邏管控課件
- DB11∕T 693-2024 施工現(xiàn)場(chǎng)臨建房屋應(yīng)用技術(shù)標(biāo)準(zhǔn)
- T/CSBME 065-2023醫(yī)用敷料材料聚氨酯泡沫卷材
評(píng)論
0/150
提交評(píng)論