2017-08-28 75 views
2

我真的需要一些幫助的傢伙,我做喜歡constucting DFA的100個例子,我堅持這一個。任何幫助都感激不盡。我有一些隨機布爾函數,例如: f(a,b,c,d)=(a∨c)∧((a∧b)∨(c↔d)),我應該一個接受所有真正的{3,7,8,11,12,13,14,15二進制字符串)的DFA應該被拒絕。所以基本上我需要一個DFA將這些整數轉換爲二進制形式並接受它們,拒絕剩下的其他整數。我如何做到這一點?我花了好幾個小時來試圖說服各州。在這種情況下,你如何製作過渡表?設計DFA,檢查wheter一個布爾公式是真的還是假

再次感謝你對我的幫助! :)

+0

所以評估公式是固定的,正是一個在這個問題嗎? DFA的輸入是4個布爾值? – Codor

+0

是公式是固定的,並且輸入會完全4個值,其後的內容其他被忽略 – Stenli

回答

1

如果我正確理解的問題,該問題是在這個意義上的輸入是固定尺寸的,這意味着接受的語言也是有限的「比較容易」。我將給出一個建設的草圖,這將導致相對較多的國家,但沒有使用一個統一的想法。

檢查與真值表的公式。有4變量進行評估,這意味着有2^4 = 16可能的輸入。

將這些輸入排列在一個由16路徑構成的決策樹中,該路徑從根(這是DFA的初始狀態)到16樹葉。當且僅當通向它的路徑對應於在真值表中評估爲yes的輸入時,葉是終端狀態。

請注意,有限語言始終可以由DFA識別 - 構造一個NDFA,它接受語言中的每個單詞並將其轉換爲DFA(這可能很複雜,但這樣的自動機保證存在this建設)。

+0

謝謝主席先生。問題是,這是一個考試任務,這意味着你有5-6分鐘的時間,並且我很確定我不會用256個路徑製作決策樹,構建NFA並將其轉換爲DFA ..:D這個想法很好,我只是想知道我怎樣才能做簡單的DFA,它接受二進制的數字3,7,8,11,12,13,14,15,並拒絕剩下的是0,1,2,4,5, 6,9,10。 – Stenli

+0

您是否認爲數字中存在一種接受和拒絕模式,允許使用較長的解決方案?明確地寫下所有的路徑確實有點冗長。但是,我不知何故錯計了可能的投入數量;實際數量較小。 – Codor

+0

@stenil:如果上面的帖子有用,請接受並點贊。尊重您收到的每個回覆,因爲它們需要很多時間和精力。 – Billa

相關問題