Come programmare un software intelligente

Uno dei primi approcci all'intelligenza artificiale si basava sulle tabelle e le matrici come base di memoria dell'agente razionale intelligente.

Come fa il software a imparare dall'esperienza?

E' molto semplice, il software memorizza la situazione corrente sotto forma di un vettore di variabili e valori numerici. Ogni variabile del vettore rappresenta una particolare caratteristica dell'ambiente circostante.

Una volta costruita la rappresentazione della realtà, il software confronta il vettore con gli altri vettori nella sua memoria che gli ricordano le situazioni passate.

il vettore rappresenta la realtà corrente

Nella memoria del software sono registrate tutte le situazioni che ha vissuto in passato, lo stato dell'ambiente iniziale ( vettore della situazione ex ante ), la decisione presa e come è cambiato lo stato dell'ambiente operativo ( feed-back ) dopo aver preso la decisione ( vettore della situazione ex-post ). La tabella seguente è l'esperienza passata del software intelligente.

l'esperienza in memoria, tutte le situazioni passate, le decisioni prese e i feedback ( risultati ottenuti )

In questo modo, una volta trovate le situazioni simili o uguali, l'agente può beneficiare dell'esperienza passata e scegliere l'azione / decisione nella situazione corrente quella che ha avuto maggiore successo in casi simili.

In conclusione, il software intelligente fa la sua scelta corrente basandosi esclusivamente sulla sua esperienza.

Un esempio pratico di utilizzo delle tabelle A.I.

Un software gioca a tris con un essere umano. Durante ogni partita memorizza le mosse e lo stato del gioco in un vettore. Immaginiamo che ora si trovi in questa situazione.

la situazione di gioco dell'esempio

Per giungere a questa situazione il software analizza la sequenza di mosse di gioco e costruisce il vettore corrente. Gli elementi indicano le coordinate di ogni singola mossa fatta nel gioco. Quelle di colore rosso sono del giocatore avversario.

il vettore di gioco corrente

L'agente intelligente analizza i dati in memoria, trova le situazioni di gioco uguali a quella corrente, e scopre che 7 volte su 8 ha perso la partita quando ha deciso di mettere la X nelle caselle A2, A3, B3 e C2.

esperienza di gioco simile in altre partite

Pertanto, l'agente razionale prende la decisione di mettere la X nella casella C3, in quanto è quella con la probabilità di successo maggiore.

la scelta migliore

Forse non vincerà la partita ma sicuramente evita di perderla alla mossa successiva.

Una decisione dettata soltanto dall'esperienza. L'agente razionale non ha analizzato gli effetti di tutte le possibili mosse alternative, ma ha soltanto verificato in memoria se in passato si era già trovato in quella situazione. La decisione è stata presa sulla base dell'esperienza. In questo modo, il processo decisionale è stato più rapido e non ha richiesto algoritmi complessi o eccessivo consumo delle risorse del processore. Si tratta di una tecnica empirica utilizzata anche dall'uomo per risolvere problemi pratici o situazioni sociali.

Quali sono i vantaggi di questa tecnica di intelligenza artificiale?

Nel corso del tempo il software intelligente impara dall'esperienza diretta di gioco, senza conoscere le regole e senza studiare una strategia.

Quando si trova nella stessa situazione, si limita a ripetere le mosse vincenti e a non ripetere quelle sbagliate

Se non ha sufficienti dati in memoria per prendere una decisione razionale, se la situazione corrente non ha ancora precedenti, l'agente intelligente prende la sua decisione a caso.

Dopo un numero elevato di iterazioni di gioco, il software ha acquisito una sufficiente esperienza per affrontare qualsiasi partita con successo.

Nota. Questa semplice tecnica dell'intelligenza artificiale è stata mostrata anche nel film War Games del 1983, quando il computer ha imparato a giocare contro se stesso, giungendo alla conclusione che il gioco non ha vincitori perché ogni mossa poteva essere prevista e neutralizzata.

L'esperienza maturata durante l'esecuzione del software può essere registrata su supporto informatico e trasmessa ad altri software.

L'esperienza programmata di gioco

Eventualmente, il progettista può programmare una tabella iniziale con un'esperienza di gioco programmata, indicando "a mano" alcune sequenze percettive o situazioni di gioco e le azioni migliori da attuare.

Questo riduce il ricorso alle mosse casuali. A volte, il fallimento può avere un prezzo troppo alto. Ad esempio, il robot fa la scelta sbagliata, cade dalle scale e si rompe.

Tuttavia, per questo estesa la tabella redatta dal progettista non può prevedere ogni situazione di gioco e limita la capacità di auto-apprendimento della macchina ( machine learning ).

Gli svantaggi delle matrici e delle tabelle

Uno dei principali svantaggi di questa tecnica è l'eccessiva quantità di memoria necessaria per registrare tutti i dati e far funzionare correttamente il software. In gergo, la complessità spaziale è enorme.

Ad esempio, una memoria può contenere tutte le situazioni di gioco del tris, perché le combinazioni delle sequenze possibili sono comunque limitate e le variabili sono poche. Una qualsiasi chiavetta USB può contenere il file completo.

In altri casi, come la guida automatica di un veicolo su strada, le variabili e le combinazioni delle sequenze possibili da valutare diventano quasi infinite. Non basterebbe una memoria fisica grande quanto l'Universo per memorizzare tutte le possibili situazioni di qualche ora di guida su strada.

la curva della complessità computazionale

Per questo motivo la tecnica delle tabelle è stata abbandonata nello sviluppo dei software di artificial intelligence. Esistono altre tecniche più efficienti per ridurre il numero delle variabili del problema e il tempo di elaborazione.

Oggi l'approccio delle tabelle è usato soltanto nei sistemi esperti e, comunque, in casi molto semplici e limitati.


Per scrivere un commento

knowledge base