L'IA, il backtracking e il metodo dell'autovalore dominante

« Older   Newer »
  Share  
alessandro74
view post Posted on 12/12/2007, 02:17




Fammi capire, Hellblow, non vorrei aver analizzato alcune problematiche legate al mio lavoro utilizzando un approccio funzionalista dell'IA senza mai essermene accorto....


1) allora, cosa sia il btk credo che tu lo sappia benissimo........ma ricordiamolo velocemente a chi non sa cosa è il btk-fv:
stiamo parlando di controinseguimento per impianti solari fotovoltaici ad inseguimento piano:

le macrovele al mattino, dovendo minimizzare l'angolo di incidenza della componente diretta della radiazione solare rispetto alla normale al piano del generatore fotovoltaico cosa fanno? si dispongono verticalmente in modo che la normale al piano dei moduli sia quasi parallela al terreno...e che succede? succede che le vele, se non oppourtunamente distanziate, entrano in copertura ed il povero inverter con il kaieser che eroga potenza....appena le vele escono dalla copertura parte lo scalino e l'inverter "pompa"....il problema è che prima che l'inverter pompi si sono persi un bel po di kWh da iniettare in rete.....allora l'omino dotato di intelligenza naturale che fa? inventa il controinseguimento....al mattino le vele si dispongono con il piano dei moduli quasi orizzontale e cominciano a controinseguire il sole fino a che non entrano in mutuo ombreggiamento...a questo punto parte la normale routine di inseguimento......tutta questa cambogia per qualche kWh in piu ma ne vale la pena.......

allora ritorniamo a noi, fare btk significa risolvere un problema di ottimizzazione vincolata, e fino qui mi ci trovo in pieno. Non sapevo che l'algoritmo appartenesse alla famiglia delle problematiche IA, correggimi se sto usando un linguaggio non proprio formale non mi offendo....insomma btk=approccio funzionale IA?

2) tempo fa sviluppai un metodo di valutazione per l'analisi del rischio chimico nell'industria dei materiali compositi; il metodo da me ideato si fondava su un ben più noto metodo, detto dell'autovalore dominante, sviluppato da Thomas Saaty pochi anni fa....

in sintesi l'algoritmo da me ideato assegnava un peso a diversi fattori appartenenti ad un sub-livello, i quali concorrevano al fattore di livello superiore, il Goal. Per determinare i pesi dei singoli fattori utilizzavo una scala numerico-linguistica che mi portava alla generazione della matrice dei confronti a coppie di fattori concorrenti al goal.......costruita la matrice, determinavo l'autovalore dominante, per poi passare al relativo autovettore, le cui n-componenti rappresentavano il peso dei fattori concorrenti del sub-livello al fattore Goal. Questo l'ho fatto grazie a Thomas Saaty.....ma ora Hellblow ti chiedo: mi sono imbattuto in un "ramo" della teoria delle decisioni senza essermene mai reso conto? si tratta di IA? sto fuori strada?

a presto buona notte e inboccalupo per il Vostro forum credo che diventerà una figata!

grazie per le eventuali risposte
ale
 
Top
Hellblow
view post Posted on 12/12/2007, 10:56




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:

image

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.
 
Top
nhio83
view post Posted on 12/12/2007, 14:58




Ciao, la mia zienda ha gia un inseguitore a ritorno di informazione.
Non posso dirti come funziona di preciso cmq il tutto è stato semplificato molto. E' un nostro brevetto.

In generale il tutto si basa su sensori montati in maniera particolare
 
Top
2 replies since 12/12/2007, 02:17   1166 views
  Share