Sto tentando di insegnarmi le basi degli automi finiti e ho esplorato le differenze tra gli automi definiti deterministici e l'auto finita non deterministica.
Una cosa che appare abbastanza spesso negli esempi on-line, diapositive delle lezioni e video di vari istruttori CS è la transizione epsilon. Il problema è che nessuno di loro fa un ottimo lavoro nello spiegare le transizioni epsilon. Semplicemente li fanno uscire dal nulla come questa misteriosa proprietà che ti permette di saltare da uno stato all'altro senza leggere un carattere di input.
O.K. Lo capisco, ma in che modo questi salti arbitrari sono facilitati semanticamente se dovessimo creare questo automa? Prendi l'immagine qui sotto per esempio. Diciamo che siamo in S0, ci sono due transizioni epsilon a s1 e s4. Come è deciso quale andare giù. Se vai su S1 e non hai un a, puoi tornare indietro e provare b? Dico questo perché le frecce non sembrano dedurre questo. O ho concepito questo errore, gli automi potrebbero effettivamente essere in entrambi gli stati S1 e S2 contemporaneamente?
Anche s3 e s6, hai transizioni epsilon a s7, quindi perché non abbiamo due stati di accettazione S3 e s4 invece?
Infine l'S2, ha due percorsi che reagiscono ad a, s5 ha due percorsi che reagiscono a b. Come funziona in pratica. Come viene determinato il percorso da seguire?
Quando rispondi cerca di limitare l'uso della matematica esoterica, e se usi operatori e simboli, spiegali chiaramente. Non sono un esperto di matematica.