確定性有限自動機

2021-08-20 13:52:56 字數 1822 閱讀 4354

我們用5元組(q

,∑,δ

,q0,f)(

q,∑,

δ,q0

,f

)定義確定性有限自動機

q q

是狀態的有限集

∑' role="presentation" style="position: relative;">∑

∑是字母表

δ δ

是轉移函式,對映關係為q×

∑→q q×∑

→qq0q

0表示開始狀態f⊆

q f⊆q

是accept狀態集

既然有了以上定義,接下來定義乙個dfa

m m

accepts字串

w' role="presentation" style="position: relative;">w

w,其中:w=

w1w2

...w

n,wi∈∑w

=w1w

2...

wn,w

i∈

∑, r

0,r1

,...

,rn r0,

r1,.

..,r

n是q

q狀態集元素的乙個排列:r0

=q0' role="presentation" style="position: relative;">r0=

q0r0

=q0δ

(ri,

wi+1

)=ri

+1,i

=0,.

..,n−1δ

(ri,

wi+1

)=ri

+1,i

=0,.

..,n

−1

rn∈frn

∈f

a a

是乙個包含所有有限自動機

m' role="presentation" style="position: relative;">m

maccepts的字串的集合,即a=a=

,那麼a

a就是m

' role="presentation" style="position: relative;">m

m的語言,記作l(

m)=al(

m)=a

。對此,我們稱

m m

recognizes

a' role="presentation" style="position: relative;">a

a。注意:乙個有限自動機可能會accepts很多字串,但它只能recognizes乙個語言。如果這個有限自動機不接受任何字串,那它仍然recognizes乙個語言,the empty language

∅ ∅

。如果乙個語言可以被某個有限自動機recognizes,那麼這個語言被稱為正則語言regular language。 設

a a

和b' role="presentation" style="position: relative;">b

b都是正則語言

1. union並: a∪

b=a ∪b

=2. concatenation 連線: aº

b=a ºb

=3. star: a∗

= a∗=

以上三種regular operation都是封閉(closed)的。在另幾篇文章中會證明封閉性。

有限自動機

我們在學習有限自動機之前,我們可以先簡單了解一下,有限狀態機 fsm 學習軟考,大家應該對編譯器和直譯器都不陌生,其實編譯器就是用fsm做詞法分析 這些詞是不是很熟悉 那麼什麼是狀態呢?什麼優勢狀態機呢?我們學習的時候,不想學了,就說自己沒有狀態,其實轉態在我們生活中,轉態隨處可見,計算機也是。所謂...

有限狀態自動機

有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...

有限狀態自動機

有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...