Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lfa:exercise-sheet-1-solution [2021/01/18 15:21] pdmatei |
lfa:exercise-sheet-1-solution [2021/01/18 16:24] (current) pdmatei |
||
---|---|---|---|
Line 75: | Line 75: | ||
5. Câte limbaje //distincte// pot fi recunoscute de un AFD cu 2 stări? Justificați. | 5. Câte limbaje //distincte// pot fi recunoscute de un AFD cu 2 stări? Justificați. | ||
+ | |||
+ | **//Solutie//**: | ||
+ | |||
+ | Daca AFD-ul nu contine stari finale, sau daca ambele stari sunt finale, limbajele acceptate sunt $math[\emptyset] respectiv $math[\Sigma^*], indiferent de structura AFD-ului. Avem prin urmare 2 limbaje identificate. | ||
+ | |||
+ | Vom considera in continuare AFD-uri cu o stare finala. Din punct de vedere al tranzitiilor, acestea pot avea urmatoarele tipuri (forme), prezentate in figura de mai jos. Numele efectiv al fiecarei stari nu este relevant, ci doar calitatea fiecareia de a fi initiala/finala. Vom numara in continuare limbajele posibile pentru fiecare tip de AFD: | ||
+ | * **type A**: Oricare ar fi starile initiala/finala, limbajele acceptate sunt tot $math[\emptyset] respectiv $math[\Sigma^*], numarate deja anterior. | ||
+ | * **type B**: | ||
+ | * daca starea initiala coincide cu cea finala si este cea din stanga, avem 2 limbaje posibile (in functie de simbolul de pe tranzitia reflexiva) | ||
+ | * daca starea initiala coincide cu cea finala si este cea din dreapta, limbajul este $math[\Sigma^*], indiferent de tranzitii, limbaj numarat deja. | ||
+ | * daca starea initiala este cea din stanga iar cea finala este cea din dreapta, avem 2 limbaje posibile | ||
+ | * daca starea initiala este cea din dreapta iar cea finala este cea din stanga, AFD-ul nu are o stare finala accesibila, prin urmare limbajul este $math[\emptyset], numarat deja | ||
+ | * **type C**: structura este simetrica, prin urmare este suficient sa contabilizam doua cazuri: | ||
+ | * starile initiala si finala coincid, caz in care avem 4 limbaje posibile, in functie de simbolii tranzitiilor | ||
+ | * starile initiala si finala nu coincid, caz in care avem alte 4 limbaje posibile | ||
+ | * **type D**: si aceasta structura e simetrica, in plus alegerea simbolilor pe tranzitii nu mai influenteaza limbajul acceptat, prin urmare, avem din nou doua cazuri: | ||
+ | * starile initiala si finala nu coincid: 1 limbaj | ||
+ | * starile initiala si finala coincid: 1 limbaj | ||
+ | * **type E**: Doar simbolii tranzitiilor starii din stanga influenteaza limbajul, deci avem doua posibilitati, inmultit cu cele 4 posibile combinatii de stari initiale/finale, deci 8 limbaje | ||
+ | * **type F**: Simbolii tranzitiilor nu afecteaza limbajul, iar cele 4 combinatii de stari initiale/finale genereaza limbajele $math[\Sigma^*], $math[\{\epsilon\}], $math[\emptyset], $math[\Sigma^+], din care doar doua nu au mai fost intalnite. | ||
+ | Insumand, peste cele 6 tipuri, obtinem un total de: $math[2 + 4 + 8 + 2 + 8 + 2= 26] limbaje diferite. | ||
+ | |||
+ | |||
+ | {{ :lfa:sheet-solutions-2.jpg?500 |}} | ||
+ |