1樓:
我站Brzozowski's algorithm, 這是最簡單的.
整體演算法思路一句話就可以總結,
先反著做一遍NFA轉DFA, 然後再正著做一遍NFA轉DFA.
為什麼這樣可以生成最小DFA? 建議先看看這篇,
無名氏:一句話總結NFA轉DFA演算法
先反轉NFA, 再轉DFA相當於消去了重複字尾(suffix).
NFA轉DFA相當於消去了重複字首(prefix).
為什麼消除重複的字尾和字首就得到了最小化DFA?
看過"一句話總結NFA轉DFA演算法"就應該明白能不能摺疊狀態要看Duck Test, 即前乙個狀態和transition是否重複, 而Automata只有唯二兩個點可以做Duck Test的初始狀態, 開始態和結束態.
複雜度如何?
NFA轉DFA是超多項式時間的, 這很慢(相比於Hopcroft's algorithm)! 但無論如何你都要寫NFA, 然後再轉DFA的. 那做一遍和做兩遍有什麼本質差別呢?
演算法複雜度只看最高項.
我現在才有點理解怎麼用自動機做索引壓縮了... 本質上是實現了帶捕獲組的Minimal DFA, 有點意思啊~
2樓:cyzw cyzw
作者J Hopcroft
出版源《Theory of Machines & Computations》, 1971:189–196
AN n log n ALGORITHM FOR MINIMIZING STATES IN A FINITE AUTOMATON
自殺如何對別人的傷害最小化
yesorno 我復讀過,很理解你的想法,復讀期間從沒想到自殺,就是很壓抑很難受,我媽陪讀的,有時候吃著飯都眼圈泛起眼淚,感覺很對不起父母,對不起我的生命。還好復讀期間有乙個人經常鼓勵我,我都不知道怎麼復讀過來的,雖然最後大學不是我很理想的學校,但是我老爸特別希望的乙個師範大學。算是隨了他的願。不用...
怎麼樣死可以把痛苦最小化?
一道彩虹 首先肯定要說常見的,燒炭是比較好的方式,經濟痛苦小比較容易實現,一般在家裡或者車裡。弊端,可能產生痛苦,加上心裡壓力大最後不成功建議可以配合少劑量安眠藥,還有容易被發現並且搶救回來,畢竟打算死了,誰也不想再活過來。第二種,絞刑,可以根據身高選擇繩子套在脖子上,從樓上跳下去,巨大的下墜裡會瞬...
如何風險最小化的成功向領導把專案資源拿下來?
1 你小看了董事長對公司情況的了解 2 你高看了這個不是同道中人的二把手 3 這件事不該這麼早透實底,特別是你還不確定能成功之前4 事已至此就別帶二把手玩了,如果你的想法真能盈利,那就去找董事長,爭取以公司專案來開展,雖然回報會少很多,但也算交了個學費,為下次機會打基礎吧 5 如果董事長已經有這件事...