Presentazione standard di PowerPoint - Emanuele Cipolla
Presentazione standard di PowerPoint - Emanuele Cipolla
Presentazione standard di PowerPoint - Emanuele Cipolla
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