Post on 01-May-2015
transcript
Sistemi basati su conoscenza(agenti intelligenti)
Prof. M.T. PAZIENZA
a.a. 2005-2006
Agenti
Un agente è qualcosa che percepisce ed agisce.Un agente è qualcosa che agisce in un ambiente, che
fa qualcosa.
Un agente intelligente è un sistema che agisce intelligentemente; ciò che fa è appropriato per la situazione e per i suoi obiettivi, è flessibile al variare dell’ambiente e degli obiettivi, impara dall’esperienza e fa scelte appropriate date le sue percezioni (limitate) ed i limiti della capacità computazionale.
Agenti
E’ importante capire i principi che rendono possibile realizzare un comportamento intelligente di un agente sia in un ambiente naturale che artificiale. Ovviamente l’ipotesi principale è che l’agente intelligente sappia ragionare.
L’obiettivo dell’ingegneria della conoscenza è quello di specificare le metodologie per disegnare artefatti intelligenti ed utili, e quindi di realizzarli.
Agenti
L’agente intelligente di più immediata definizione è quello che si comporta come un umano.
Esiste però una classe di agenti intelligenti che può essere più intelligente di un umano: la classe delle organizzazioni.
Le società composte da umani sono probabilmente l’agente più intelligente che si conosca.
Agenti
Un agente può essere, per esempio, l’insieme di
• un sistema di calcolo e di attuatori fisici e sensori (robot)
• un sistema esperto ed un umano che fornisce le informazioni (percezioni) al sistema
• un programma che agisce in un ambiente puramente computazionale (info-robot).
Agente logico basato su conoscenza
Parte con una conoscenza generale del mondo e delle proprie azioni
Usa il ragionamento logico per :
1. Mantenere una descrizione del mondo consistente all’arrivo di nuove percezioni
2. Dedurre una sequenza di azioni che porteranno all’ottenimento dei propri obiettivi
Agenti intelligenti
Un agente è una entità in grado di percepire il proprio ambiente attraverso sensori e di agire in quell’ambiente attraverso degli attuatori
Un agente software possiede stringhe di bit al posto delle proprie percezioni e azioni
La nozione di agente è intesa come strumento per l’analisi di sistemi
Progettazione di un agente
Agire razionalmente
Agire razionalmente significa agire:
• per raggiungere i propri obiettivi,
• date le proprie conoscenze,
• in funzione della sequenza di percezioni ricevute,
• date le azioni che si è in grado di compiere.
Agire razionalmente (2)
Un agente razionale fa la cosa giusta, ovvero quell’azione che procurerà all’agente il maggior successo
Misura di prestazione (valutare – come e quando – il successo atteso, considerato ciò che è stato percepito).
Descrizione/costruzione di un agente
Corrispondenza tra
sequenze di percezioni ed azioni
Un agente può essere descritto attraverso:• un elenco completo delle azioni che può compiere in
risposta ad ogni possibile sequenza di percezioni
o• la definizione delle corrispondenze (funzione di
corrispondenza) senza dover fornire un elenco esaustivo
Agenti razionali
Un agente è un’entità/funzione che agisce, date alcune percezioni
Un agente razionale ideale si descrive attraverso la specifica della lista di azioni che può compiere in risposta a qualsiasi sequenza possibile di percezioni. (progetto/programma di agente ideale)
Un agente è autonomo se è dotato di capacità di apprendimento (che gli permettono di aggiornare le sue conoscenze iniziali)
APf *:
Agenti razionali reali
Limiti computazionali impediscono di raggiungere la perfetta razionalità
Negli agenti razionali reali esisteranno varie modalità per la modellazione di
Autonomia e capacità di apprendimentoValutazione delle prestazioni
Agente con la migliore prestazione come per un qualunque sistema
Progettazione di un agente
Progettare il programma di un agente significa implementare la funzione corrispondenza dalle percezioni alle azioni all’interno di un ambiente e con prestazioni predefinite
Agente = architettura + programma
L’architettura (meccanismo di calcolo) fornisce le percezioni al programma, esegue il programma e trasmette agli attuatori le azioni scelte dal programma.
Progettazione di un agente
Prerequisiti:
Conoscenza dettagliata di:
• tutte le percezioni e le possibili azioni conseguenti• ambiente (per scegliere tra tutte le possibili azioni
quelle che saranno applicabili)• misura delle prestazioni (definita a priori per non
alterare la valutazione)• obiettivi (per selezionare/valutare percezioni ed azioni)
Programma di un agente
Schema:
A fronte della conoscenza precedente e delle percezioni provenienti dall’ambiente (che “aggiornano” eventualmente la conoscenza <> incrementalità)
vengono generate delle azioni congruenti i risultati delle “procedure di decisione”.
L’obiettivo e la misura delle prestazioni vengono applicate esternamente all’agente.
Schema di agente (semplice)
Mantiene memoria della sequenza di percezioni (incrementalità)
Si possono definire sistemi ad agenti cooperanti per applicazioni più complesse
Agente basato su tabella
Tabella totalmente e precedentemente specificata
Agente tiene conto della sequenza delle percezioni consultando la tabella
La tabella non viene aggiornata
Agente basato su tabella
Vantaggi:• Progettazione semplice, completa, efficace
Svantaggi:• Dimensioni sempre crescenti (funzione della complessità
dell’applicazione)• Time-consuming per il progettista• Nessuna autonomia è prevista per l’agente (non necessaria
a causa della totale definizione delle corrispondenze)
In ambiti limitati funzionano bene (ruolo dell’ambiente)
Tipologie di programmi di agente
Agente con riflessi semplici (rispondono alle percezioni)Agenti che tengono conto del mondo (considerano
l’evolversi del mondo circostante)Agenti basati su obiettivi (agiscono per raggiungere i propri
obiettivi)Agenti basati su utilità (cercano di massimizzare le propria
utilità)
Sono agenti specializzati, ovvero ottimizzati rispetto a ciò che vogliamo misurare
Agente con riflessi semplici
regole di produzione if-then-else
Agente con riflessi semplici
Trova la prima regola di produzione in accordo con situazione corrente (definita da percezione)
Compie azione associata
Agente che tiene conto del mondo
Agente che tiene conto del mondo
Trova regola in accordo situazione corrente(definita da percezioni e stato interno)Compie azione associataAggiorna lo stato del mondo
Agenti basati su obiettivi / Pianificatori
Agenti basati su obiettivi / Pianificatori
Conoscere lo stato attualeattuale dell’ambiente non è sufficiente per decidere cosa fare
Bisogna avere un obiettivo
Ricerca di una soluzione al problema
Pianificazione
Agenti basati su utilitàTeoria delle decisioni
Agenti basati su utilitàTeoria delle decisioni
L’utilità è una funzione predefinita che associa ad uno stato (o sequenza di stati se stiamo misurando l’utilità a lungo termine) dell’agente un numero reale che descrive il grado associato di “felicità”
Agenti ed ambienti
Indipendentemente dal tipo di agente, la natura della sua connessione con l’ambiente è di un unico tipo:
le azioni sono fatte dall’agente sull’ambiente, che a sua volta fornisce percezioni all’agente
Agenti ed ambiente
Lo stato dell’agente dipende dalle sue percezioni
Lo stato dell’ambiente dipende dalle azioni di ogni singolo agente
Proprietà degli ambienti
Accessibile / InaccessibileDeterministico / Non deterministicoEpisodico / Non episodico Statico / DinamicoDiscreto / Continuo
Agenti vengono progettati per classi di ambienti
Tipi di ambienti
Il tipo di ambiente determina fortemente il disegno dell’agente
Il mondo reale è:
Inaccessibile, stocastico, sequenziale dinamico e continuo