
ð ïžã¹ããŒããã·ã³ ããŒãª ã ãŒã¢ãDFAãšNFA DFSM NFSM GNFA STS NPDA DPDA
DFA (決å®æ§æéãªãŒãããã³)ïŒæ±ºå®æ§æéãªãŒãããã³ã¯ãããç¶æ ããå¥ã®ç¶æ ãžã®é·ç§»ãäžæçã«æ±ºãŸãæéãªãŒãããã³ã§ããã€ãŸããåãç¶æ ããåºãè€æ°ã®é·ç§»ãåãèšå·ã§ã©ãã«ä»ããããããšã¯ãããŸããã
NFA (é決å®æ§æéãªãŒãããã³)ïŒé決å®æ§æéãªãŒãããã³ã¯ãããç¶æ ããè€æ°ã®é·ç§»ãåãèšå·ã§ã©ãã«ä»ãããããã®çµæãè€æ°ã®å¯èœãªæ¬¡ã®ç¶æ ãååšããå¯èœæ§ãããæéãªãŒãããã³ã§ãã
DFSM (決å®æ§æéç¶æ ãã·ã³)ïŒããã¯DFAãšå矩èªã§ããã€ãŸããããç¶æ ããå¥ã®ç¶æ ãžã®é·ç§»ãäžæçã«æ±ºãŸãæéç¶æ ãã·ã³ã§ãã
NFSM (é決å®æ§æéç¶æ ãã·ã³)ïŒããã¯NFAãšå矩èªã§ããã€ãŸããããç¶æ ããè€æ°ã®é·ç§»ãåãèšå·ã§ã©ãã«ä»ããããæéç¶æ ãã·ã³ã§ãã
GNFA (äžè¬åé決å®æ§æéãªãŒãããã³)ïŒäžè¬åé決å®æ§æéãªãŒãããã³ã¯ãé·ç§»ãæ£èŠè¡šçŸã§ã©ãã«ä»ããããé決å®æ§æéãªãŒãããã³ã§ãã
STS (ç¶æ é·ç§»ã·ã¹ãã )ïŒç¶æ é·ç§»ã·ã¹ãã ã¯ãã·ã¹ãã ãäžé£ã®ç¶æ ãéããŠé²åããæ¹æ³ãã¢ãã«åããæ°åŠçã¢ãã«ã§ãã
NPDA (é決å®æ§ããã·ã¥ããŠã³ãªãŒãããã³)ïŒé決å®æ§ããã·ã¥ããŠã³ãªãŒãããã³ã¯ãã¹ã¿ãã¯ãšããããŒã¿æ§é ã䜿çšããŠé決å®æ§ã®é·ç§»ãè¡ããªãŒãããã³ã§ãã
DPDA (決å®æ§ããã·ã¥ããŠã³ãªãŒãããã³)ïŒæ±ºå®æ§ããã·ã¥ããŠã³ãªãŒãããã³ã¯ãã¹ã¿ãã¯ãšããããŒã¿æ§é ã䜿çšããŠæ±ºå®æ§ã®é·ç§»ãè¡ããªãŒãããã³ã§ãã
ã¹ããŒããã·ãŒã³ãšããèšèããã
æ£èŠè¡šçŸã¯ãªãŒãããã³ãšå¯æ¥ãªé¢ä¿ãããã®ããã£ãã®ã¯ãã®æ¬ã®åé ã ã£ãã
ããã«ããŒãªããã ãŒã¢NFAãDFAãããã説æãã®ã£ãŠããã
ãããŠãã®æ¬ã«boyer-mooreæ³ãšããã®ãåºãŠããŠããã®ã ãŒã¢ãšã ãŒã¢ãã·ã³ã¯é¢ä¿ãããã®ã ããããšããã£ãŠããã
ãã®ã¢ã«ãŽãªãºã ã§ã¯æ€çŽ¢æååïŒãã¿ãŒã³ïŒã®ååŠçãè¡ããæ€çŽ¢å¯Ÿè±¡ããã¹ãã®ååŠçã¯è¡ããªãããããã£ãŠãããã¹ãã«ã€ããŠäœåºŠãæ€çŽ¢ãè¡ããªãå Žåã«é©ããŠããïŒä»ã®ã¢ã«ãŽãªãºã ã§ã¯ããã¹ãåŽã«ååŠçãæœããç¹°ãè¿ãæ€çŽ¢ãè¡ãããšã§ååŠçã®ã³ã¹ããååŽããïŒãããã¹ãäžã®å šæåããã§ãã¯ããå¿ èŠã¯ãªããååŠçã§åŸãæ å ±ã掻çšããŠã¹ãããããªããåŠçããŠãããäžè¬ã«ãã¿ãŒã³æååãé·ãã»ã©æ€çŽ¢ãé«éåããããæ€çŽ¢æååãšããã¹ãã®éã§ã®äžäžèŽãçºçãããã³ã«ãäžäžèŽã§ãã£ããšããæ å ±ãæ倧éã«å©çšããŠç §åããªããŠãããäœçœ®ãå¯èœãªéãæé€ããããšã§ãå¹çãåäžãããŠããã
ãªããšãé¢ä¿ããªãã£ãïŒã©ãããã
boyer-mooreæ³ã¯åãããããã£ãã®ã«ããŸããã«DFA/NFAã®ããšã調ã¹ããã
ä»»æã®NFAã«ã¯ããããšåãèšèªãå容ãã決å®æ§æéãªãŒãããã³ïŒDFAïŒãååšãããå®çšçãªãªãŒãããã³ãåŸãããã«ããã°ãã°NFAã¯DFAã«å€æãããã
æ£èŠè¡šçŸã®èµ·æºã¯ãèšèªåŠãšãçè«èšç®æ©ç§åŠã®äžåéã§ãããªãŒãããã³çè«ã圢åŒèšèªçè«ã«ã¿ãããšãã§ããã20äžçŽã®èšèªåŠã§ã¯æ°ççã«èšèªãæ±ãæ°çèšèªåŠãçºå±ããã®éçšã®äžéšãšããŠããŸãåŸè ã¯èšç®ã®ã¢ãã«åïŒãªãŒãããã³ïŒã圢åŒèšèªã®åé¡æ¹æ³ãªã©ãæ±ãåŠè¡åéã§ãããæ°åŠè ã®ã¹ãã£ãŒãŽã³ã»ã¯ãªãŒãã¯1950幎代ã«æ£èŠéåãšåŒã°ããç¬èªã®æ°åŠçè¡šèšæ³ãçšãããããã®åéã®ã¢ãã«ãèšè¿°ããã
ãµããªãã¢ã©ã³ã¿ã€ã ã¢ã«ãŽãªãºã ã¯ããã€ã€ãŒã»ã ãŒã¢ïŒBMïŒããŒã¹ã®ã¢ã«ãŽãªãºã ãšããªããŒã¹ã¹ãã£ã³ãªã©ã®é¢é£ããDFAæé©åæè¡ãçšããŠéæãããŠããŸãã
å¹ åºãçš®é¡ã®POSIXæ§æãšæ¡åŒµããµããŒãããGNU grepã¯ããã¡ãŒã¹ããã¹ã®ååŠçã«BMã䜿çšãããã®åŸæé»ã®DFAã䜿çšããŸããè¿äŒŒãããã³ã°ãå®è£ ããŠããWu agrepã¯ãBDM(backward DAWG matching)ã§ååŠçãDFAã«çµåããŠãããNR-grepã®BNDMã¯ãBDMã®æè¡ãShift-Orãããã¬ãã«ã®äžŠåæ§ã§æ¡åŒµãããã®ã§ãã
ååŠçãšããŠBMã䜿ãããåãç¿ãšããŠDFAããããšããããšã®ããã ã(ç¡é¢ä¿ã§ã¯ãªãã£ã)NFAãDFAã«å€æããããšããããšãªã®ã§ãDFAã®åœ¢ãããã€ãèŠãŠã¿ããã

3ã®åæ°ã®2é²æ°ã®ã¿ãåãå ¥ãã決å®è«çæéãªãŒãããã³ã®äŸã ç¶æ S0ã¯éå§ç¶æ ã§ãããåãå ¥ãç¶æ ã§ããããäŸãã°ãæåå "1001" ã¯ãç¶æ å S0, S1, S2, S1, S0 ã«ã€ãªããããããã£ãŠãåãå ¥ããããã
åãããããªåããããããªãããã
æŽçãã
ãªãŒãããã³æ¥çã§åºãŠããçšèªãæŽçããŠã¿ãã
DFA決å®æ§æéãªãŒãããã³ïŒãã£ãŠããããããããªãŒãããã³ãè±: Deterministic Finite AutomatonïŒaka.決å®æ§æéç¶æ æ©æ¢°ïŒãã£ãŠããããããããããããããããè±: Deterministic Finite State MachineïŒaka.DFSM
NFA é決å®æ§æéãªãŒãããã³[1]ïŒã²ãã£ãŠããããããã-ãè±: Nondeterministic Finite AutomatonïŒaka.é決å®æ§æéç¶æ æ©æ¢°ïŒã²ãã£ãŠããããããããããããããããè±: Nondeterministic Finite State MachineïŒaka.NFSM
æ¡åŒµé決å®æ§æéãªãŒãããã³aka.GNFA
ç¶æ é·ç§»ç³»ïŒãããããããããããState Transition SystemïŒaka.STS
ããã«æ¡ä»¶ãæŸã£ãŠãã
ä»»æã®NFAã«ã¯ããšåãèšèªãå容ããDFAãååšãããå®çšçãªãªãŒãããã³ãåŸãããã«ããã°ãã°NFAã¯DFAã«å€æãããã
DFA ã NFAã¯ç°¡åã« GNFA ã«å€æã§ããGNFAã¯æ£èŠè¡šçŸã«ç°¡åã«å€æã§ããã
NFAâDFAâGNFAâæ£èŠè¡šçŸ
æéãªãŒãããã³(FAã»FSM)
ã決å®çæéãªãŒãããã³ (Deterministic Finite Automata (DFA))
ãé決å®çæéãªãŒãããã³ (Nondeterministic Finite Automata (NFA))
ãεåäœãå«ãé決å®çæéãªãŒãããã³ (Nondeterministic Finite Automata, with ε transitions (FND-ε,ε-NFA))
ãã ãŒã¢ãã·ã³
ãããŒãªãã·ã³
ç¡éãªãŒãããã³ãšããã®ã¯è°è«ã«ã¯åºãŠããªãã®ã§ããã¥ãŒãªã³ã°ãã·ã³äžçªæå³ãåºããŠãããã«è¿ããã€æ±ºå®çãé決å®è«çãªåŒ·ãã«ã¯ãããŸãé¢ãããªãããæéãšãããšããã§èšç®åã®åé¡ãåºãŠããã¿ããã ã£ãããããªè°è«ã®äžã§åºãŠããã®ããé決å®æ§ããã·ã¥ããŠã³ã»ãªãŒãããã³ãïŒNPDAïŒã
æéãªãŒãããã³ã§ãç¹ã«é決å®æ§æéãªãŒãããã³(NFA)ã«åºã¥ããŠããå Žåããé決å®æ§ããã·ã¥ããŠã³ã»ãªãŒãããã³ãïŒNPDAïŒãšåŒã°ããã決å®æ§æéãªãŒãããã³(DFA)ã«åºã¥ããŠããå Žåãã決å®æ§ããã·ã¥ããŠã³ã»ãªãŒãããã³ïŒè±èªçïŒãïŒDPDAïŒãšåŒã°ãããé決å®æ§ãšã¯ãå ¥åä¿¡å·ãšç¶æ ãšã¹ã¿ãã¯äžã®æåãäžããããŠã次ã®é·ç§»å ãäžæã«æ±ºå®ãããªãå Žåãããããšãæå³ããã
æéãªãŒãããã³ã«ãµãã€ã®ã¹ã¿ãã¯ãæ¥ç¶ããããšãã§ããããã¯äºå®äžãã¥ãŒãªã³ã°ãã·ã³ãšç䟡ãªéåžžã«åŒ·åãªããã€ã¹ãšãªããç·åœ¢ææãªãŒãããã³ã¯ããã·ã¥ããŠã³ã»ãªãŒãããã³ããã匷åã ãããã¥ãŒãªã³ã°ãã·ã³ããã¯éåã§ãããã
DFAã®å³ã«ãã©ã£ãŠã決å®ããšã¯äœããæ¯ãè¿ã
å³ã¯ãç¶æ å³ãçšãã決å®è«çæéãªãŒãããã³ïŒDFAïŒã瀺ããŠããŸãããã®äŸã®ãªãŒãããã³ã§ã¯ã3ã€ã®ç¶æ ããããS0, S1, S2 ã® 3 ã€ã®ç¶æ ãããïŒäžžå°ïŒããã®ãªãŒãããã³ã¯ã0 ãš 1 ã®æéã·ãŒã±ã³ã¹ãå ¥åãšãããã·ã³ãã«ãèªã¿åããšãDFA ã¯é·ç§»ç¢å°ã«æ²¿ã£ãŠãããç¶æ ããå¥ã®ç¶æ ãžãšæ±ºå®è«çã«ãžã£ã³ãããŸãã
決å®è«çã«ãžã£ã³ãã
ãªãŒãããã³ïŒèªåæ©æ¢°ïŒã«ã¯èªåŸããŠåããŠã¯æ¬²ããããæ©æ¢°ã«æ°ãŸãŸã«åããããšãããããªäºæ ã§å°ãããã§ãå«ã¿ãšããŠDeterministic FiniteãšããããããåºãŠãããå®éã®ããŒããŠã§ã¢ããã®ããã«äœãåºãããã
éåãããã§éžæè¢ãçäžãããããã¯æ¥µå°é»åãã€äœååæ䞊è¡ã«ãªã£ããšããŠãããžãã¯ãã ã£ããéææ§ããå°ãå®å¿ã¯ã§ããã
ã決å®è«çã«ãã¯è¥å¹²é£ãæ°å³ã§èšã£ãŠã¿ãŠã»ããã
æéç¶æ æ©æ¢°ã¯ããã¥ãŒãªã³ã°æ©æ¢°ãªã©ã®ä»ã®èšç®ã¢ãã«ãããèšç®åãäœããèšç®åã®éãã¯ããã¥ãŒãªã³ã°æ©æ¢°ã«ã¯ã§ããŠãFSMã«ã¯ã§ããªãèšç®ã¿ã¹ã¯ãããããšãæå³ãããããã¯ãFSMã®ã¡ã¢ãªãç¶æ ã®æ°ã«ãã£ãŠå¶éãããããã§ãã

ã¹ããŒããã·ã³ãšåŒã°ããå転åŒæ¹ææ©ã«ã¯ã2ã€ã®ç¶æ ããããããã¯ç¶æ ãšããã¯è§£é€ç¶æ ã§ãã[4] ããã®ç¶æ ã«åœ±é¿ãäžããå ¥åã¯ãã³ã€ã³ãæå ¥ããããšïŒã³ã€ã³ïŒãšã¢ãŒã ãæŒãããšïŒããã·ã¥ïŒã®2ã€ã§ãããããã¯ç¶æ ã§ã¯ãã¢ãŒã ãæŒããŠãäœã®å¹æããªããäœåºŠããã·ã¥ãšããå ¥åãäžããããŠãããã¯ç¶æ ã®ãŸãŸã§ãããã³ã€ã³ãå ¥ãããã€ãŸãã³ã€ã³ã®å ¥åãäžãããšãããã¯ç¶æ ããã¢ã³ããã¯ç¶æ ã«ç§»è¡ãããããã¯è§£é€ã®ç¶æ ã§ã¯ãã³ã€ã³ãè¿œå æå ¥ããŠãå¹æã¯ãªããã€ãŸããã³ã€ã³ãè¿œå æå ¥ããŠãç¶æ ã¯å€ãããªãããããã顧客ãã¢ãŒã ãæŒããŠãããã·ã¥å ¥åãäžãããšãç¶æ ã¯ããã¯ãããç¶æ ã«æ»ãã
決å®è«ïŒãã£ãŠããããè±: determinismãçŸ : determinareïŒãšã¯ãããããåºæ¥äºã¯ããã®åºæ¥äºã«å è¡ããåºæ¥äºã®ã¿ã«ãã£ãŠæ±ºå®ããŠããããšããå²åŠçãªç«å Žã
ããã¯ãã©ããã³ã°
ããã¯ãã©ããã³ã°ãšNFAïŒé決å®æ§æéãªãŒãããã³ïŒããã³DFAïŒæ±ºå®æ§æéãªãŒãããã³ïŒãšã®éã«ã¯é¢é£æ§ããããŸããç¹ã«æ£èŠè¡šçŸãšã³ãžã³ã®ã³ã³ããã¹ãã§ãã®é¢é£æ§ãé¡èã§ãã
ããã¯ãã©ããã³ã°:
ããã¯ãã©ããã³ã°ã¯ãå€ãã®æ£èŠè¡šçŸãããã³ã°ãšã³ãžã³ã§äœ¿çšãããã¢ã«ãŽãªãºã ã®äžéšã§ãã
ç¹ã«ã貪欲ãªããããããã£ããã£ã°ã«ãŒããåæ¹/åŸæ¹åç §ãªã©ã®é«åºŠãªæ£èŠè¡šçŸã®æ©èœããµããŒããããšã³ãžã³ã§ã¯ããããã³ã°ã®éçšã§è€æ°ã®éžæè¢ãååšããå Žåãäžã€ã®éžæè¢ãæ¢çŽ¢ããåŸã§å¥ã®éžæè¢ã«æ»ãå¿ èŠããããŸãããããããã¯ãã©ããã³ã°ã§ãã
ããã¯ãã©ããã³ã°ãå€çšããæ£èŠè¡šçŸãšã³ãžã³ã¯ãç¹å®ã®å ¥åããã¿ãŒã³ã§éåžžã«é ããªãããšããããŸãã
NFA:
NFAã¯é決å®æ§ãæã€ãããè€æ°ã®é·ç§»å ãååšããå¯èœæ§ããããŸãããã®é決å®æ§ã¯ãããã¯ãã©ããã³ã°ã®ã¢ã€ãã£ã¢ãšäžèŽããŠããŸããã€ãŸããäžã€ã®éžæè¢ãæ¢çŽ¢ããåŸãå¥ã®éžæè¢ã«æ»ãããšãã§ããŸãã
ãã®ãããå€ãã®ããã¯ãã©ããã³ã°ã䜿çšããæ£èŠè¡šçŸãšã³ãžã³ã¯ãå éšçã«NFAããŒã¹ã®ã¢ãããŒããæ¡çšããŠããŸãã
DFA:
DFAã¯æ±ºå®æ§ãæã¡ãããç¶æ ããã®ç¹å®ã®å ¥åã«å¯ŸããŠäžã€ã®æ確ãªé·ç§»å ããååšããŸããã
ãã®ãããDFAã¯ããã¯ãã©ããã³ã°ãå¿ èŠãšãããå ¥åãäžåºŠã ãã¹ãã£ã³ããŠãããã³ã°ãå€å®ããããšãã§ããŸãã
ããããNFAãDFAã«å€æããéã«ç¶æ ã®æ°ãææ°é¢æ°çã«å¢å ããå¯èœæ§ããããã¡ã¢ãªæ¶è²»ãåé¡ãšãªãããšããããŸãã
çµè«ãšããŠãããã¯ãã©ããã³ã°ãšNFA/DFAã¯æ£èŠè¡šçŸã®ãããã³ã°ã®ã³ã³ããã¹ãã§å¯æ¥ã«é¢é£ããŠããŸããNFAããŒã¹ã®ãšã³ãžã³ã¯ããã¯ãã©ããã³ã°ã䜿çšããå¯èœæ§ãé«ããDFAããŒã¹ã®ãšã³ãžã³ã¯ããã¯ãã©ããã³ã°ãå¿ èŠãšããŸããã
NFAãšDFAã®ãããªé¢ä¿ãæã€äºç©ãæŠå¿µã¯ãå€ãã®åéã«ååšããŸããå ·äœçã«ã¯ãè€æ°ã®å¯èœæ§ãéžæè¢ããäžã€ã®æ±ºå®çãªçµæã圢ã«çµã蟌ããšããããã»ã¹ã瀺ããã®ã§ãã以äžã¯ãã®ãããªé¢ä¿ãæã€äºç©ãæŠå¿µã®äŸã§ãã
éåååŠãšå€å žååŠ:
éåååŠã¯ç¢ºççãªçŸè±¡ãæ±ãã®ã«å¯Ÿããå€å žååŠã¯ãã決å®è«çãªçŸè±¡ãæ±ããŸããéåç³»ããã¯ãã¹ã³ããã¯ãªã¹ã±ãŒã«ã«ãªããšãå€å žçãªæ¯ãèãã«åæããŸãã
確ççã¢ã«ãŽãªãºã ãšæ±ºå®è«çã¢ã«ãŽãªãºã :
確ççã¢ã«ãŽãªãºã ã¯ããã確çã§æ£ããçããè¿ããããŸãã¯èšç®ã®åã¹ãããã§ã©ã³ãã ãªéžæãè¡ããŸããäžæ¹ã決å®è«çã¢ã«ãŽãªãºã ã¯åžžã«åãå ¥åã«å¯ŸããŠåãåºåãè¿ããŸãã
ãã¬ã€ã³ã¹ããŒãã³ã°ãšææ決å®:
ãã¬ã€ã³ã¹ããŒãã³ã°ã§ã¯ãããŸããŸãªã¢ã€ãã£ã¢ã解決çãèªç±ã«ææ¡ããŸããããã«å¯Ÿããææ決å®ã®ããã»ã¹ã§ã¯ãææ¡ãããã¢ã€ãã£ã¢ã®äžããæãé©åãªãã®ãéžã³åºããŸãã
ãããã®äŸã¯ãå€ãã®éžæè¢ãå¯èœæ§ããäžã€ã®çµæãçããéžã³åºããšããç¹ã§ãNFAãšDFAã®é¢ä¿ã«äŒŒãŠããŸãã
ãããªãšæã£ããå¿æŽãããïŒ
