Twierdzenie Myhilla-Nerode’a

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Twierdzenie Myhilla-Nerode’a – twierdzenie w teorii języków formalnych podające konieczne i dostateczne warunki na to, by dany język był regularny. Zostało udowodnione w 1958 roku przez Johna Myhilla i Anila Nerode’a.

Twierdzenie

Niech L będzie językiem nad alfabetem Σ. Zdefiniujmy relację sufiksowej nieodróżnialności RLΣ*×Σ* następująco: (w,v)RL wtedy i tylko wtedy, gdy dla każdego słowa uΣ*, wuL wtedy i tylko wtedy, gdy vuL.

Twierdzenie Myhilla-Nerode’a orzeka, że język L jest regularny wtedy i tylko wtedy, gdy relacja RL dzieli Σ* na skończenie wiele klas abstrakcji. Dodatkowo, jeśli L jest regularny, to liczba stanów minimalnego deterministycznego automatu skończonego rozpoznającego L jest równa liczbie klas abstrakcji relacji RL.

Nieformalnie, jeśli język L jest regularny, to klasy abstrakcji relacji RL odpowiadają stanom automatu skończonego rozpoznającego L. Innymi słowy RL „skleja” ze sobą słowa, których „przyszłości” z punktu widzenia zachowania automatu są identyczne. Intuicyjnie, jeśli klas abstrakcji jest nieskończenie wiele, to automat rozpoznający L musiałby mieć nieskończenie wiele stanów, co jest niemożliwe.

Przykłady

  • język L=anbn nie jest regularny – rozpatrzmy bowiem dwa słowa: akbk oraz ak+cbk+c dla c1. Jeśli teraz podstawimy w=akbk oraz v=ak+cbk to sufiks (postfiks) u=bc rozróżnia te dwa słowa, gdyż wuL oraz vuL. Zatem relacja RL ma zatem nieskończenie wiele klas abstrakcji, czyli L nie jest regularny.