24.05.2013 Views

Presentazione standard di PowerPoint - Emanuele Cipolla

Presentazione standard di PowerPoint - Emanuele Cipolla

Presentazione standard di PowerPoint - Emanuele Cipolla

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Controllo intelligente del sistema<br />

<strong>di</strong> con<strong>di</strong>zionamento ambientale <strong>di</strong> e<strong>di</strong>fici<br />

Università degli Stu<strong>di</strong> <strong>di</strong> Palermo<br />

Facoltà <strong>di</strong> Ingegneria - Corso <strong>di</strong> Laurea Magistrale in Ingegneria Informatica<br />

Tesina <strong>di</strong> Intelligenza Artificiale<br />

Titolare del corso: Prof. Salvatore Gaglio<br />

Tutor: Ing. Alessandra De Paola<br />

A cura <strong>di</strong><br />

<strong>Emanuele</strong> <strong>Cipolla</strong> (matricola 0578327)<br />

Nicolò Monte (matricola 0584439)<br />

A.A. 2011/2012


• Introduzione storica<br />

• Algoritmi genetici<br />

• Ambiente <strong>di</strong> sviluppo<br />

• Sperimentazioni<br />

• Risultati<br />

• Sviluppi futuri<br />

Cosa vedremo<br />

2


Algoritmi genetici – accezione<br />

biologica<br />

• Generazione inziale <strong>di</strong> in<strong>di</strong>vidui<br />

• Idoneità e selezione<br />

• Accoppiamento e mutazione genetica<br />

• Selezione e rimpiazzamento<br />

• Arresto dell’algoritmo<br />

Mating- pool<br />

3


Algoritmi genetici - caratteristiche<br />

• Crescita dell’idoneità me<strong>di</strong>a<br />

• Capacità esplorativa<br />

Ricombinazione genetica<br />

Mutazioni genetica<br />

Convergenza verso<br />

soluzioni ottime<br />

Tecnica <strong>di</strong> ottimizzazione<br />

4


1010010|0001000|0010<br />

Algoritmi genetici – Co<strong>di</strong>fica<br />

82|8|10 122|8|A 52|10|12<br />

• Co<strong>di</strong>fica binaria, ottale, esadecimale, reale:<br />

(avanti)|(avanti)|(in<strong>di</strong>etro)|(sotto) 23-4BF|++ABD--|0-++---|K++07<br />

5


Algoritmi genetici – Inizializzazione e<br />

Scelta della funzione <strong>di</strong> fitness:<br />

Coerente con il problema da risolvere<br />

Non deve causare problemi <strong>di</strong> minimi locali<br />

Non deve rallentare l’algoritmo<br />

fitness<br />

6


Or<strong>di</strong>namento e selezione – parte 1<br />

• Selezione a troncamento:<br />

In<strong>di</strong>vidui selezionati<br />

7


Or<strong>di</strong>namento e selezione – parte 4<br />

• Selezione a torneo:<br />

Si scelgono ‘n’ in<strong>di</strong>vidui con probabilità <strong>di</strong> scelta uniforme<br />

Si attua un torneo tra questi in<strong>di</strong>vidui e vince il più idoneo o i ‘k’ più idonei<br />

I vincitori andranno al mating-pool<br />

Vantaggi<br />

Evita possibilità <strong>di</strong> minimi locali<br />

Si può sfruttare il parallelismo<br />

La tecniche <strong>di</strong><br />

selezione più<br />

usata<br />

9


Or<strong>di</strong>namento e selezione – parte 5<br />

• Elitarismo:<br />

Si scelgono ‘n’ in<strong>di</strong>vidui più idonei e si copiano nella generazione successiva senza<br />

ulteriori meccanismi<br />

Evita che vengano scartate, tra una generazione e l’altra, le soluzioni idonee<br />

Vantaggio L’algoritmo convergerà prima<br />

Svantaggio<br />

Riduce l’indole esplorativa dell’algoritmo<br />

10


Ricombinazione<br />

• Si selezionano gli in<strong>di</strong>vidui dal mating-pool<br />

• Si applica l’operatore <strong>di</strong> cross-over<br />

• Probabilità <strong>di</strong> cross-over:<br />

P(c) = 0<br />

P(c) = 1<br />

E <strong>di</strong> trovare una<br />

modalità <strong>di</strong> trasmissione<br />

I figli saranno copie esatte <strong>di</strong> alcuni<br />

in<strong>di</strong>vidui del mating-pool<br />

Tutti i figli saranno frutto <strong>di</strong><br />

ricombinazione<br />

Si preoccupa <strong>di</strong> selezionare<br />

parte del patrimonio da<br />

trasmettere<br />

Problema <strong>di</strong> <strong>di</strong>storsione<br />

Rappresenta quanto<br />

spesso l’operatore <strong>di</strong><br />

cross-over opererà sul<br />

mating-pool<br />

11


Ricombinazione – Tecniche<br />

• Cross-over ad un punto:<br />

• Cross-over a due punti:<br />

risulta migliore se la testa e la coda del padre hanno<br />

caratteristiche <strong>di</strong> idoneità<br />

12


Mutazione<br />

• Ricombinazione vs. crossover:<br />

• Vantaggi:<br />

• Svantaggio:<br />

Non genera nuovo patrimonio genetico, muta quello nuovo<br />

Invece <strong>di</strong> esserci due genitori e due figli, un genitore muta<br />

in figlio<br />

Accresce la capacità esplorative dell’algoritmo<br />

Aiuta ad evitare i problemi <strong>di</strong> minimo locale<br />

Può causare la per<strong>di</strong>ta <strong>di</strong> convergenza<br />

Probabilità <strong>di</strong> mutazione molto bassa<br />

13


Rimpiazzamento - Introduzione<br />

• i possibili can<strong>di</strong>dati sono da ricercare sia tra gli in<strong>di</strong>vidui della vecchia<br />

generazione che sono sopravvissuti che tra i figli<br />

• Il numero <strong>di</strong> in<strong>di</strong>vidui appartenenti alle ultime due categorie influenza<br />

in maniera significativa la velocità <strong>di</strong> convergenza in quanto<br />

un numero basso <strong>di</strong> questi in<strong>di</strong>vidui significa<br />

un basso ricambio generazionale e quin<strong>di</strong> ci<br />

vorranno più iterazioni per giungere a<br />

in<strong>di</strong>vidui ottimi<br />

un eccessivo ricambio <strong>di</strong> in<strong>di</strong>vidui<br />

renderebbe l’algoritmo instabile nel senso<br />

che parecchi in<strong>di</strong>vidui buoni trovati nelle<br />

generazioni precedenti verrebbero sostituiti<br />

con dei nuovi non necessariamente idonei<br />

14


Rimpiazzamento - Tecniche<br />

• Sostituzione dei genitori:<br />

• Sostituzione dei genitori deboli:<br />

• Sostituzione casuale<br />

La coppia <strong>di</strong> figli sostituisce la coppia <strong>di</strong> genitori<br />

Non può essere accoppiata ad una tecnica <strong>di</strong><br />

selezione che esclude gli in<strong>di</strong>vidui più deboli<br />

Tra i quattro in<strong>di</strong>vidui passano solo i due più farti<br />

Non può essere accoppiata ad una tecnica <strong>di</strong><br />

selezione che seleziona per il mating-pool solo i più<br />

forti<br />

15


Con<strong>di</strong>zioni <strong>di</strong> arresto e criteri <strong>di</strong><br />

• Numero massimo <strong>di</strong> generazioni<br />

• Tempo scaduto<br />

• Invarianza <strong>di</strong> fitness<br />

convergenza<br />

• Convergenza del miglior in<strong>di</strong>viduo: l’algoritmo verrà stoppato non<br />

appena la popolazione corrente presenterà la fitness minore al <strong>di</strong> sotto<br />

<strong>di</strong> un valore <strong>di</strong> convergenza<br />

Somma dei valori <strong>di</strong> fitness: se la somma <strong>di</strong> tutte le fitness è minore o<br />

uguale <strong>di</strong> un valore prefissato; ciò assicura che ogni in<strong>di</strong>viduo della<br />

popolazione stia in un certo intorno <strong>di</strong> valore <strong>di</strong> fitness. Questo criterio <strong>di</strong><br />

velocizza la convergenza, se accoppiato ad una tecnica <strong>di</strong> sostituzione<br />

che elimina gli in<strong>di</strong>vidui peggiori<br />

16


Algoritmi multi-obiettivo - Generalità<br />

• Il problema si articola in obbiettivi <strong>di</strong>versi<br />

• Gli obbiettivi devono essere in conflitto tra <strong>di</strong> loro<br />

• Non avremo più una soluzione ottima<br />

17


Algoritmi multi-obiettivo – Le funzioni<br />

Grafico nello spazio <strong>di</strong> ricerca<br />

Grafico nello spazio delle<br />

soluzioni<br />

obiettivo<br />

18


Algoritmi multi-obiettivo – il<br />

meccanismo <strong>di</strong> ranking<br />

Nel caso degli algoritmi singolo obiettivo<br />

Nel caso degli algoritmi multi-obbiettvo<br />

• Sia ‘m’ il numero degli obbietti<br />

• Sia il problema <strong>di</strong> minimo<br />

• Si denoti con xi l’i-esima soluzione<br />

• Sia f(x1) la fitness della sol. x1<br />

Calcolo della fitness e ranking<br />

coincidono<br />

Dominanza:<br />

X1 domina X2<br />

19


Algoritmi multi-obiettivo – Esempio<br />

Primo fronte<br />

dominanza<br />

20


Algoritmi multi-obiettivo – L’insieme<br />

ottimo <strong>di</strong> Pareto<br />

Definizione: è l’insieme <strong>di</strong> tutte le soluzioni ottime del problema multi-obiettivo, su<br />

tutto lo spazio ricerca ammissibile<br />

L’insieme ottimo <strong>di</strong> Pareto è tipicamente infinito<br />

Vedremo la tecnica<br />

utilizzata da NSGA-II<br />

Ci accontentiamo <strong>di</strong> un<br />

insieme che meglio lo<br />

rappresenti<br />

Non basterà attingere dal<br />

primo fronte<br />

21


NSGA-II: Inizializzazione,Ranking e<br />

or<strong>di</strong>namento<br />

• L’inizializzazione procede, come <strong>di</strong> norma, casualmente<br />

• La prima operazione da fare è assegnare la fitness (o rank)<br />

Il rango assegnato sarà pari al fronte<br />

in cui la soluzione si trova<br />

• Per sod<strong>di</strong>sfare due o più funzioni obiettivo non basta la fitness:<br />

Costruzione degli insiemi <strong>di</strong><br />

Pareto: dominanza valutata<br />

confrontando<br />

ogni soluzione con tutte le altre<br />

22


NSGA-II fase 2: crow<strong>di</strong>ng <strong>di</strong>stance/1<br />

Garantire rappresentazione<br />

ottima dell’insieme <strong>di</strong> Pareto:<br />

l’insieme dev’essere più<br />

eterogeneo possibile<br />

Priorità <strong>di</strong> prelevamento più<br />

alto per le zone a più bassa<br />

densità <strong>di</strong> soluzione: crow<strong>di</strong>ng<br />

<strong>di</strong>stance<br />

Crow<strong>di</strong>ng <strong>di</strong>stance: trovare la<br />

<strong>di</strong>stanza euclidea tra ciascun<br />

in<strong>di</strong>viduo in un fronte basandosi sui<br />

suoi m obiettivi nell’iperspazio m<strong>di</strong>mensionale,<br />

infinita per gli<br />

elementi al confine.<br />

23


NSGA-II fase 3: selezione a torneo<br />

• Serve a scegliere i genitori degli in<strong>di</strong>vidui della prossima<br />

generazione<br />

• Crowded <strong>di</strong>stance operator: operatore definito appositamente per<br />

il confronto delle crow<strong>di</strong>ng <strong>di</strong>stance<br />

Siano p e q due soluzioni<br />

p q se, alternativamente:<br />

•p rank< q rank<br />

• se p e q appartengono allo stesso fronte F i , F i(d p)>F i(d q), ovvero la<br />

crow<strong>di</strong>ng <strong>di</strong>stance <strong>di</strong> p è maggiore <strong>di</strong> quella <strong>di</strong> q<br />

Si scelgono gli in<strong>di</strong>vidui con rango inferiore, e a parità <strong>di</strong> rango<br />

quelli con crow<strong>di</strong>ng <strong>di</strong>stance superiore (per sparsità)<br />

24


NSGA-II fase 4:<br />

ricombinazione dei geni/1<br />

• Serve a propagare nelle generazioni successive le caratteristiche<br />

migliori dei genitori.<br />

• Ogni coppia <strong>di</strong> genitori genererà 2 figli per<br />

• Crossover a due punti<br />

• Mutazione polinomiale<br />

• Dati i genitori


NSGA-II fase 5: rimpiazzamento<br />

• Si combina la popolazione dei <strong>di</strong>scendenti con quella corrente<br />

• Elitarismo: basato sulla non-dominanza<br />

• Si forma la nuova generazione attingendo da ciascun fronte<br />

(cominciando dal primo), finchè non si raggiunge il limite<br />

prestabilito.<br />

• Gli in<strong>di</strong>vidui si scelgono inizialmente da quelli del primo fronte: in<br />

seguito se ne scelgono ancora dagli altri fronti basandosi sulla<br />

crow<strong>di</strong>ng <strong>di</strong>stance, in or<strong>di</strong>ne decrescente, finchè la <strong>di</strong>mensione della<br />

popolazione non raggiunge N.<br />

28


Ambiente <strong>di</strong> sviluppo:<br />

e<strong>di</strong>ficio simulato<br />

L’e<strong>di</strong>ficio simulato è stato modellato tramite il software<br />

DesignBuilder, me<strong>di</strong>ante il quale abbiamo specificato anche la<br />

sud<strong>di</strong>visione logica in 4 zone ed esportato il file .idf<br />

29


Ambiente <strong>di</strong> sviluppo:<br />

entità<br />

30


Risultati: parametri algoritmo<br />

Accorgimenti implementativi:<br />

• Cromosoma: 24*4*8 variabili <strong>di</strong> decisione<br />

• Impe<strong>di</strong>mento <strong>di</strong> generazione <strong>di</strong> in<strong>di</strong>vidui illegali<br />

• Funzione <strong>di</strong> fitness 1: <strong>di</strong>stanza dalla temperatura <strong>di</strong><br />

riferimento<br />

• Funzione <strong>di</strong> fitness 2: consumo totale<br />

• 200 generazioni<br />

• 50 in<strong>di</strong>vidui<br />

• Range <strong>di</strong> setpoint: [16,22]<br />

Tempo per sod<strong>di</strong>sfare la richiesta: 9,4 ore<br />

Tempo per una generazione: 3 minuti<br />

Tempo <strong>di</strong> esecuzione EnergyPlus: 5+4 secon<strong>di</strong><br />

31


Ambiente <strong>di</strong> sviluppo: generalità<br />

Grandezze <strong>di</strong> interesse:<br />

• Temperatura esterna all’e<strong>di</strong>ficio;<br />

• Temperatura delle quattro zone interne;<br />

• Set-point <strong>di</strong> riscaldamento e raffrescamento<br />

• Consumi energetici delle zone interne<br />

Matlab<br />

• Ricevere l’output <strong>di</strong> EnergyPlus<br />

• Invocare EnergyPlus per testare<br />

gli in<strong>di</strong>vidui<br />

• Fornire la fitness adeguata e<br />

procedere nell’iterazione<br />

dell’algoritmo<br />

32


Risultati: prestazioni dell’algoritmo/1<br />

1. Selezione 3 in<strong>di</strong>vidui della 200-esima generazione<br />

33


Risultati: prestazioni dell’algoritmo/2<br />

2. Confronto temperature me<strong>di</strong>e<br />

34


Risultati: confronto con altre<br />

tecniche/2<br />

• Prima tecnica: setpoint <strong>di</strong>fferenziati per fasce orarie (lavorativa 6-<br />

18, notturna 18-6) tenendo conto della temperatura esterna<br />

[20, max(TCRooLow, min(TCRooHi, TCRooLow + (outputs(:,k)<br />

- TOutLow)*ratio))]<br />

TCRooLow = 22;% Limite inferiore della temperatura <strong>di</strong> zona<br />

TCRooHi = 26; % Limite superiore della temperatura <strong>di</strong> zona<br />

TOutLow = 22; % Limite inferiore della temperatura esterna<br />

TOutHi = 24; % Limite superiore della temperatura esterna<br />

Ratio = (TCRooHi - TCRooLow)/(TOutHi - TOutLow);<br />

• Seconda tecnica: naif, spegnimento totale dell’HVAC nella<br />

fascia notturna e setpoint statico [16 30] nelle ore lavorative<br />

35


Risultati: confronto con altre<br />

tecniche/1<br />

36


• Parallelizzazione del co<strong>di</strong>ce<br />

Sviluppi futuri<br />

• Implementazione <strong>di</strong> altre tecniche <strong>di</strong> AI<br />

• Confort ambientale spinto<br />

• Interventi a funzioni <strong>di</strong> fitness<br />

• Pianificatore e occupazione delle zone<br />

37


Grazie per l’attenzione<br />

38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!