Definizione di backtracking

Nel contesto del backward chaining, il backtracking è una tecnica fondamentale di gestione delle alternative durante il processo di dimostrazione di un obiettivo.

Ruolo del backtracking: Quando la procedura di backward chaining prende il primo obiettivo dall’elenco e cerca nella KB una clausola che abbia tale obiettivo come letterale positivo, possono esserci più regole o fatti che potenzialmente lo soddisfano. Il backtracking interviene quando una strada intrapresa non porta al successo (cioè non si riesce a dimostrare un sotto-obiettivo o si incontra una contraddizione). In questi casi, il sistema “torna indietro” (backtracks) e prova un’alternativa precedentemente scartata, esplorando un percorso di derivazione diverso. Questo consente di esplorare tutte le possibili combinazioni di regole e fatti per trovare una dimostrazione dell’obiettivo iniziale.

Svantaggi del backtracking nel backward chaining: Nonostante la sua utilità, il backtracking può portare a problematiche:

  • Cicli infiniti: La procedura può entrare in loop infiniti, specialmente se la KB contiene tautologie o regole ricorsive definite in modo non ottimale, dove la dimostrazione di un obiettivo può generare se stessa come sotto-obiettivo indefinitamente.
  • Inefficienza: Anche se termina, il processo può essere molto inefficiente, ripetendo la ricerca degli stessi obiettivi più volte e sprecando risorse computazionali.

Per gestire questi “tranelli” del backward chaining e ottimizzare l’efficienza, è necessario implementare strategie di controllo procedurale.