venerdì 16 ottobre 2009

Agente come risolutore di problemi

Si considera inizialmente un agente che opera in ambiente statico, osservabile, discreto e deterministico. Esso deve massimizzare la sua misura di prestazione e questo viene reso più semplice se fissiamo un obiettivo da raggiungere, che consiste in un insieme di stati del mondo. L'agente allora dovrà ricercare una sequenza di stati, detti soluzione, che lo portino a soddisfare l'obiettivo. Per trovare la soluzione bisogna formulare in modo corretto il problema considerato dall'agente intelligente definendo:
  • lo spazio degli stati il quale consiste in un grafo i cui nodi sono gli stati e gli archi sono le azioni. Lo spazion degli stati è a sua volta definito da:
    • lo stato iniziale in cui si trova l'agente;
    • la funzione successore: funzione che dato uno stato del problema, restituisce un insieme di coppie {, };
  • il test obiettivo distingue gli stati di goal (o stati obiettivo) elencandoli esplicitamente o esprimendo una condizione che deve valere per tali stati;
  • il costo di cammino: funzione che dato un cammino restituisce il costo associato, sommando il costo di passo relativo ad  ogni azione eseguita
 In questa ottica la soluzione è vista come un cammino dallo stato iniziale allo stato obiettivo, e la soluzione ottima è quella a costo di cammino minore.

Si nota come, la formulazione di un problema  è il risultato di un processo di astrazione tramite il quale vengono tralasciati dettagli non necessari per il raggiungimento dell'obiettivo. Più in generale un problema può essere descritto in modi differenti; per ottenere una buona formulazione si deve limitare il numero degli stati cercando di includere per quanto possibile, le regole dell'ambiente, nella funzione successore.

giovedì 15 ottobre 2009

Programmi agente

Il programma agente è l'implementazione della funzione agente. In base a come questi si comportano nei confronti dell'ambiente si possono distinguere quattro categorie di agenti: reattivi semplici, reattivi basati su modello, basati su obiettivi e basati sull'utilità.

Agenti reattivi semplici
Gli agenti più semplici da costruire risultano quelli che si comportano considerando solo lo stato dell'ambiente nell'istante precedente l'azione; in pratica il programma sarà strutturato come una serie di if stato then azione. Il nome reattivi deriva prorio dalla caratteristica di non considerare alcuna storia dell'ambiente osservato. Agenti progettati secondo questo paradigma si comportano bene solo in ambienti completamente osservabili, ovvero i sensori percepiscono tutte le informazioni che riguardano l'ambiente. Nella Figura è schematizzato il funzionamento degli agenti reattivi semplici. Viene usato, qui ed in seguito, l'ovale per definire strutture dati, il rettangolo per le procedure.




Agenti reattivi basati su modello
Una variante degli agenti appena illustrati tiene invece conto di come potrebbe evolvere partendo da un modello dello stesso. In questo modo l'agente agisce ancora in modo reattivo, ovvero considerando aolamente lo stato dell'ambiente, ma riesce a capire cosa accadrà probabilmente nel mondo dopo che compie una determinata azione. Per questo tali agenti riescono anche a comportarsi efficacemente in ambienti parzialmente osservabili. Nella figura è illustrato il funzionamento; si nota l'introduzione del modello nel programma agente.




Agenti basati su obiettivi
L'approccio basato su obiettivo è differente dai due già visti in quanto non porta con sè l'idea di reattività. L'azione da eseguire non è definita solo vedendo lo stato attuale del mondo ma anche calcolando come può essere raggiunto un certo obiettivo cercando di instradare le decisioni verso quella considerata corretto (obiettivo o goal). Il risultato è probabilmente meno efficente dei casi visti fin'ora, ma è sicuramente più flessibile ai cambiamenti del mondo esterno. In Figura come sempre si illustra lo schema di funzionamento dell'agente basato su modello.

  

Agenti basati su utilità
L'ultimo tipo di agenti è in parte simile a quello basato su modello: l'azione da compiere viene calcolata considerando sia lo stato corrente dell'ambiente, sia un altro fattore, detto utilità. L'utilità è un parametro che viene determinato da una funzione opportunamente definita che fa corrispondere uno o più stati ad un numetro che indica ilgrado di soddisfazione ad esso associato. In questo modo l'agente cercherà  di raggiungere gli stati che lo "soddisfano" di più. Nella Figura si nota la somiglianza con lo schema precedente soprattutto per l'assenza delle regole condizione azione.




Come nota finale, si noti che, dotando uno di questi agenti di un dispositivo capace di modellizzare la conoscenza del mondo, e di un dispositivo capace di aggiornare questa conoscenza con il passare del tempo, è inoltre possibile creare un processo di apprendimento. 

mercoledì 14 ottobre 2009

Intelligenza Artificiale: agenti intelligenti

I sistemi che sono intelligenti secondo la quarta definizione vengono detti "agenti razionali". Il termine razionale deriva direttamente dalla definizione considerata; parlando di agenti si intende una qualunque entità che percepisce l'ambiente tramite sensori e agisce tramite attuatori.



L'agente razionale quindi percepisce lo stato dell'ambiente in cui opera, prendendo una decisione relativa al compito che deve eseguire per poi agire e in modo ciclico continua a percepire-decidere-agire.
Le decisioni possono essere viste come una funzione che mette in relazione un insieme, o meglio, una sequenza di percezioni con un'azione che l'agente può compiere. Questa è detta funzione agente e viene implementata tramite un programma, detto anch'esso agente. Affinché l'agente si comporti in modo razionale, la funzione deve essere progettata opportunamente.
Fin'ora si è parlato di razionalità in modo generico, ma , per proseguire nello studio bisogna definire meglio cosa si intende. Si definisce in primo luogo un criterio che renda possibile valutare il successo del comportamento di un agente, detto misura di prestazione. Risulta ,importante e allo stesso tempo complesso, definire una corretta misura di prestazione. Questa infatti è il punto di partenza per una definizione di agente razionale, ovvero:
Per ogni possibile sequenza di percezioni, un agente razionale sceglie l'azione che massimizza il valore atteso della sua misura di prestazione date le informazioni disponibili fino a quel momento.
Data questa definizione si osserva che l'agente non è onnisciente poichè non è possibile pretendere che preveda il futuro ed in particolare non può considerare tutte le incertezze che caratterizzano gli eventi nel mondo reale.

mercoledì 7 ottobre 2009

Intelligenza Artificiale: una breve introduzione

Nel linguaggio comune spesso si parla di intelligenza artificiale riferendosi a qualcosa di simile ad una entità concreta. Ad esempio nel campo dei videogiochi si valuta l'intelligenza artificiale del gioco.

In realtà l'intelligenza artificiale è una scienza, il cui obiettivo, a livello molto generale, è la creazione di sistemi (detti tipicamente agenti) intelligenti. Non è realistico credere di poter dare una definizione precisa e completa di intelligenza; di conseguenza nel corso della storia sono stati sondati diversi approcci per definire una macchina "intelligente". In particolare si sono delineate quattro classificazioni, secondo le quali un sistema è intelligente se:
  • pensa come un uomo: il sistema riproduce i processi di ragionamento di un essere umano, considerato come ideale di intelligenza. Per creare un tale sistema bisogna conoscere in modo approfondito cosa accade nel nostro cervello, capire come pensiamo: per questo tali sistemi si ricollegano agli studi delle neuroscienze e della psicologia;
  • agisce come un essere umano: a differenza di prima, non interessa cosa accade all'interno del sistema, ma solo come si comporta nel mondo esterno. Nel test di Turing (http://www.turing.org.uk/turing/scrapbook/test.html)  una macchina viene classificata come intelligente proprio in riferimento a questa definizione;
  • pensa razionalmente: si può cambiare il punto di vista prendendo a riferimento comportamenti razionali (non sempre seguiti dall'uomo); ovvero si considera che ogni azione viene compiuta seguendo delle leggi del pensiero. Per sviluppare un tale sistema bisogna quindi formalizzare le leggi seguendo ad esempio i dettami della logica matematica;
  • agisce razionalmente: non è poi così semplice  pensare di riassumere sotto forma di leggi logiche tutti gli assiomi dai quali partire per poter rendere il sistema in grado di avere comportamenti razionali. Come in precedenza, secondo questo approccio si valuta l'intelligenza di un sistema in base a quanto le azioni che compie nel mondo esterno risultano razionali.
Le distinzioni fatte non sono categoriche, o meglio, definendo l'IA è possibile considerare diversi aspetti delle quattro definizioni.

venerdì 2 ottobre 2009

MIcrofono non funzionante con Skype in Ubuntu 9.04


Chissà come mai una periferica si interfaccia perfettamente un programma mentre con un altro non sembra andare d'accordo. In particolare capita spesso (sempre?) che un microfono ottimamente funzionante con il registratore di suoni di Ubuntu non riesca a comunicare con il famigerato Skype. Come mai accada ciò sarebbe da chiedere ai programmatori del noto client VoIP. Questo ostacolo è comunque relativamente semplice da saltare, basta configurare in modo diverso le impostazioni del sistema per adattarle a come le vuole l'amico Skype.
Intanto si deve andare sul Regolatore del volume (clic sull'altroparlante in alto a destra). Successivamente, cliccando su Preferenze appare l'immagine


dove deve essere spuntata la voce "Cattura". Fatto questo e chiusa la finestra delle Preferenze, si deve abbassare il volume del microfono, così:




poi bisogna posizionarsi sulla tab Registrazione ed alzare i due regolatori in questo modo:


Finita questa operazione si chiude anche il Regolatore del volume e  si apre la finestra Sistema->Preferenze->Audio. Nel mio caso le impostazioni che funzionano sono illustrate in figura, ma non valgono per tutti i computer e quindi a questo punto si tratta solo di trovare la combinazione giusta, provando comunque per prima questa:

giovedì 1 ottobre 2009

Problemi di accensione con HP Pavillion dv5 1007el

L'altro giorno il computer della mia fidanzata, un HP Pavillion dv5 1007el,  si è incazzato notevolmente. La mia ragazza mi ha chiamato in preda al panico dicendomi che il portatile non si accendeva e faceva suoni strani... infatti,  all'accensione, il computer emetteva tre bip minacciosi che non facevano presagire nulla di buono.
Con calma e pazienza, la causa di questo barbaro suono è stata smascherata come un problema di memoria ram. I suoni erano la voce del BIOS che protestava dato che non riusciva a raggiungere parte della memoria. E povero ha pure ragione a protestare se no come fa tutte le sue dolci cosine. Allora è stato sufficiente individuare se era guasta una Ram oppure un alloggiamento (sfortunatamente è stato quest'ultimo) e quindi rimuovere la prima o quella corrispondente al secondo.

Video nelle presentazioni con latex in Ubuntu 9.04

Quando si vuole creare una presentazione con latex e ubuntu non è semplicissimo inserire dei video nelle slides. O meglio, teoricamente è possibile creare questo tipo di slides, ma poi è difficile trovare il modo per visualizzarle correttamente.
Come viene spiegato nel forum di ubuntu (http://forum.ubuntu-it.org/index.php?topic=316277.0), per ora, sembra che in Ubuntu 9.04 quest'operazione sia possibile solamente utilizzando alcuni accorgimenti e stratagemmi:
utilizzo di Okular per vedere i  video nel PDF creato dal file sorgente Tex;
installazione di numerosi programmi dall'installatore dei pacchetti;
utilizzo di beamer  (con prosper non sembra possibile) e del pacchetto multimedia.sty (http://people.sc.fsu.edu/~burkardt/latex/sty/multimedia.sty)
utilizzo di dvips e ps2pdf per creare il PDF;
I dettagli sono spiegati nel link. I risultati ottenuti saranno soddisfacenti salvo il fatto che l'autostart non funziona quindi per far partire i video bisognerà cliccarci sopra, ma questo è un prezzo veramente piccolo se risulta importante integrare video nelle slides.