Automat deterministyczny - przykład(y)

0

Cześć. Nie wiem czy to dobry dział, bo jestem to początkujący. W razie czego proszę o wskazówki gdzie przenieść posta. Nie wiem jak zrobić takie zadanie:
"Zbuduj automat sprawdzający czy ciąg zbudowany z literek a i b ma parzystą ilość literek a i parzystą ilość literek b a dodatkowo ilość literek a minus ilość literek b jest podzielona przez 3."
Będę wdzięczny za pomoc lub jeśli nie, to może ktoś mnie skieruje do źródła przykładów automatów (teorię mam chodzi raczej o ćwiczenia z rozwiązaniami).
Dzięki!

0

Co już masz?

0

Zbuduj automat

Z czego? Z bramek logicznych? Pod postacią tabeli? Czy pod postacią rysunku?

FSM

To nie jest rozwiązanie, tylko jakiś przykładowy obrazek :P

0

Chodzi o rysunki. Mam osobne automaty (nie wiem czy dobrze), które sprawdzają czy różnica ilości liter jest podzielona przez 3 (pierwszy rysunek) i czy ilość liter jest parzysta (drugi rysunek dla litery a). I teraz nie wiem czy muszę trzy takie automaty połączyć na zasadzie iloczynu kartezjańskiego? Bo wtedy wychodzi 28 stanów... Czy da się jakoś prościej?IMG_20210701_121612.jpg

2

Najlepiej zacznij od zdefiniowania sobie zbioru stanów u Ciebie {Ilość a modulo 2} x {Ilość b modulo 2} x {a-b modulo 3}, czyli będzie 2x2x3 = 12 stanów.

Początkowy stan to [0,0,0] narysuj wszystki stany na kartce papieru i pracowicie połącz, np. [0,0,0] na literce b przejdzie w [0,1,2] (0-1=-1 mod 3 = -1 + 3 = 2)
[0,1,2] po dostaniu literki a przejdzie w [1,1,0] (0 bo = 2 + 1 = 3 mod 3 = 0).

Stany akceptujące to (u ciebie jeden): [0, 0, 0].

Ot tyle...

0

@0xmarcin: dzięki, Twoja odpowiedź jest bardzo jasna, już rozumiem 😀. Gdybyś miał jakiś link albo plik z przykładami automatów, byłbym wdzięczny za przesłanie

0

@Shalom: dziękuje się 😄

1 użytkowników online, w tym zalogowanych: 0, gości: 1