Jaký je rozdíl mezi strojem s konečným stavem a automatem na stahování?


Odpověď 1:

Rozdíl závisí na implementaci. Jak už Jim již zmínil, obvykle by pushdown automaty byly stohem stavů, kde by každý stav v stohu měl pouze 2 přechody (jeden na každé straně), zatímco strojem konečných stavů by mohl být graf s přechody probíhajícími přes stavy. Kontextově citlivé umělé pomocníky (jako příklad) by mohly být implementovány jako push down automaty, zatímco aplikační vrstva jakéhokoli uživatelsky interaktivního zařízení by mohla být implementována jako konečný statemachine.

Dalo by se myslet, že implementace hierarchických statemachines je pushdown automaty kombinované s konečnými statemachines na každé úrovni.


Odpověď 2:

Přechod konečných stavových strojů je funkcí ze sady stavů do sady stavů. Při vstupu je tedy budoucí konfigurace (nebo stav) stroje závislá pouze na stavu, se kterým začínáte. V pda přechází funkce od horního symbolu zásobníku a umístění k jinému umístění. Budoucnost automatů s daným vstupem tedy závisí na stavu a obsahu zásobníku (další stav závisí na horní části zásobníku, vedle dalšího závisí případně na druhém prvku, vedle dalšího na dalším případně třetím atd.) . Velikost zásobníku není omezena. Stav nebo konfigurace by tak mohla být neomezená.


Odpověď 3:

Přechod konečných stavových strojů je funkcí ze sady stavů do sady stavů. Při vstupu je tedy budoucí konfigurace (nebo stav) stroje závislá pouze na stavu, se kterým začínáte. V pda přechází funkce od horního symbolu zásobníku a umístění k jinému umístění. Budoucnost automatů s daným vstupem tedy závisí na stavu a obsahu zásobníku (další stav závisí na horní části zásobníku, vedle dalšího závisí případně na druhém prvku, vedle dalšího na dalším případně třetím atd.) . Velikost zásobníku není omezena. Stav nebo konfigurace by tak mohla být neomezená.