簡體   English   中英

非確定性有限自動機(NFA)校正

[英]Nondeterministic finite automata (NFA) correction

我正在嘗試解決有關NFA的問題。 說明如下:字母{a,b,c}。 •L1是所有最后一個字符與第五個最后一個字符相同的字符串。 例如,字符串aaacbacbca應該被接受,因為倒數第二個字符和最后一個字符都是a。 字符串ccaab應該被拒絕,因為倒數第二個字符是c,最后一個字符是b。 這是我的想法,但我確實是該主題的初學者,並且不確定是否正確: 在此處輸入圖片說明

您目前擁有的自動機僅接受以acbca結尾的字符串。 以下是到達解決方案的步驟:

  • 更改您擁有的自動機,使其可以接受所有具有倒數和倒數第五個符號a字符串
  • 對符號bc
  • 結合3個自動機

您幾乎是正確的,但是您繪制的自動機只接受以acbca結尾的acbca 這將接受您想要的字符串

a,b,c     a      a,b,c   a,b,c   a,b,c    a     a,b,c
,--->[q0]--->[q1]--->[q2]--->[q3]--->[q4]--->{q5}----+>[q16]-----.
|    /|   b      a,b,c   a,b,c   a,b,c    b     a,b,c|   ^ a,b,c |
`---´ +----->[q6]--->[q7]--->[q8]--->[q9]--->{q10}---+   `-------´
      |   c      a,b,c   a,b,c   a,b,c    c     a,b,c|
      `----->[q11]-->[q12]-->[q13]-->[q14]-->{q15}---´

{q5}這樣的狀態正在接受狀態,而像[q0]這樣的狀態則不在接受狀態。 q16的含義是確保兩個相等的字母的字符串相距4個字符,但不以該字符結尾,該字符串陷入非接受狀態。 同樣可能是字母b,c狀態[q4]對於字母a,c狀態[q9]並為字母a,b狀態[q14]但為了繪圖清楚起見,我省略了它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM