2017-02-13 64 views
0

請幫幫我做出的以下條件的DFA:如何製作以下條件的DFA?

L = {瓦特:N 一個(w)的MOD 3>Ñ b(w)的模3},

其中n 一個(W)表示的a出現在w和數量n b(W)表示W的b出現的次數。

+0

讓我們開始吧。每個DFA都有一個初始狀態。你會說從初始狀態到其他狀態的轉換,以及這些轉換的條件是什麼?如果沒有更多符號,您也可以有一個或多個接受字符串「w」的狀態。 –

回答

0

首先爲n(a)mod3水平設計DFA,其初始狀態設計爲n(b)mod3垂直.....總共需要9個狀態和標記狀態(a,b),其中a是n(a)mod3和b代表n(b)mod3,然後使元組的第一個元素大於第二個元素的狀態作爲最終狀態(在這種情況下會有3個).....希望我的回答能幫助

0

我們需要跟蹤的唯一事情是分別出現a和b mod 3的次數。有三種可能爲每個國防部3和b MOD 3(0,1或2,分別地)的和,因爲這些是獨立的,我們可以在總共九個狀態:

  • Q00:一個模3 = 0,b模3 = 0
  • Q01:一個模3 = 1,b模3 = 0
  • Q02:一個模3 = 2,b模3 = 0
  • Q10:一個模3 = 0, b MOD 3 = 1
  • Q11:一個模3 = 1,b模3 = 1
  • Q12:一個模3 = 2,b模3 = 1
  • Q20:一個模3 = 0,B模3 = 2
  • Q21:一個模3 = 1,B模3 = 2
  • Q22:一個模3 = 2,B模3 = 2

這些將是我們DFA的狀態。的過渡是如下:

  • 從狀態qij,過渡到 '上輸入一個,其中j'= qij(J + 1)MOD 3
  • 從狀態qij,過渡到輸入B qi'j ,其中i'=(i + 1)mod 3

這給我們總共18次過渡。

我們希望接受mod 3> b mod 3;那就是:

  • 狀態qij正在接受當且僅當J>時我

這使我們3個接受狀態。最後,我們的初始狀態發生在我們看到任何一個符號都爲零的情況下;那就是:

  • 初始狀態爲Q00

我們現在已經完全定義爲DFA這種語言。