Intelligenza Artificiale Distribuita

Intelligenza Artificiale Distribuita

Immagina di avere una squadra di robot invece di un solo super-robot. Anche se ognuno di questi robot non è molto intelligente da solo, lavorando insieme possono fare cose molto complicate, proprio come una squadra di calcio dove i giocatori collaborano per vincere la partita.

Ora, l’Intelligenza Artificiale Distribuita (IAD) è come questa squadra di robot.

Si tratta di avere tante piccole intelligenze artificiali che collaborano tra loro per risolvere problemi grandi e complessi.

È un po’ come avere tante api in un alveare:

ogni ape fa il suo lavoro, ma tutte insieme creano qualcosa di grande, come il miele.

L’IAD usa la stessa idea per far sì che macchine diverse lavorino insieme.

In altre parole l’IAD si riferisce a un insieme di tecnologie e metodi che si focalizzano sull’interazione e la collaborazione tra agenti intelligenti multipli, siano essi software, robot o un mix di entrambi, i quali lavorano assieme per risolvere compiti che solitamente sarebbero difficilmente risolvibili dai singoli agenti indipendentemente.

La teoria prevalente dietro alla DAI combina i principi del parallelismo computazionale con elementi della teoria dei giochi, sistemi multi-agente, e intelligenza collettiva. Nella loro collaborazione, gli agenti condividono informazioni, risorse e compiti, coordinandosi per raggiungere obiettivi comuni e/o individuali all’interno di un ambiente dinamico e spesso incerto.

Sistemi Multi-Agente (MAS): Si concentra su agenti autonomi, che possono essere sia collaborativi che competitivi. Essi devono negoziare, coordinarsi, e comunicare tra di loro. Problemi fondamentali studiati in questo settore includono l’allocazione delle risorse, la risoluzione dei conflitti e la strategia di collaborazione.

Problem-Solving Distribuito (DPS) – Si riferisce a processi computazionali in cui i problemi vengono suddivisi in parti più piccole che vengono risolti in modo cooperativo da agenti distinti, spesso situati in diversi nodi di una rete computazionale.

La negoziazione tra agenti

La negoziazione tra agenti in un sistema di Intelligenza Artificiale Distribuita (DAI) può essere ideata come una serie di scambi comunicativi mirati a raggiungere un consenso o una decisione comune.

Questa negoziazione può avvenire seguendo diversi protocolli. Qui, si illustra un esempio di base, ispirato al processo di asta, che è spesso utilizzato in contesti di negoziazione automatica.

I robot fanno qualcosa di simile quando devono scegliere chi fa cosa. Parliamo con esempi:

1) Abbiamo due robot, Robot A e Robot B, e due compiti, Compito 1 e Compito 2.
2) Il Robot A è molto bravo nel fare il Compito 1, e può fare il Compito 2, ma non è il suo forte.
3) Il Robot B è molto bravo nel fare il Compito 2, e può fare il Compito 1, ma preferisce di no.

Quindi, i robot iniziano a “parlare” l’uno con l’altro, usando dei segnali o messaggi. È come se inviassero brevi note:

Robot A scrive: “Preferisco fare il Compito 1 perché sono più veloce.”
Robot B scrive: “Perfetto! Io sono meglio nel Compito 2.”

Così, inviando queste note, si mettono d’accordo. Robot A fa il Compito 1 e Robot B fa il Compito 2. Entrambi hanno preso la decisione migliore possibile molto velocemente.

Vediamolo più concretamente con un esempio in cui oltre ai due robot c’è un sistema centrale:

Immaginiamo un gruppo di robot in un magazzino che devono decidere chi deve prelevare un determinato oggetto per un ordine in arrivo. Ogni robot valuterà se prendere l’oggetto in base alla propria posizione corrente, al livello di carica della batteria, e agli altri compiti che ha già in carico.

Fase 1
Un sistema centrale (o un robot designato) annuncia la necessità di prelevare un oggetto e invita i robot a fare offerte per il compito.

Fase 2
Ciascun robot valuta la propria idoneità per il compito basandosi su criteri quali la distanza dal oggetto, priorità degli attuali incarichi, e carica residua della batteria.

Fase 3
Ogni robot calcola un’offerta in funzione della propria valutazione e invia questa offerta al sistema centrale o agli altri robot.

Fase 4
Il sistema centrale raccoglie tutte le offerte.

Fase 5
Il compito viene assegnato al robot che ha fatto l’offerta più vantaggiosa per il sistema complessivo questo potrebbe essere il robot più vicino, o quello con meno carico di lavoro, o una combinazione di fattori.

Fase 6
Il robot vincitore conferma l’accettazione del compito e procede con l’esecuzione, mentre gli altri robot aggiornano i propri piani di lavoro in base alla nuova assegnazione.

Fase 7
Una volta completato il compito, il robot fornisce un feedback alla centrale, che potrebbe essere utilizzato per ottimizzare le future assegnazioni.

È preferibile che gli algoritmi di negoziazione siano “strategy-proof“, ovvero che non incentivino i partecipanti a fare offerte disoneste per trarne vantaggio.

È importante considerare l‘equilibrio nella distribuzione dei compiti per evitare di sovraccaricare sistematicamente certi agenti.

Si cerca di massimizzare l’efficienza totale del sistema, riducendo i tempi morti e ottimizzando l’uso delle risorse.

Questo processo di negoziazione può essere strutturato in diversi modi, dalla comunicazione diretta tra agenti in un sistema decentralizzato all’uso di un intermediario centrale. Il meccanismo di asta descritto è solo uno dei molti modelli che possono essere usati nella negoziazione tra agenti in contesti di DAI.

Un sistema multi-agente in campo finanziario

Ecco come può funzionare il processo in una situazione semplificata:

Il cliente invia una richiesta di prestito alla banca, fornendo tutte le informazioni necessarie (ad es., dati personali, entrata annua, storia creditizia, importo e scopo del prestito).

Un sistema centrale riceve la richiesta e la distribuisce ai vari agenti. Ogni agente è programmato per valutare aspetti specifici della richiesta, come stabilità lavorativa, affidabilità creditizia, rapporto debito/reddito, ecc.

  • L’Agente di Valutazione del Rischio: Calcola il rischio di default basato sulla storia creditizia e altri fattori finanziari.
  • L’Agente delle Politiche di Prestito: Verifica se la richiesta rispetta le politiche della banca riguardo l’importo, la durata del prestito, ecc.
  • L’Agente Finanziario: Analizza la stabilità economica del richiedente, inclusi lavoro, reddito e altri impegni finanziari.
  • l’Agente di Conformità Legale: Controlla che la richiesta di prestito sia conforme agli standard legali e regolamentari.

Gli agenti comunicano tra di loro per condividere le valutazioni e per negoziare eventuali discrepanze nelle loro valutazioni. Ad esempio, se l’agente di valutazione del rischio identifica un alto rischio ma l’agente finanziario trova che il richiedente ha recentemente migliorato la sua situazione finanziaria, potrebbero negoziare per trovare un compromesso.

Basandosi sull’interazione e sulle negoziazioni, i vari agenti raggiungono una decisione collettiva. Questo risultato può essere:

  • Approvazione del prestito alle condizioni richieste.
  • Approvazione del prestito con condizioni modificate (ad es., importo inferiore, tasso di interesse maggiore).
  • Rifiuto del prestito.

Gli agenti comunicano la decisione al sistema centrale, il quale a sua volta informa il richiedente del risultato e, in caso di approvazione, dei dettagli del prestito.

Gli agenti possono imparare dalle decisioni passate tramite meccanismi di apprendimento automatico per migliorare le loro valutazioni future.

In caso di più richieste di prestito, il sistema multi-agente può valutare simultaneamente o sequenzialmente diverse applicazioni, applicando lo stesso processo di valutazione. Poiché gli agenti operano autonomamente, possono gestire in modo efficiente numerose richieste parallelamente, aumentando l’efficienza del processo decisionale.

Alla base di questi sistemi ci sono algoritmi di ottimizzazione
Approfondisci leggendo i seguenti articoli:

Alla ricerca dell’armonia: Gli Harmony Search Algorithms

Gli algoritmi genetici: La selezione della soluzione più adatta

Volare verso la soluzione del problema: gli algoritmi Particle Swarm Optimization (PSO)

Decisioni eque

I problemi di equità e fair allocation nei sistemi di intelligenza artificiale decisionali (IAD) richiedono un attento esame in quanto le decisioni prese da questi sistemi possono avere impatti significativi e di lungo termine sugli individui.

Prima di tutto, è necessario definire cosa si intende per “equo”. Diversi stakeholder possono avere definizioni diverse di equità. Alcuni possono considerare equo un trattamento uguale per tutti, mentre altri possono enfatizzare l’equità dei risultati, che tengano conto delle disuguaglianze sistemiche esistenti.

Durante la fase di progettazione e sviluppo dei modelli IAD, occorre includere considerazioni di equità. Ciò significa scegliere set di dati per la formazione che siano il più possibile rappresentativi e privi di bias, e comprendere ed eliminare gli eventuali pregiudizi insiti nel dataset.

Bisogna testare I sistemi IAD usando dati e scenari diversi per esplorare come le decisioni possono variare a seconda di diversi gruppi di persone. È possibile anche simulare scenari per valutare gli impatti delle decisioni IAD sulla vita reale delle persone.

L’equità non è un obiettivo “fissato” ma richiede un controllo continuo. Gli algoritmi IAD, infatti, possono sviluppare bias nel tempo a causa dei cambiamenti nei dati di input o nei pattern del mondo reale.

Alcuni aspetti critici

A volte, per valutare l’equità si richiedono dati sensibili che possono violare la privacy degli individui. Inoltre i modelli spiegabili e trasparenti possono non essere all’avanguardia in termini di performance, quindi c’è un trade-off tra equità e accuratezza delle previsioni. Resta anche il fatto che determinare chi è responsabile quando un sistema IAD agisce in modo iniquo è complesso, soprattutto quando tali sistemi sono diffusi e integrati in vari processi decisionali.