Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione...

28
“Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria” Anno accademico 2012-2013 Relatore Laureando Chiar.mo Prof. Lorenzo Castelli Stefano Costanzo Correlatore Dott. Alessandro Turco TESI DI LAUREA IN MODELLI DI OTTIMIZZAZIONE Dipartimento di Ingegneria e Architettura Università degli Studi di Trieste

Transcript of Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione...

Page 1: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

“Definizione e sviluppo di un algoritmo genetico

multiobiettivo per problemi di programmazione

lineare e ottimizzazione combinatoria”

Anno accademico 2012-2013

Relatore Laureando

Chiar.mo Prof. Lorenzo Castelli Stefano Costanzo

Correlatore

Dott. Alessandro Turco

TESI DI LAUREA

IN

MODELLI DI OTTIMIZZAZIONE

Dipartimento di Ingegneria e Architettura Università degli Studi di Trieste

Page 2: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema

Risolvere problemi rientranti in:

Programmazione lineare

Ottimizzazione combinatoria

Programmazione intera

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

min 𝑓(𝑥)

𝑔 𝑥 ≥ 𝑏

ℎ 𝑥 = 0

𝑙𝑖 ≤ 𝑥𝑖 ≤ 𝑢𝑖 ∀𝑥 ∈ 𝑋

Page 3: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema (2)

Presenza di variabili continue, intere e binarie

Vincoli lineari e non lineari

Limitazioni di dominio

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

min 𝑓(𝑥)

𝑔 𝑥 ≥ 𝑏

ℎ 𝑥 = 0

𝑙𝑖 ≤ 𝑥𝑖 ≤ 𝑢𝑖 ∀𝑥 ∈ 𝑋

Page 4: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Obiettivi

Definizione di un algoritmo genetico:

Multiobiettivo

General Purpose

Implementazione

Test comparativo

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 5: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Motivazioni

Interesse diretto di Esteco S.p.A.

Richiesta di risoluzione dei problemi target

Assenza di standard de facto

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 6: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Contesto Applicativo

Ottimizzazione Ingegneristica Industriale

Dimensione ridotte dei problemi

Black Box

Tempi di calcolo

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 7: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Analisi dei problemi target

Definizione categorie di problemi

Metodi risolutivi non evoluzionistici

Euristiche evolutive

Individuazione gruppi con caratteristiche comuni

Variabili decisionali

Vincoli

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 8: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Categorie individuate

Insiemi di vincoli lineari

Variabili intere e binarie

Definizione di variabile strutturata

Struttura dati: Permutazioni

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 9: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Categorie: vincoli lineari

Eliminazione delle uguaglianze

Semplificazione del sistema

Preprocessing

Sfruttamento proprietà dell’insieme convesso

Operatori specializzati: es. Crossover Algebrico

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

bAX

bXAXA 2211

22

1

1

1

11 XAAbAX

Page 10: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Preprocessing

Individuazione procedure possibili

Contesto Applicativo

Ha senso impiegare tempo per tentare di semplificare?

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 11: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Categorie: vincoli lineari

Eliminazione delle uguaglianze

Semplificazione del sistema

Preprocessing

Sfruttamento proprietà dell’insieme convesso

Operatori specializzati: es. Crossover Algebrico

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

bAX

bXAXA 2211

22

1

1

1

11 XAAbAX

Page 12: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Categorie: variabili intere

Inserimento nel contesto:

Presenza dei domini

Creazione di un gestore a posteriori di riparazione

Possibilità di operatori specializzati

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 13: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Categorie: permutazioni

Adozione codifica

Vettore di variabili strutturate

Variabile permutazione

Inserimento procedura di riparazione

Possibilità di operatori specializzati

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Travelling salesman problem

Page 14: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

MOGASI Multi-Objective Genetic Algorithm for Structured Input

Page 15: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Mogasi

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 16: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Mogasi

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 17: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Doppia popolazione

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 18: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Test e Risultati

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Necessarie molte tipologie di problemi test:

1. Problema vincolato singolo obiettivo

2. Problema multiobiettivo libero e vincolato

3. Problema intero singolo e multiobiettivo

4. TSP – Problema del commesso viaggiatore

Page 19: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Competitors

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

GENOCOP III

Non-dominated Sorting Genetic Algorithm, NSGA-II

Multi-Objective Genetic Algorithm, MOGA-II

MOGA-II con operatore specializzato, CUDIA

Page 20: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema vincolato Singolo Obiettivo

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Nome del test t13

Funzione Obiettivo:

Vincoli:

Domini:

Valori ottimi trovati Scostamento

GENOCOP 0.1422 %

MOGASI 0.0000 %

NSGA-II 43.704 %

MOGA-II 40.527 %

GENOCOP 24.9644

MOGASI 25.0000

NSGA-II 14.0738

MOGA-II 14.8680

10.00

12.00

14.00

16.00

18.00

20.00

22.00

24.00

26.00

Genocop

MOGASI

NSGA-II

MOGA-II

Page 21: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema vincolato Singolo Obiettivo (2)

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 22: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema Multiobiettivo

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Nome del test SRN

Funzione Obiettivo:

Vincoli:

Domini:

Valutazione dei fronti tramite IGD:

Valutazioni MOGA-II NSGA-II MOGASI

1 000 0.883843 1.640582 1.094851

2 000 0.521967 0.92367 0.541842

5 000 0.305973 0.607951 0.232426

10 000 0.209635 0.531319 0.128108

15 000 0.16975 0.419232 0.092720

20 000 0.147247 0.338228 0.069383

Page 23: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema Multiobiettivo (2)

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 24: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Problema Intero

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 25: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

TSP – Commesso viaggiatore: Grötschels24

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Page 26: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Conclusioni

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Definizione di un algoritmo:

Sfrutta delle conoscenze specifiche

Composizione verticale

General Purpose

Sviluppata prima versione MOGASI

Risultati positivi

Ottime possibilità di evoluzione

Page 27: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Conclusioni (2)

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Sviluppi futuri:

Raffinamento e test approfondito MOGASI

Sviluppo operatori specializzati

Espansione tecniche preprocessing

Introduzione delle riparazioni su albero/grafo

Formalizzazione del processo di ottimizzazione

Page 28: Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di programmazione lineare e ottimizzazione combinatoria

Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi di

programmazione lineare e ottimizzazione combinatoria

Grazie per l’attenzione Stefano Costanzo