Quadratic assignment Problem: The Hospital Layout



Documenti analoghi
Ricerca Operativa A.A. 2007/2008

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Parte I. Prima Parte

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Il Metodo Branch and Bound

Problemi di localizzazione impianti

Introduzione al MATLAB c Parte 2

Modelli di Sistemi di Produzione:

e-dva - eni-depth Velocity Analysis

Corso di Matematica per la Chimica

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Basi di Dati Relazionali

Esercizi di Ricerca Operativa I

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Ottimizzazione Multi Obiettivo

10 - Programmare con gli Array

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

3. Gli algoritmi di ottimizzazione.

Funzioni in C. Violetta Lonati

Studente: SANTORO MC. Matricola : 528

ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI

Esempi di algoritmi. Lezione III

Sistemi Operativi. 5 Gestione della memoria

Guida Compilazione Piani di Studio on-line

Complessità Computazionale

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Ottimizzazione in ECLiPSe

Ricerca non informata in uno spazio di stati

Ricerca Operativa (Compito A) Appello del 18/06/2013 Andrea Scozzari

Ricerca informata. Scelta dell euristica

Implementazione parallela di algoritmi genetici per la stima di HMM

Un applicazione della programmazione lineare ai problemi di trasporto

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Dimensione di uno Spazio vettoriale

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

Il problema del commesso viaggiatore

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

UD 3.4b: Trattabilità e Intrattabilità. Dispense, cap. 4.2

La programmazione. Sviluppo del software

Registratori di Cassa

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

TSP con eliminazione di sottocicli

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

TSP con eliminazione di sottocicli

Algoritmi di Ricerca. Esempi di programmi Java

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili. Introduzione

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Programmazione dinamica

La selezione binaria

Normative sulla Tenuta dei Serramenti ad Aria, Acqua e Vento

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Android. Ciclo di vita di Activity, Service e Processi

Evoluzione Grammaticale

AA LA RICORSIONE

Politecnico di Torino

Lezione 8. La macchina universale

Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

LABORATORIO DI PROGRAMMAZIONE EDIZIONE 1, TURNO B

Corso di Calcolo Numerico

Ottimizzazione e modelli ad agenti

Capitolo Trasmissione di dati

1 Breve introduzione ad AMPL

SAPIENZA Università di Roma Facoltà di Ingegneria

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

Introduzione al Calcolo Scientifico

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

DAL DIAGRAMMA AL CODICE

Analisi per processi - ESEMPI DI MODELLAZIONE AZIENDALE -

Corso di Informatica

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Scheduling della CPU Simulazione in linguaggio Java

Breve introduzione al Calcolo Evoluzionistico

Transcript:

Università degli Studi di Modena e Reggio Emilia Corso di Laurea Magistrale in Ingegneria Gestionale Metodi di ottimizzazione per la logistica e la produzione Quadratic assignment Problem: The Hospital Layout Chiara Rampini Maria Vittoria Manfredini A.A. 2013/ 2014

INTRODUZIONE AL QAP Il QAP è uno dei più interessanti e complicati problemi di ottimizzazione combinatoria che esistano. Qual è il modo migliore di cablare la backboard di un computer? Come vengono localizzati i reparti all interno di un ospedale? Il trait d union tra questi problemi è che sono tutti legati al dover prendere una decisione. Questo tipo di decisione può essere presa grazie all applicazione del QAP. Il QAP è stato originariamente introdotto da Tjalling C. Koopmans e Martin Beckman nel 1957. Da allora il QAP rimane uno tra i più studiati problemi di ottimizzazione combinatoria. In generale si tratta di assegnare un set di n oggetti and un altro set di n oggetti minimizzando la sommatoria dei costi di tali assegnamenti.

DICHIARAZIONE FORMALE DEL PROBLEMA

FORMULAZIONE MATEMATICA 0-1 DEL PROBLEMA

FORMULAZIONE MATEMATICOA 0-1 DEL PROBLEMA

LA FORMULAZIONE LINEARIZZATA DEL PROBLEMA min s.t

COMPLESSITA DEL PROBLEMA Il QAP è un problema appartenente alla classe degli NP- DIFFICILI ( o NP- COMPLETI). Questo significa che non esiste un modello risolvibile in tempo polinomiale e un istanza che presenta un valore di n > 14 risulta essere computazionalmente proibitiva per l enumerazione diretta. Nella sua forma quadratica e lineare il modello presenta una complessità di n!.

IMPLEMENTAZIONE DEL MODELLO QUADRATICO IN XPRESS

IMPLEMENTAZIONE DEL MODELLO LINEARE IN XPRESS

I RISULTATI

GLI ALGORITMI EURISTICI PER RISOLVERE IL PROBLEMA Esistono alcuni euristici ed algoritmi subottimali che permettono di stimare delle soluzioni per il QAP. Queste procedure pur non fornendo la soluzione ottima globale generano delle soluzioni buone entro dei limiti di tempo ragionevolmente accettabili. Ci sono cinque categorie di base per lo sviluppo di euristici per il QAP: METODI COSTRUTTIVI; METODI A ENUMERAZONE LIMITATA; IMPROVEMENT METHODS; SIMULATED ANNEALING METHODS; GENETIC ALGORYTHMS.

L ALGORITMO GENETICO L algoritmo genetico è una procedura di ricerca e ottimizzazione che si ispira al processo evolutivo delle specie animali: Insieme di soluzioni = popolazione Soluzione = individuo Valore di una soluzione = adattamento di un individuo all ambiente Generazione di nuove soluzioni = riproduzione (crossover e mutazioni) Eliminazione di cattive soluzioni = selezione naturale Miglioramenti mediante local search = educazione

START CT_CNT Generazione delle popolazione iniziale random Selezione random di due genitori Crossover per l ottenimento dell erede Mutazione AM Mutazione PM Mutazione SM MultiStart MT_CNT Intensificazione e diversificazione con First Improvement TWO-OPT Ricerca Locale NO Fine local search? SI NO Fine Crossover? SI STOP

L ALGORITMO GENETICO Idea di base: generazione di una popolazione di soluzioni iniziali in modo random. Accoppiando casualmente mediante la procedura del crossover due genitori scelti random dalla popolazione, si ottiene la soluzione erede. A partire da questa soluzione si eseguono diversificazione e intensificazione mediante le procedure di mutazione. Ogni volta che una soluzione migliore è trovata su di essa viene eseguita la ricerca locale tramite 2-OPT. Input: matrice dei flussi, matrice delle distanze, zone, reparti, cardinalità della popolazione, numero massimo di iterazioni di crossover, numero massimo di iterazioni delle mutazioni Output: zgen soluzione dell euristico arrayzgen(j) valore del reparto assegnato alla zona j

L ALGORITMO GENETICO Step1: Generazione della popolazione random di n genitori (n in input) Step2: Inizializzazione del contatore del crossover CO_CNT:=0 Step3: Scelta di due genitori random dalla popolazione Step4: Se la condizione di terminazione (CO_CNT=50) non è verificata, esecuzione del crossover su due genitori scelti random dalla popolazione per ottenere la soluzione erede e incremento del contatore CO_CNT+=1, altrimenti goto Step10 Step5: Inizializzazione del contatore delle mutazioni MT_CNT:=0 Step6: applicazione della mutazione AM, PM, SM sull erede e incremento MT_CNT+=1 Step7: applicazione delle mutazioni AM, PM, SM sulla migliore soluzione euristica ottenuta fino a quel momento se la condizione di terminazione (MT_CNT=50) non è verificata, altrimenti goto Step3 Step8: Incremento MT_CNT+=1 Step9: Ricerca locale mediante 2-OPT sulla soluzione euristica migliore se su di essa non è già stata eseguita la ricerca in precedenza Step10: algoritmo terminato

GENERAZIONE POPOLAZIONE

CROSSOVER

CROSSOVER: esempio

MUTAZIONE AM (Adjacent interchange Mutation) Idea di base: la mutazione AM (Adjacent interchange Mutation) sceglie random una zona i e scambia il reparto j a essa assegnato con il reparto della zona successiva i+1. Input: se la mutazione è eseguita per la prima volta dopo il crossover, viene eseguita sulla soluzione dell erede zo generato dal crossover. Se la mutazione è già stata eseguita una volta sull erede viene eseguita sulla migliore soluzione euristica ottenuta fino a quel momento. Output: xam = array erede zo mutato oppure array mutato della soluzione euristica migliore

MUTAZIONE AM (Adjacent interchange Mutation)

MUTAZIONE PM (Pair-wise interchange Mutation) Idea di base: la mutazione PM (Pair-wise interchange Mutation) sceglie random due zone e scambia i reparti a esse assegnati. Input: se la mutazione è eseguita per la prima volta dopo il crossover, viene eseguita sulla soluzione dell erede zo generato dal crossover Se la mutazione è già stata eseguita una volta sull erede viene eseguita sulla migliore soluzione euristica ottenuta fino a quel momento. Output: xpm = array erede zo mutato oppure array mutato della soluzione euristica migliore

MUTAZIONE PM (Pair-wise interchange Mutation)

MUTAZIONE SM (Sliding Mutation) Idea di base: la mutazione SM (Sliding Mutation) sceglie random due zone non adiacenti i e j con j > i, scambia il reparto della zona i (reparto(i)) con reparto(j) e fa slittare di una zona tutti i reparti(k), per i<=k<j Input: se la mutazione è eseguita per la prima volta dopo il crossover, viene eseguita sulla soluzione dell erede zo generato dal crossover Se la mutazione è già stata eseguita una volta sull erede viene eseguita sulla migliore soluzione euristica ottenuta fino a quel momento. Output: xsm = array erede zo mutato oppure array mutato della soluzione euristica migliore

MUTAZIONE SM (Sliding Mutation)

RICERCA LOCALE: 2-OPT Step1: Calcolare tutti i possibili swap e salvarli in una matrice (n(n-1)/2) x 2, dove n è la cardinalità delle zone e dei reparti (la procedura è eseguita una sola volta all inizio del main) Step2: Se la migliore soluzione euristica ottenuta non è già stata esplorata mediante 2-OPT inizia la ricerca, altrimenti goto Step6 Step3: Inizializzare contto:=0 Step4: Eseguire lo swap (scorrendo la matrice delle possibili mosse), se non ci sono più mosse disponibili goto Step6 Step5: Se la soluzione calcolata dopo lo swap è migliore della migliore soluzione euristica ottenuta fino a quel momento zgen, essa viene tenuta in memoria e si pone MT_CNT=50 e contto:=1. goto Step4 Step6: Se (conto <>0) allora la migliore soluzione trovata tramite ricerca locale viene sostituita alla migliore soluzione euristica zgen Step7: termina procedura e torna alle mutazioni

VARIANTI DELL ALGORITMO ANALIZZATE Algoritmo 2 Le mutazioni sono eseguite sempre sulla soluzione erede generata mediante la procedura di crossover Algoritmo 3 Le mutazioni sono eseguite sulla soluzione generata dalla mutazione precedente. La ricerca locale mediante 2-OPT è eseguita sulla migliore soluzione ottenuta dopo tutti i 50 cicli di iterazioni delle mutazioni eseguite sull erede del crossover

RISULTATI OTTENUTI Tempi di esecuzione richiesti

RISULTATI OTTENUTI

CONCLUSIONI Per le istanze con n= 6,8 l implementazione del modello matematico in Xpress fornisce la soluzione ottima dopo pochi decimi di secondo nel caso di n=6 e relativamente pochi secondi nel caso di n= 8 ( circa 400); le istanze che presentano n > 8 quindi i casi n= 10, 12, 15, 16, 20 non sono risolvibili in tempo polinomiale; L Algoritmo1 Euristico fornisce una soluzione accettabile in tutti i casi studiati in poco tempo anche per le istanze maggiori ( tempo massimo di attesa 400 s per l istanza da 20). La soluzione ottima per istanze che presentano n > 14 non è calcolabile, pertanto, si può considerare la soluzione fornita dall Euristico che risulta inferiore rispetto a quelle ottenute col modello dopo l interruzione a 2000 s.