Agenti Intelligenti

Cos’è un agente intelligente?

Agenti IntelligentiGli agenti intelligenti sono entità di vario tipo capaci di percepire l’ambiente circostante con l’utilizzo di sensori e di mettere in atto specifiche azioni per mezzo di attuatori. Nel caso dell’uomo i sensori possono essere occhi e orecchie, mentre gli attuatori sono mani e piedi. Ovviamente nell’ambito dell’intelligenza artificiale si tratta di apparecchiature specifiche, ma l’aspetto più importante non è l’oggetto utilizzato bensì la sua realizzazione. L’obiettivo è essenziale e consiste nel creare un agente intelligente che, per definizione, deve fare la cosa giusta al momento giusto. Quindi, come accade per le diverse apparecchiature dell’intelligenza artificiale, è molto importante programmare gli agenti intelligenti definendo le azioni da compiere e le situazioni in cui agire. Il modello deve essere stabilito a priori. Ciò permette anche di effettuare un confronto tra i risultati ottenuti.

A titolo esemplificativo, per meglio comprendere la procedura di confronto, si ipotizzi di avere due agenti intelligenti impegnati nella soluzione del medesimo puzzle. Per verificare il lavoro svolto e la sua qualità si potranno calcolare il numero dei pezzi incastrati. In questo modo si potrà conoscere come è stata eseguita l’azione e si faranno esami sulle prestazioni in un dato lasso di tempo. Ovviamente gli agenti potrebbero essere stati concepiti con qualche differenza o con strumenti informatici diversi, quindi se si effettuasse una misurazione temporale riferita a un periodo breve si noterebbe che le migliori performance deriverebbero dagli agenti più veloci. Ripetendo il test dopo un’ora il risultato probabilmente cambierebbe perché l’agente partito lentamente potrebbe aver messo insieme più pezzi.

Va tenuto presente che gli agenti tendono ad ottimizzare le proprie performance, cercando di massimizzarle, in base alle proprie percezioni. Non si tratta solamente dell’esecuzione di un lavoro, ma anche della raccolta di informazioni. In ogni modo, a prescindere dallo scopo con cui si realizza un agente intelligente, la procedura da seguire è la stessa. In linea generale si devono unire un programma informatico e l’architettura. Quest’ultima non è altro che l’hardware che ha il compito fisico di eseguire i calcoli, ovvero un computer oppure un robot. A guidare la macchina ci pensano gli algoritmi, scritti appositamente per far compiere alla macchina specifici compiti in determinate situazioni.

La descrizione dell’agente intelligente avviene attraverso l’ambito d’impiego, percezioni usate, obiettivi perseguiti e azioni compiute. L’acronimo inglese PAGE (Percepts, Actions, Goals, Environment) serve proprio a definire l’agente e a indicare le caratteristiche. Tornando all’esempio del puzzle si può esaminare l’apparecchio di intelligenza artificiale in questo modo:

  • le percezioni consistono nei pixel delle immagini dei singoli pezzi del puzzle;
  • le azioni riguardano la raccolta delle tessere e il relativo incastro;
  • l’obiettivo è quello di completare il puzzle;
  • l’ambiente in cui opera è dato dal tavolo su cui poggiano le varie tessere del puzzle.

Gli agenti dell’intelligenza artificiale

Gli agenti intelligenti possono essere di vario tipo e vengono suddivisi tra agenti e sotto-agenti a seconda delle peculiarità, sempre tenendo presente la loro composizione PAGE. Si possono ad esempio avere agenti fisici, realizzati con sensori e attuatori, oppure gli agenti temporali che usano informazioni basate sul tempo per fornire istruzioni e raccogliere input per modificare i comportamenti successivi alla situazione esaminata. Con la matematica si può prevedere un programma più complesso perché si crea una sequenza di percezioni per un’unica azione di cui poi deve essere fornito un feedback. Si sfrutta l’intelligenza artificiale per fare in modo che il sistema selezioni diversi elementi per attuare l’azione corrispondente. La traduzione matematica della funzione passa attraverso una formula: f : P ∗ -> A.

A determinare la classificazione degli agenti è il grado di intelligenza percepita e alle abilità. Seguendo questi elementi si ottengono 5 classi:

  • Agenti con riflessi sempliciagenti con riflessi semplici, con il compito solamente di reagire a una determinata azione esterna. Utilizzano solamente la percezione corrente e seguono la regola condizione-azione. Generalmente questo tipo di agente intelligente viene impiegato unicamente in ambiente completamente controllabili, considerando comunque che tali agenti contengono informazioni sul proprio stato corrente, così da facilitare il compito del monitoraggio e da trascurare le condizioni degli attuatori;
  • agenti con riflessi basati su un preciso modello. Tali hardware possono operare in ambienti parzialmente controllabili. L’agente memorizza il proprio stato e consente di avere dati che descrivono ambiti che non possono essere osservati in condizioni normali. Vanno abbinati i dati raccolti con altre informazioni conosciute dagli operatori per poter avere una fotografia completa e precisa dell’ambiente in cui si intende lavorare;
  • agenti operanti per obiettivi agiscono memorizzando l’informazione su situazioni desiderabili. In questo caso l’agente ha il compito di selezionare la migliore tra diverse possibilità per riuscire a raggiungere l’obiettivo;
  • agenti improntati all’utilità hanno la sola possibilità di fare una distinzione tra stati goal e non-goal. Definiscono le misure circa la desiderabilità di ogni stato, da stabilire attraverso una funzione d’utilità che mappa i valori delle stesse utilità;
  • agenti che lavorano sull’apprendimento, una tipologia di intelligenza artificiale autonoma. Le azioni vengono compiute in maniera indipendente e il software è in grado di adattarsi alle più diverse condizioni in evoluzione. Questo tipo di agenti intelligenti devono possedere caratteristiche specifiche: capacità di imparare attraverso l’interazione con l’ambiente; adattamento online e in tempo reale; imparare velocemente e acquisire una quantità elevata di informazioni; accogliere nuove regole per migliorare la risoluzione dei problemi; detenere una memoria ampia con la capacità di recupero; avere parametri per selezionare le informazioni dalla memoria tenendo conto di vari criteri; avere la capacità di esaminare i comportamenti inclusivi di sbagli e successi.

Al fine di ottenere la massima efficienza degli agenti intelligenti è necessario organizzare una struttura gerarchica composta da svariati sub-agenti concepiti per svolgere mansioni di basso livello o comunque limitate. Generalmente operano insieme agli agenti facendo sistema insieme per riuscire ad affrontare compiti di maggiore difficoltà o che richiedono una certa forma di intelligenza.

Ecco alcune tipologie di sotto-agenti:

  • agenti temporali che basano le proprie decisioni sul tempo;
  • agenti spaziali che applicano la fisica del mondo reale;
  • agenti di input che si occupano di elaborare le informazioni ricevute attraverso i sensori, ne sono un esempio le reti neurali;
  • agenti di elaborazione capaci di attuare la risoluzione dei problemi, ne sono esempi i sistemi dotati di riconoscimento vocale;
  • agenti decisionali che sono in grado di prendere decisioni in maniera autonoma;
  • agenti dell’apprendimento che acquisiscono dati e li ordinano creando un database.Tutti questi elementi possono essere combinati tra loro ed essere parte di un agente per apportare le funzioni utili a chi li detiene.

L’applicazione nell’ambito della computer science

Esistono sul mercato alcuni agenti semi-intelligenti, così classificati dagli esperti canadesi per la loro limitatezza nell’esecuzione delle azioni. In particolare le caratteristiche di tali sistemi sono la mancanza di complessità, un processo decisionale limitato, la poca capacità di apprendimento e una visione del mondo non molto sviluppata. Ce ne sono di 4 tipi:

  • agenti acquirenti;
  • agenti personali;
  • agenti per il monitoraggio e per la sorveglianza;
  • agenti per la ricerca dei dati.

Le loro peculiarità permettono l’uso in ambienti in cui si devono eseguire azioni ripetitive e molto semplici.

Sistemi tra più agenti e comunicazione tra loro

Sistemi multiagente
Sistemi multiagente: due agenti puntano allo stesso obiettivo ma non possono condividere la stessa casella.

Oggetto di ricerche e studi sullo sviluppo dell’intelligenza artificiale sono i sistemi multi-agente, composti da più agenti che interagiscono tra loro e attuano una comunicazione volta allo scambio di messaggi. La loro architettura permette di definire la struttura interna o di modellare l’insieme di agenti che svolgono azioni di alto livello ricoprendo ruoli differenti. Ciascun agente interagisce con l’ambiente in modo indipendente rispetto agli altri e lo fa con precisi criteri e preferenze specifiche. Per questa ragione mettere in comunicazione i diversi agenti risulta complesso. Si deve trovare un accordo che punta a un obiettivo comune, in modo da favorire la cooperazione tra gli stessi agenti coinvolti nel sistema multiplo. Va impostata la comunicazione seguendo la teoria degli atti linguistici che permette di concepire il linguaggio come un’azione da compiere. Devono essere infatti impostate azioni comunicative nei singoli agenti intelligenti. Si deve intervenire su due aspetti essenziali: il formato dei messaggi e la rappresentazione dei contenuti. Affinché gli agenti possano scambiare informazioni e interagire tra loro per risolvere problemi più complessi partendo da ruoli differenti è bene che possano lavorare parlando la medesima lingua. Lavorando sulla negoziazione e sulla coordinazione si arriva a proposte di approccio e di protocolli adeguati alle esigenze e alle condizioni dei vari sistemi. Grazie al lavoro in tale direzione sono stati creati linguaggi appositi che permettono di mettere in relazione hardware diversi, ma ovviamente tutto dipende dalla programmazione iniziale del software, che deve permettere di accedere a un sistema di diversi agenti da unire tra loro perché possano trasmettere le informazioni e riceverle riuscendo a comprenderle e a elaborarle.

Agenti intelligenti e internet

Internet cresce sempre di più e questo comporta la presenza di un’enorme quantità di dati che devono essere conservati, messi a disposizione ed elaborati. Gli utenti cominciano a riscontrare le prime difficoltà a districarsi in un mare di informazioni. I motori di ricerca non sono in grado di garantire l’efficienza, ma mostrano alcune lacune che impediscono di dare una risposta adeguata al largo uso che ne fanno gli utenti. Per riuscire a filtrare i diversi link, come accade per l’esplorazione dei grandi database aziendali, servono dei sistemi più avanzati. La struttura centralizzata dei motori di ricerca non è in linea con la dinamicità di internet e neppure con l’eterogeneità delle informazioni presenti sul web. In questo contesto gli agenti intelligenti vengono proposti come soluzione ideale per ovviare ai limiti dei motori di ricerca. Si presentano come validi assistenti degli utenti per assicurare un supporto per l’assolvimento di determinati compiti. Uno degli elementi maggiormente positivi è la loro capacità di adattarsi per migliorare la qualità del servizio offerto.

I settori, in relazione all’utilizzo di internet e degli strumenti collegati, in cui si impiegano gli agenti intelligenti sono:

  • la posta elettronica e i messaggi in formato digitale: la corrispondenza trasmessa e ricevuta con computer e dispositivi tecnologici viene organizzata e classificata secondo le preferenze dell’utente;
  • l’interfaccia utente adattabile: serve ad assistere la persona in diverse attività. In questi casi il software può studiare e monitorare il comportamento dell’utente così da generare un profilo e intervenire adeguatamente per rispondere alle reali esigenze dell’utente;
  • l’accesso e la gestione delle informazioni: l’agente intelligente si occupa di ricercare, filtrare, suddividere e memorizzare in modo selettivo i dati desiderati dall’utenti e contenuti in un database o in internet;
  • il commercio elettronico (e-commerce): un ambito in costante crescita e sempre più utilizzato dagli acquirenti. L’uso di un agente intelligente consente di cercare il negozio online secondo specifiche caratteristiche come ad esempio la qualità dei prodotti, il prezzo e così via.

Le applicazioni

Tecnici ed esperti del settore hanno già messo sul mercato alcuni prodotti all’avanguardia per far fronte all’esigenza degli utenti di avere strumenti utili a gestire le ricerche, a catalogare le informazioni e a selezionarle per conto dell’utilizzatore.

Tra gli agenti intelligenti più noti del settore si trovano:

  • Internet Softbot che svolge l’attività di assistente personale nella gestione delle risorse specificando gli obiettivi in una notazione simile al linguaggio naturale;
  • ShopBot che supporta l’utente nell’acquisto dei prodotti rintracciando la descrizione degli articoli e le notizie relative;
  • SavvySearch che lavora come un motore di ricerca ma con una maggiore efficienza, specialmente nel rintracciare link rilevanti secondo la ricerca dell’utente;
  • Ahoy! che consente di trovare le homepage personali, solitamente fornendo un risultato trascurato dai tradizionali motori di ricerca;
  • WebWatcher che individua siti internet per rilevanza secondo le preferenze dell’utente;
  • SysKill & Webert che crea profili personalizzati degli utenti per identificare le pagine internet di interesse per l’utente;
  • Occam che seleziona i siti internet in base agli input forniti dall’utente per fornire una risposta precisa all’utilizzatore e soprattutto ai suoi criteri di ricerca. In questo modo si raggiungono i siti desiderati eliminando i link non appropriati.

Presente e futuro

L’evoluzione dell’intelligenza artificiale ha portato ad affrontare e risolvere diverse problematiche legate alla gestione e all’impiego degli agenti intelligenti. In questo contesto oggi si può dire che lo sviluppo di internet ha permesso agli utenti di partecipare attivamente alla creazione di contenuti e quindi la base di conoscenza presente sul web viene scritta in modo collaborativo. Ci sono inoltre i social network che stanno crescendo e lasciano pensare alla nascita di una nuova generazione di web intelligente e sociale. In tempi recenti sono nati gli assistenti personali per l’utilizzo di internet e dei computer ed è proprio in questo ambito che si sono diffusi gli agenti. L’espletamento di questa funzione viene sempre più spesso affidata a macchinari dotati di intelligenza artificiale perché sono in grado di rispondere adeguatamente alle richieste dell’utenza. Chiaramente la loro programmazione è andata via via migliorando: i tecnici hanno osservato il comportamento degli utilizzatori, studiato le loro esigenze e messo a punto l’interazione tra uomo e macchina. Uno dei sistemi impiegati è stato proprio quello di apprendimento automatico per riuscire e incrementare la base di conoscenza e le abilità di selezione delle informazioni per fornire le risposte.

Al momento non ci si è certamente fermati con la ricerca e con l’ulteriore miglioramento degli agenti intelligenti, per questo motivo non si può delineare con precisione il futuro, ma si può riflettere sullo scenario che si delinea partendo dallo stato attuale dell’intelligenza artificiale. Nel tempo le parole ‘agenti’ e ‘intelligenti’ sono state utilizzate unitamente e separatamente perché tali sistemi erano concepiti per occuparsi di questioni per cui era richiesta una certa intelligenza, ovvero la conoscenza unita alla capacità di decidere rapidamente e di adottare le misure più opportune. L’abilità di comunicare è certamente una caratteristica distintiva, ma vanno diversificate le tipologie di agenti:

  • agenti in grado di comunicare con altri agenti nell’ambito delle architetture multi-agente;
  • agenti con l’abilità di interagire con l’utente attraverso interfacce intelligenti.
    I primi basano la loro attività sul meccanismo di comunicazione tra macchinari in maniera automatica, mentre i secondi l’elemento chiave è rappresentato dall’abilità di svolgere attività in cui si deve utilizzare l’intelligenza per comunicare e assistere con l’utente.

Naturalmente si possono creare modelli ibridi perché possano assolvere entrambi i compiti approcciandosi ad altri agenti e alle persone umane. In questi casi ci sono studi specifici perché la loro realizzazione risulta essere alquanto complessa, ma ne esistono già alcuni modelli che potranno essere migliorati con il lavoro svolto dai tecnici che stanno provando nuovi algoritmi per i software da applicare. Disporre di un’unica macchina o un sistema messo a punto con agenti che possano scambiare informazioni e interagire con l’utente è l’obiettivo di aziende ed enti operanti nei diversi settori, ma a costituire un’utilità non sono solamente i software, ma anche gli hardware che migliorano le prestazioni e facilitano lo svolgimento delle operazioni.