算法-有穷自动机

算法-有穷自动机

 

1.      简介

有穷自动机作为一种识别装置,它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合。

  有穷自动机分为两类:确定的有穷自动机(DFA:DeterministicFiniteAutomata)和不确定的有穷自动机(NFA:NondeterministicFiniteAutomata)。

 

1.1.    确定的有穷自动机(DFA)

一个确定的有穷自动机(DFA)M是一个五元组:M=(K,Σ,f,S,Z)其中:

1.K是一个有穷集,它的每个元素称为一个状态;

2.Σ是一个有穷字母表,它的每个元素称为一个输入字符,所以也称Σ为输入符号字母表;

3.f是转换函数,是在k×Σ→K上的映像,即,如f(ki,a)=kj(ki∈k,kj∈k)就意味着,当前状态为ki,输入字符为a时,将转换到一状态kj,我们把kj称作ki的一个后继状态;

4.S∈K是惟一的一个初态;

5.ZK,是一个终态集,终态也称可接受状态或结束状态。

 

例    DFAM=({S,U,V,Q},{a,b},f,S,{Q})其中f定义为:

  f(S,a)=U   f(V,a)=U

  f(S,b)=V   f(V,b)=Q

  f(U,a)=Q   f(Q,a)=Q

  f(U,b)=V   f(Q,b)=Q

 

  一个DFA可以表示成一个状态图(或称状态转换图)。假定DFA有m个状态,n个输入字符,那么这个状态图含有m个结点,每个结点最多有n个弧射出,整个图含有惟一一个初态结点和若干个终态结点,初态结点冠以“”或标以“—”,终态结点用双圈表示或标以“+”,若f(ki,a)=kj,则从状态结点ki到状态结点kj,画标记为a的弧。

 

posted @ 2018-06-04 16:41  木林森__𣛧  阅读(524)  评论(0编辑  收藏  举报