Progetto AgentDemo: Versione semplificata di un sistema multi-agente per l'implementazione di un'asta. L'asta prevede la presenza di un banditore e di un numero variabile di partecipanti all'asta. Funzionamento del Protocollo d'asta: Il banditore mette in asta un oggetto con un prezzo iniziale ed apre l'asta per un numero fissato di partecipanti. Quando il numero dei partecipanti richiesto si è registrato per l'apertura dell'asta, banditore spedisce un messaggio di apertura d'asta con l'oggetto bandito ed il prezzo iniziale. I singoli banditori possono accettare di entrare in gioco se interessa l'oggetto bandito altrimenti ritirarsi. Quando il banditore entra in gioco effettua un'offerta tenendo conto del proprio budget. Quando il rialzo supera il budget a disposizione il banditore si ritira. Il banditore attende le offerte dei partecipanti e decreta il vincitore temporaneo spedendo un messaggio a tutti i partecipanti rimasti tali dati. Quando un banditore si ritira viene eliminato dai partecipanti. L'asta termina nel momento in cui rimane un solo partecipante o nessun partecipante. Nel primo caso questo è il vincitore ed il banditore si preoccupa di notificargli la vincita chiudendo l'asta. Namespace AuctionDemo. Il sistema d'asta descritto è stato implementato definendo due diverse tipologie di agente: Template Auctioneer [Auctioneer.cs]: - Rappresenta il banditore dell'asta. - Knowledge: + AuctionData [AuctionData.cs] - mantiene i dati dell'asta - Behaviour: + ManageAuction [ManageAuction.cs] - implementa il ruolo del banditore Template Bidder [Bidder.cs]: - Rappresenta il partecipante all'asta. - Knowledge: + Preferences [Preferences.cs] - mantiene informazioni sulle preferenze + Budget [Budget.cs] - mantiene i dati sul budget del partecipante - Behaviour: + Bid [Bid.cs] - implementa il ruolo de partecipante Nel namespace è inoltre presente una classe batch che permette la realizzaione di un'asta di esempio configurabile con un file opportuno. Compito del batch è leggere i dati del file di configurazione e creare il sistema multi-agente corrispondente inizializzandolo con i parametri specificati.