Il backtracking, mi sto accorgendo (credo) che è più difficile e penso anche meno prestante.
Richiede una conoscenza sull'attraversamento dei grafi, e del DFS (deep firts search).
Ho provato a ragionare con uno stack, ma arrivo a dei punti che m'incasino.
Per esempio:
parto da q0->q1->q3
stato dello stack: 0,1,3
q3 è un ramo morto, quindi faccio un pop è ho stack 0,1
ok, sono in q1.
ma se non prendo accorgimenti e marco come già visitato, potrei tornare in q3...e così via all'infinito.
Al tempo stesso, lo potrei marcare con un flag, ma potrei avere più diramazioni e non considerarle per il fatto di averlo marcato!!!!
Non so se mi riesco a spiegare.
La verità è che mi mancano le basi sui grafi,alberi ecc...ho del materiale...ma ragazzi...sono cose davvero complesse.
Magari il metodo parallelo è più semplice.
più che altro la tabella di transizione, non so come fare a salvarla.
Nei DFA a ogni cella dell'array è memorizzato un evento... in modo univoco, mentre qui con l'evento x ho più stati...non so forse una struttura.
ho rappresentato il grafo d'esempio con questa matrice di adiacenza:
q0 [0,1,1,1,0]
q1 [0,0,0,1,0]
q2 [0,0,0,1,1]
q3 [0,0,0,0,0]
q4 [0,0,0,0,0]
Forse qui intendevi ...." nello stato vecchio metti 0 ".
sono gli eventi che non riesco a gestire!!!!!
Comunque @spider...

