21
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico 2003-2004

Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito

  • Upload
    julio

  • View
    41

  • Download
    0

Embed Size (px)

DESCRIPTION

Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito. Studente: Luca Monaco. Anno Accademico 2003-2004. Uscita. Ingresso. Introduzione. - PowerPoint PPT Presentation

Citation preview

Page 1: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali

in ambito distribuito

Studente: Luca Monaco

Anno Accademico 2003-2004

Page 2: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

2Progetto di Reti di Calcolatori LS

Introduzione

L’apprendimento induttivo si propone di costruire un’approssimazione di un concetto a partire da un insieme di esempi.

Ingresso

Uscita

Ogni nodo è capace di ricevere richieste di classificazione di nuove istanze e di rispondere in accordo ai dati raccolti da tutti i nodi della rete.

Alberi decisionali come rappresentazione di concetti le cui istanze sono descritte con linguaggi di tipo attributo valore.

Si ipotizza di avere un insieme di nodi capaci di raccogliere esempi nel tempo che dovranno essere utilizzati per creare o aggiornare l’albero decisionale.

Albero Decisionale

Page 3: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

3Progetto di Reti di Calcolatori LS

Obiettivi del progetto

Affrontare ed approfondire le tematiche fondamentali che caratterizzano i sistemi che lavorano in ambiente distribuito.

In particolare verranno studiati i seguenti temi:• Replicazione delle risorse e affidabilità del sistema;

• Rapporti di collaborazione, coordinamento e sincronizzazione tra i vari nodi;

• Recovery da guasti;

• Gestione del carico.

Si desidera costruire un’applicazione che:• Garantisca la coerenza nelle risposte, cioè che indipendentemente dal nodo a cui è

volta una richiesta di classificazione di una nuova istanza, il risultato sia lo stesso;

• Fornisca il supporto necessario alla comunicazione tra i nodi;

• Dia garanzie di affidabilità e disponibilità del servizio;

• Fornisca tutte le funzioni di supporto impegnando in modo minimo le risorse del sistema.

Page 4: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

4Progetto di Reti di Calcolatori LS

Architettura della rete e Replicazione (1)

Un possibile modello: • Considera i nodi della rete esclusivamente

come “sensori”, cioè capaci solo di effettuare osservazioni.

• Una o eventualmente più entità centrali, unici gestori della risorsa (l’albero decisionale) elaborano queste osservazioni.

• Le richieste di classificazione di nuove istanze che pervengono ai vari nodi, vengono delegate verso l’entità centrale.

Problemi del modello:• Molto centralizzato;

• Molto inaffidabile se consideriamo la possibilità che il nodo centrale si guasti.

Ris.

Page 5: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

5Progetto di Reti di Calcolatori LS

Architettura della rete e Replicazione (2)

L’approccio scelto è quello di replicare la risorsa su tutti i nodi.• Ognuno di essi è in grado di rispondere alle

richieste in modo del tutto indipendente dagli altri.

• Vantaggio: Grado di replicazione pari al numero di nodi che compongono la rete:

Alti livelli di affidabilità e disponibilità del sistema.

• Svantaggio: I nodi devono coordinarsi per creare/modificare l’albero decisionale in modo che il suo stato sia sempre aggiornato su tutti i nodi.

Questo è un modello di replicazione attivo• Necessità di introdurre un protocollo efficiente che permetta il coordinamento

dei nodi.

Ris.

Ris.

Ris.

Ris.

Ris.

Page 6: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

6Progetto di Reti di Calcolatori LS

Modello di coordinamento (1)

Un possibile modello:• Ogni nodo per manifestare la propria

esigenza di modificare le risorsa effettua un multicast verso N-1 nodi (se N è il numero di nodi della rete), in cui viene comunicato il nuovo esempio osservato.

• Il mittente, in seguito all’invio di questi messaggi, si aspetta N-1 risposte per verificare che tutti abbiano ricevuto il messaggio.

Problemi del modello:• Necessità di effettuare, ad ogni processo di aggiornamento N multicast:

Troppo costoso in termini di ritardo introdotti, di carico della rete, ecc.; Protocollo troppo intrusivo.

Ris.

Ris.

Ris.

Ris.

Ris.

Page 7: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

7Progetto di Reti di Calcolatori LS

Modello di coordinamento (2)

L’approccio scelto è collegare i nodi in un ring logico, in cui ogni nodo può comunicare solo con il precedente ed il successivo.

Il coordinamento è ottenuto mediante due fasi di comunicazione:• Fase di “raccolta” dei nuovi esempi:

Viene fatto circolare nel ring un messaggio in cui ogni nodo inserisce le nuove osservazioni effettuate.

• Fase di “aggiornamento” delle copie: Gli esempi raccolti nella fase precedente passano di

nodo in nodo, in modo che ognuno possa aggiornare il proprio albero decisionale.

Ris.

Ris.

Ris.

Ris.

Ris.

Page 8: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

8Progetto di Reti di Calcolatori LS

Coordinamento: Confronto trai due modelli

Vantaggi del secondo modello rispetto al primo:• Non è necessario inviare dei messaggi di risposta, infatti la topologia della rete

garantisce che se il messaggio torna al mittente esso è arrivato a tutti i nodi.

• Quando un nodo gestisce una propria richiesta di aggiornamento implicitamente va a gestire le richieste fatte dagl’altri nodi.

• Quindi si ottiene: Forte riduzione dei messaggi da introdurre nella rete e conseguente riduzione

dell’overhead di comunicazione. Forte riduzione del numero di volte che la procedura di aggiornamento viene eseguita. Protocollo meno intrusivo.

Svantaggi:• La caduta di un nodo della rete, se non gestita, può compromettere anche il

servizio degli altri nodi. Necessità di introdurre altri protocolli per gestire eventuali guasti e quindi effettuare il

recovery del ring.

Page 9: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

9Progetto di Reti di Calcolatori LS

Coordinamento: Alcuni dettagli (1)

Il protocollo di coordinamento viene innescato da un certo nodo quando:1. Il nodo è in possesso del token:

• Per evitare conflitti, è necessario che in un certo istante solo un nodo sia gestore delle proprie richieste di aggiornamento ed eventualmente di quelle degli altri nodi.

• Per garantire questa sincronizzazione viene utilizzato un token circolante.

2. In coda sono presenti delle richieste di aggiornamento.

Una richiesta di aggiornamento viene fatta dal nodo stesso quando riceve una nuova osservazione non coperta dall’albero decisionale attuale, cioè con contenuto informativo elevato.• Permette di effettuare l’aggiornamento dell’albero solo quando è necessario.

• Gli esempi osservati coperti vengono mantenuti e utilizzati durante il processo di aggiornamento dell’albero successivo.

Page 10: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

10Progetto di Reti di Calcolatori LS

Coordinamento: Alcuni dettagli (2)

Il protocollo a due fasi garantisce affidabilità e correttezza dell’aggiornamento anche se cade il nodo gestore del processo (in possesso del token). Infatti le situazione che possono verificarsi sono tre:1. Il nodo cade prima dell’inizio della prima fase:

Bisogna solo rigenerare il token;

2. Il nodo cade dopo l’inizio della prima fase e prima dell’inizio della seconda: La lista delle nuove osservazioni effettuate e la coda della richieste di aggiornamento di

ogni nodo vengono resettate solo nella seconda fase. Anche in questo caso è necessario solo rigenerare il token;

3. Il nodo cade dopo l’inizio della seconda fase: Gli altri nodi effettuano l’aggiornamento normalmente; Anche in questo caso è necessario solo rigenerare il token;

Page 11: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

11Progetto di Reti di Calcolatori LS

Problemi di gestione di una rete ad anello

Dinamicità dei nodi partecipanti:• Possibilità per un nodo di entrare volontariamente nella rete;

• Possibilità di uscirne in modo da non provocare problemi agl’altri nodi ancora connessi.

Guasto su un nodo della rete:• Ipotesi semplificativa di guasto singolo, cioè è possibile che cada solo un nodo

alla volta;

• Individuazione del nodo che ha subito il guasto;

• Procedure per il recovery del ring;

• Due situazioni possibili:1. Guasto di un nodo senza token;

2. Guasto di un nodo in possesso del token. Rigenerazione del token.

Page 12: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

12Progetto di Reti di Calcolatori LS

Ingresso/Uscita volontaria di un nodo

Quando un nodo vuole entrare fa una precisa richiesta ad uno dei nodi già “on-line”, che diventerà gestore di questo cambiamento:• Informa tutti i nodi del nuovo ingresso, introducendo

nel ring un apposito messaggio “NewCloser Message” attraverso il quale ogni nodo:

Aggiorna i propri riferimenti ai suoi vicini; Eventualmente elimina le vecchie connessioni e crea le

nuove.

• Inizializza lo stato del nodo entrante inviandogli il Training Set osservato dai nodi fino a quel momento.

Ris.

Ris.

Ris.

Ris.

Ris.

Similmente quando un nodo vuole uscire dalla rete, avvisa con un opportuno messaggio il suo successivo, incaricandolo di occuparsi di questo cambiamento.• Fa circolare un messaggio “NewCloserMessage”

Ris.

Ris.

Ris.

Ris.

Ris.

Page 13: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

13Progetto di Reti di Calcolatori LS

Meccanismi di rilevazione del guasto

Meccanismo 1: • Quando vengono inviati alcune informazioni chiave, come il Token o

l’Election Token, è richiesto che il ricevente invii al mittente un messaggio di risposta (ack), in modo che questo abbia la garazia di aver inoltrato le informazioni a un nodo funzionante.

Nodo M

Nodo R

• Se la risposta non arriva entro lo scadere di un certo timeout, si può ipotizzare che il nodo ricevente sia caduto, quindi attivare una procedura di recovery.

Meccanismo 2: • La connessione dei nodi ad anello garantisce che quando viene inviato un

messaggio, esso dopo un certo tempo torna al mittente (se non ci sono stati problemi).

• Se allo scadere di un certo tempo massimo il messaggio non ancora torna al mittente, viene innescata una procedura di rilevamento del nodo simile a quella vista prima: ogni nodo invia un messaggio di “AreYouAlive” al suo successivo.

Page 14: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

14Progetto di Reti di Calcolatori LS

Recovery del ring

Chi è che individua il nodo caduto? Nei meccanismi descritti in precedenza è il suo nodo precedente che

non riceve risposta entro lo scadere di un timeout.

Il nodo che individua un guasto sul suo successivo:• Stabilisce una nuova connessione con il suo secondo successivo;

Necessità di conoscere anche l’indirizzo del secondo nodo successivo.

• Lo informa attraverso l’invio di uno specifico messaggio della situazione.

Chi ha la responsabilità di effettuare la procedura di recovery? Il nodo successivo a quello caduto. Si comporta come se il suo nodo precedente abbia richiesto volontariamente l’uscita

dal ring: Informa tutti i nodi del cambiamento, introducendo nel ring un apposito messaggio

“NewCloserMessage” attraverso il quale ogni nodo: Aggiorna i propri riferimenti ai suoi vicini; Eventualmente elimina le vecchie connessioni e crea le nuove.

Trasparenza nella gestione dell’uscita di un nodo.

Page 15: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

15Progetto di Reti di Calcolatori LS

Guasto di un nodo in possesso del token

Previsti dei timeout che per ogni nodo “misurano” da quanto tempo non passa il token e allo scadere dei quali viene innescato un protocollo di elezione per la generazione di un nuovo token.

Protocollo di elezione:

• Allo scadere di uno di questi timeout, se il nodo non ha ricevuto altri token di elezione (ET) creati da nodi più prioritari di lui, ne genera uno che riporta il suo nome.

• Se un nodo riceve un ET da un altro nodo e anche lui ha generato un ET di maggiore priorità, lo scarta.

• L’ET viene fatto circolare nel ring e quando torna al nodo che lo ha creato se:a) Mentre l’ET circolava il nodo ha ricevuto il token

La procedura di elezione viene sospesa.

b) Mentre l’ET circolava è passato un ET più prioritario. L’ET creato viene scartato.

c) Altrimenti Il nodo è stato eletto per creare il nuovo token.

Page 16: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

16Progetto di Reti di Calcolatori LS

Alcuni dettagli sul meccanismo di elezione

Uno dei motivi possibili per cui un nodo non riceve il token entro il tempo limite prefissato è il fallimento del nodo che lo possedeva. Se andassimo ad innescare immediatamente il protocollo di elezione non

riusciremmo a portare a termine la procedura, poichè il nodo fallito impedirebbe la circolazione degli ET.

Prima di iniziare il protocollo di elezione bisogna accertarsi dell’integrità dell’anello.

Si considera il messaggio di invio dell’Election Token come un messaggio del tipo “AreYouAlive”, al quale cioè si richiede che il ricevente risponda con un messaggio che informi il mittente che il suo successore funziona correttamente.

Se un certo nodo non riceve il messaggio di risposta entro un certo tempo predefinito, attiva la procedura di recovery discussa in precedenza.

Page 17: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

17Progetto di Reti di Calcolatori LS

Gestione del carico

Quando viene servita una richiesta di aggiornamento dell’albero tutti i nodi eseguono il suo ricalcolo. Da questo punto di vista i nodi vengono caricati tutti allo stesso modo.

Il contributo che differenzia il carico sui vari nodi è dovuto alla gestione delle richieste di classificazione.

Una possibile soluzione è realizzare un sistema di Load Sharing che permetta di allocare le richieste, prima che inizi la loro esecuzione, considerando la situazione di carico di tutti i nodi della rete:• Quando un nodo riceve una richiesta di classificazione viene fatto circolare

nell’anello un messaggio che registra la disponibilità e l’identità del nodo più scarico;

• Quando il messaggio torna al mittente la richiesta viene ridirezionata verso il nodo individuato.

Si può rilassare il protocollo attivando la procedura solo quando il numero di richiesta in coda supera un certo limite.

Page 18: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

18Progetto di Reti di Calcolatori LS

Struttura di un nodo (1)

Si possono individuare due categorie di componenti:1. Componenti Applicativi:

• Classificatore;• Nuovi Esempi;• TSglobale.

2. Componenti di Supporto: Quelli che forniscono al nodo le capacità di comunicazione e di integrazione in un gruppo.

Ogni nodo che appartiene al ring deve essere in grado di:1. Ricevere messaggi dal precedente Svolgere il ruolo di Server;

2. Inviare messaggi verso il successivo Svolgere il ruolo di Client. Necessità di due Thread distinti, dato che l’azione di ascolto del Server è

sospensiva.

Server Manager

Porta

Client Manager

Porta

IP

inoltra

Gestore Rete

Gestore

classif.

NuoviEsempi

TSglobale

Classifica-toreIP

Page 19: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

19Progetto di Reti di Calcolatori LS

Struttura di un nodo (2)

Un nodo deve poter gestire richieste:• Di aggiornamento dell’albero decisionale;

• Di ingresso/uscita dalla rete di altri nodi;

• Di classificazione di nuove istanze.

Sono stati costruiti due processi:1. Il primo si occupa della gestione delle richieste che attivano l’inizio di uno

o più protocolli di interazione fra i nodi al fine di poter modificare lo stato della rete o dei nodi in modo coerente e affidabile.• È attivo solo quando il nodo è in possesso del token.

2. Il secondo si occupa di gestire le sole richieste di classificazione.• Viene sospeso durante la fase di aggiornamento dell’albero.

Per realizzare una politica fair nei confronti delle richieste pendenti su altri punti della rete, un nodo quando riceve il token gestisce solo una richiesta per ogni coda, gestita in modo FIFO.

Page 20: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

20Progetto di Reti di Calcolatori LS

Conclusioni

Replicare la risorsa (l’albero decisionale) su ogni nodo ha consentito di realizzare un sistema con altissimi livelli di affidabilità e disponibilità.

L’utilizzo di una topologia di rete ad anello ha da un lato introdotto notevoli vantaggi in termini di efficienza sul coordinamento dei nodi, dall’altro ha richiesto l’introduzione di alcuni protocolli di supporto per la sua manutenzione.

Grazie alla realizzazione del progetto sono stati esplorati alcuni temi fondamentali della progettazione in ambito distribuito:• Modelli di Replicazione e Coordinamento;• Tolleranza ai guasti;• Sincronizzazione• Gestione del carico.

Page 21: Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali  in ambito distribuito

21Progetto di Reti di Calcolatori LS

Bibliografia

Dispense di Reti di Calcolatori LA e Reti di Calcolatori LS del Prof. Corradi.

Andrew S. Tanebaum, “Reti di Computer”, Prentice Hall International.