[英]Can any finite state automata be translated into a regular expression?
假設我們有如下的fsa:
fsa = {0:{'a': 1, else: 2},1:{'b': 1, else: 2},2:{else: 2}}
這意味着:在狀態0,如果輸入為'a',則進入狀態1,否則進入狀態2;否則,進入狀態2。 在狀態1,如果輸入為'b',則進入狀態1,否則進入狀態2; 在狀態2,對於任何輸入,它都會進入狀態2。
假設狀態0是開始狀態,狀態1是接受狀態,狀態2是失敗狀態。 然后,可以將此fsa轉換為正則表達式“ ab *”。 實際上,有幾種算法可以將fsa轉換為正則表達式,例如Brzozowski代數方法。
我的問題:以上形式中定義的任何fsa都可以翻譯成正則表達式嗎? 有什么限制嗎?
是的,它們在數學上是等效的。 正則表達式和有限自動機的等價性稱為Kleene定理。 “
沒有限制-所有有限狀態自動機都等效於某些正則表達式,並且所有正則表達式都等效於某些有限狀態自動機。
是的,它們是等效的。 從Wikipedia頁面上的常規語言來看,這些都是常規語言的等效定義。
是。 每個有限的自動機都會有一個對應的正則表達式。 克萊因定理證明了這一結果。 通過將有限自動機划分為多個較小的有限自動機的並集,使用數學歸納原理證明了該定理。 證明可以在這里找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.