HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          留言簿(5)

          隨筆分類(156)

          隨筆檔案(159)

          文章分類(1)

          相冊

          收藏夾(1)

          聯接技術類文章

          最新隨筆

          搜索

          最新評論

          NFA構造DFA的子集算法

          輸入:一個NFA N

          輸出:一個DFA D

          方法:為D構造一個轉換表Dtran。D的每一個狀態是一組NFA狀態的集合。以下是一些構造需要用到的函數。

          操作

          描述

          ε-closure(s)

          能夠從NFA的狀態s開始只通過ε轉換到達的NFA狀態集合

          ε-closure(T)

          Us?Tε-closure(s)

          move(T,a)

          能夠從T中某個狀態S出發通過標號為a的轉換到達的NFA狀態的集合

          Ø 構造D的狀態集合DStates和D的轉換函數Dtran

          一開始,ε-closure(s)是DStates中的唯一狀態,且沒有被標記;

          while (DStates中存在未被標識的狀態T) {

          標識T;

          for(每個輸入符號a) {

          U = ε-closure(move(T,a));

          if(U不再DStats中) 將U加入DStates,且沒有標識;

          Dtran[T,a] = U;

          }

          }

          Ø 計算ε-closure(T)的算法

          將T的所有狀態壓入堆棧中;

          ε-closure(T)的內容初始化為T;

          while (堆棧非空) {

          將棧頂元素t彈出;

          for(每個滿足如下條件的u:從t出發有一個標號為ε的轉換到達狀態u)

          if(u不再ε-closure(T)中){

          將u加入到ε-closure(T)中;

          將u壓入棧中;

          }

          }

          Ø 附模擬一個NFA

          S = ε-closure(s0);

          c = nextChar();

          while(c != eof) {

          S = ε-closure(move(S,c));

          c = nextChar();

          }

          if(S ∩ F != ø) return true;

          else return false;




          </script>

          posted on 2010-03-21 16:17 helloworld2008 閱讀(1070) 評論(1)  編輯  收藏 所屬分類: 數據結構和算法編譯原理

          評論

          # re: (#BYYL-3-99) NFA構造DFA的子集算法 2012-05-17 15:28 腦血栓治療
          很好的東西,值得學習。
            回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 舟曲县| 修水县| 古浪县| 乡城县| 兴海县| 乌什县| 达州市| 平山县| 鸡东县| 昌乐县| 资源县| 台东市| 黄大仙区| 驻马店市| 榆林市| 三原县| 白河县| 凌云县| 大余县| 柳河县| 达孜县| 尼玛县| 凭祥市| 即墨市| 正定县| 德江县| 祁门县| 班玛县| 洪洞县| 年辖:市辖区| 陆良县| 屏南县| 尼木县| 搜索| 孝昌县| 祥云县| 交口县| 四平市| 无锡市| 东阿县| 岳阳县|