Główną właściwością DFA / NFA jest brak nieograniczonej pamięci. Jeśli spojrzysz na język i jedyny algorytm (który później powinien zostać przetłumaczony na automat skończony), który wymyślisz, wymaga tej właściwości, to znaczy czujesz, że każdy algorytm, który go rozpozna, będzie musiał zapamiętać dowolną dużą liczbę rzeczy (lubićn w twoim przykładzie), to prawdopodobnie ten język nie jest regularny.
Oczywiście, zawsze powinieneś pamiętać, że intuicja matematyczna może się mylić, a jedynym sposobem, aby być pewnym swojej intuicji, jest jej udowodnienie.
EDYCJA: Odpowiem na ostatnie pytanie w komentarzach tutaj, z powodu braku miejsca.
mówicie o nieograniczonej pamięci, co masz na myśli to, że nie jest ona regularna. ale ^ nb ^ m może również mieć nieograniczoną pamięć, jeśli chcę, prawda? to wciąż nie daje mi spokoju.
Problem nie polega na tym, jak duże mogą być te słowa (zwykle napotykasz nieskończone regularne języki, ponieważ każdy skończony język jest regularny, a to dość nudne), ale ile DFA musi pamiętać.
wambn na przykład nie trzeba pamiętać m,n. Algorytm musi tylko upewnić się, że są pozytywne i że słowo jest poprawnie uporządkowane. To jest skończona lista, a każdy z elementów na liście wymaga stałej ilości pamięci.
Porównaj to zanbn, dla których wymagany jest prosty alogrithm, aby pamiętać, że liczba ajest równa liczbie b„s. Będzie to wymagało nieograniczonej pamięci. Kiedy patrzę na język i widzę, że każdy algorytm, o którym mogę myśleć, potrzebuje nieograniczonej pamięci, moja intuicja, że język nie jest regularny, staje się silniejsza. Jeśli nie uda mi się znaleźć „inteligentnego” algorytmu (wymagającego stałej ilości pamięci) w rozsądnym czasie (ile rozsądnego czasu zależy od ciebie), spróbuję udowodnić, że język nie jest regularny.
Mam nadzieję, że to czyni to nieco jaśniejszym.