Ciao Alessandro,
Il Backtracking prima di essere una tecnica di apprendimento usata nelle reti neurali è un vero e proprio metodo di operare (algoritmo, in effetti).
Infatti quando si conoscono i risultati di certi comportamenti di un sistema (i vincoli in pratica che vogliamo che il nostro sistema rispetti) e si vuole configurare il sistema per ottenere date certe condizioni proprio quei comportamenti si usa il BT.
Ad esempio lo usano in un certo senso, senza saperlo, gli Ingegneri del Software quando fanno prima l'analisi di un sistema (ovvero le caratteristiche che il sistema dovrà avere) e poi progettano lo stesso sulla base di specifiche che conoscono a priori. In pratica adattano un sistema a ciò che dovrà fare progettandolo in modo da associare ad un certo input un certo output (se il cliente schiaccia il tasto compra il sistema deve considerare acquistato un certo articolo).
Il BT è una tecnica molto intuitiva per l'apprendimento nelle reti neurali (anche se nella pratica non è semplicissima da implementare) e fa parte del cosidetto apprendimento supervisionato in quanto bisogna conoscere a priori i risultati che si vogliono ottenere. Spesso è usato nei sistemi che devono fare riconoscimento di immagini.
Poi quando lo si applica nella pratica naturalmente lo si implementa in maniera diversa. I punti fondamentali di questo algoritmo sono:
1) Si devono conoscere i vincoli
2) Si devono conoscere gli input
3) Il Supervisore deve essere in grado di alterare il sistema per adattarlo
Invece il sistema rimane l'oggetto da modellare, progettandolo di sana pianta o adattandolo al problema.
Ad esempio, supponiamo di voler realizzare un programam che giochi a scacchi. Il programma potrebbe per ogni pezzo cercare di individuare ogni possibile mossa ed in base ad una tabella valutarne l'efficacia. Per esempio un movimento che porti la regina in una situazione di scacco all'avversario viene valutata come la miglior mossa da fare. Allora il programma, poichè conosce la situazione iniziale e la situazione finale da raggiungere, puo' creare un albero di mosse da fare e lavorando in backtracking ricercare tutte le combinazioni possibili per raggiungere la mossa voluta. Se ne trova piu' di una assegna in base a certi pesi dei valori ad ogni mossa intermedia e ad esempio li somma, ottenendo un punteggio che serv a confrontare i vari percorsi utili per raggiungere la mossa con la regina. Individuato cosi' il miglior percorso da seguire (sequenza di mosse) lo esegue. Purtroppo il nostro programma sarà abbastanza "scemo" rispetto un giocatore che ha un minimo di esperienza (basta offrire un pezzo al programma, sacrificandolo, per fargli credere che mangiare quel pezzo è la migliore scelta e trarlo cosi' in inganno), ma rende bene l'idea di come funziona il BT nell'IA.
Nel tuo caso le vele vengono posizionate (credo) in base i dati provenienti da un sensore di luminosità (fotocellula, o anche direttamente le celle solari stesse) e questi dati vengono inviati ad una centralina di controllo che ha la funzione di muovere i pannelli massimizzando il valore letto. Si tratta di un sistema a catena chiusa che in un certo senso adatta il sistema in base agli stimoli provenienti dall'esterno. In effetti se osserviamo il sistema nella sua completezza dall'esterno, possiamo dire che il sistema si autoregola senza una supervisione da parte nostra.
Però se scomponiamo il sistema nelle varie parti, il controllore che gestisce il tutto lavora in BT, probabilmente per tentativi (in realtà un algoritmo potrebbe "prevedere" lo spostamento migliore da fare). La sequenza dovrebbe essere qualcosa del tipo:
Trascura la rozzezza del diagramma
Dunque, in pratica il controllore legge dal sensore il valore e lo confronta con un valore vecchio di 5 minuti. Se trova differenza (qui si puo' ottimizzare usando non una differenza nuda e cruda ma magari una differenza con scarto cosi' da evitare movimenti se questi alla fine danno poco rendimento) tenta di muovere il pannello con la funzione MuoviPannello (che sarà progettata per ottimizzare i possibili movimenti e ridurre cosi' i tentativi) e poi riverifica di nuovo le condizioni iniziali. Manca il punto di uscita in quanto si esce solo se si spegne l'apparecchio
.
Naturalmente se si usano molti pannelli si puo' pensare a qualcosa di complesso che sfrutti magari piccole variazioni di angolo fra questi in modo che complessivamente il rendimento rimane quasi uguale ma il controllore dalla lettura dei singoli sensori potrebbe intuire in quale direzione spostare il pannello. Su questa filosofia si potrebbe creare un sensore formato da diverse fotocellule per individuare con precisione la posizione del sole e quindi effettuare un unico movimento per l'inseguimento, ecc...
Quindi in un certo senso abbiamo un supervisore (controllore) che in base al risultato che si vuole ottenere (allineamento ottimale) e la situazione iniziale (posizione attuale dei pannelli che ritorna una llineamento non ottimale) riconfigura il sistema Pannelli (usando gli attuatori) affinchè sia possibile far coincidere il risultato voluto con quello ottenuto partendo appunto da quanto i pannelli stanno rendendendo. Il controllore puo' essere "intelligente" rendendo minimo il numero di movimenti e tentativi per raggiungere questo risultato.