Metodi di Ottimizzazione University Timetabling Bombardi Fabio, Crociani Michele Scopo 10/12/2002 Realizzazione dell'orario universitario: assegnare l'orario d'inizio e fine e un'aula adeguata a ciascuna lezione di ogni corso Cesena - Metodi di Ottimizzazione 2002 2 Problema… Soddisfare: i vincoli materiali (aule, proiettori, …) le condizioni relative al modo in cui ciascuna università vuole organizzare il suo insegnamento (numero di ore, giorni, …) 10/12/2002 Cesena - Metodi di Ottimizzazione 2002 3 …ma La difficoltà principale è relativa alla dimensione del problema: 10/12/2002 Esso coinvolge un gran numero di studenti, di insegnanti, corsi e aule, legati in diversi modi attraverso gli obiettivi e i vincoli. Cesena - Metodi di Ottimizzazione 2002 4 Oggi 10/12/2002 L’orario universitario viene fatto manualmente Viene impiegato molto tempo e spesso non si trova subito una soluzione adeguata Cesena - Metodi di Ottimizzazione 2002 5 Soluzione 10/12/2002 Creare un software che permetta la realizzazione automatica dell’orario. Cesena - Metodi di Ottimizzazione 2002 6 Tecniche Sono state utilizzate molte tecniche di ricerca locale: Tabu Search Simulated Annealing Algoritmi Genetici Ma…se il problema non è ampio 10/12/2002 È possibile ottenere una soluzione ottima attraverso un modello LP Cesena - Metodi di Ottimizzazione 2002 7 Scelta 10/12/2002 Modello ILP in MPL Soluzione Ottima da CPLEX Database MsAccess GUI: maschere di MsAccess Cesena - Metodi di Ottimizzazione 2002 8 Modello: dati 10/12/2002 T l’insieme degli insegnanti C l’insieme dei corsi P l’insieme dei periodi Rt l’insieme dei tipi di aule D l’insieme dei giorni Cl l’isieme delle classi CT l’insieme dei corsi associati agli insegnanti Cesena - Metodi di Ottimizzazione 2002 9 Modello: dati (II) 10/12/2002 CC l’insieme dei corsi associati alle classi DP l’insieme dei periodi nei vari giorni RRT l’insieme delle richieste di un tipo di aula r da parte di un corso UT l’insieme dei periodi di indisponibilità degli insegnanti WP il vettore dei periodi totali da fare alla settimana per ogni corso NRT il vettore della disponibilità di ogni tipo r di aula non binario Cesena - Metodi di Ottimizzazione 2002 10 Modello: variabili decisionali xcp = 1 0 a seconda che il corso c inizi nel periodo p, binaria. 10/12/2002 Cesena - Metodi di Ottimizzazione 2002 11 Modello: Vincoli 1. ogni corso deve essere svolto in x periodi la settimana: cl Cl , c CC x cp WPc p 2. ogni insegnante non può svolgere più di una lezione nello stesso periodo: p P, t T , x cCT 10/12/2002 cp 1 Cesena - Metodi di Ottimizzazione 2002 12 Modello: Vincoli (II) 3. non ci possono essere per ogni classe due corsi da frequentare nello stesso periodo: p P, cl Cl , x cCC cp 1 4. non ci possono essere più di due corsi uguali dello stesso anno nello stesso giorno (stesso corso per anni diversi ha nome diverso): c C , d D, x d DP 10/12/2002 cp 1 Cesena - Metodi di Ottimizzazione 2002 13 Modello: Vincoli (III) 5. la richiesta di aule r non deve superare il numero di aule r disponibili: d D, r Rt , x cp pDP , cRRT NRTdr 6. le richieste non devono superare il numero totale di aule: d D, pDP , c 10/12/2002 xcp NRTd r Cesena - Metodi di Ottimizzazione 2002 14 Modello: Vincoli (IV) 7. se un professore non è disponibile in un dato periodo in esso non ci deve essere nessun corso associato a quel professore: p P, t UT , x cp 0 c 10/12/2002 Cesena - Metodi di Ottimizzazione 2002 15 Funzione Obiettivo Realizzabilità: 10/12/2002 Min 0 Abbiamo minimizzato 0 (ovvio) per vedere se almeno tutti i vincoli venivano soddisfatti Cesena - Metodi di Ottimizzazione 2002 16