Re: [C] Automi a stati finiti
Inviato: lunedì 2 maggio 2016, 9:09
Penso di aver capito il backtracking...vediamo.
Ho la stringa "00".
parto da q0 e inizio col primo carattere della stringa: "0"
q0 con "0" mi porta a q1 e q2.
Nella lista o matrice trovo prima q1, quindi lo seguo: sono in q1.
Passo al secondo carattere: "...0"
q1 con "...0" porta a q3 riconosco che la stringa è finita (es '\0'), ma q3 non è un'uscita.
Allora retrocedo con lo stack: sono in q1. q1 però non ha altri archi uscenti con "...0" (se non q3 chè già stato visitato)
Retrocedo ancora, sono in q0: q0 ha un altro arco uscente (q2) e anche l'evento è giusto...quindi ora sono in q2.
Avanzo anche con la stringa ecc...
In poche parole ad ogni passo buono avanzo anche con la stringa e ad ogni back retrocedo sempre con la stringa di un char. Giusto?
Se è così non mi resta che implementarlo. Non so se con la matrice devo riadattare un po', ci provo.
Mi confermi il ragionamento ?
Ho la stringa "00".
parto da q0 e inizio col primo carattere della stringa: "0"
q0 con "0" mi porta a q1 e q2.
Nella lista o matrice trovo prima q1, quindi lo seguo: sono in q1.
Passo al secondo carattere: "...0"
q1 con "...0" porta a q3 riconosco che la stringa è finita (es '\0'), ma q3 non è un'uscita.
Allora retrocedo con lo stack: sono in q1. q1 però non ha altri archi uscenti con "...0" (se non q3 chè già stato visitato)
Retrocedo ancora, sono in q0: q0 ha un altro arco uscente (q2) e anche l'evento è giusto...quindi ora sono in q2.
Avanzo anche con la stringa ecc...
In poche parole ad ogni passo buono avanzo anche con la stringa e ad ogni back retrocedo sempre con la stringa di un char. Giusto?
Se è così non mi resta che implementarlo. Non so se con la matrice devo riadattare un po', ci provo.
Mi confermi il ragionamento ?