Sei sulla pagina 1di 10

IL PROBLEMA DELLA GENERAZIONE AUTOMATICA

DELLORARIO DELLE LEZIONI: TEORIA E PRATICA


THE COURSE TIMETABLING PROBLEM: THEORY AND
PRACTICE
Luca Di Gaspero e Andrea Schaerf
Sommario to di vista della soluzione di casi pratici e dello sviluppo di
applicazioni a livello industriale (ad es. [2]).
In questo lavoro si descrive unapplicazione di Intelligenza Le tecniche utilizzate per la soluzione variano da meto-
Artificiale per la soluzione del problema della generazio- di propri della Ricerca Operativa, quali la programmazione
ne automatica dellorario delle lezioni di una facolt`a uni- intera [25], fino a metodi legati allIntelligenza Artificiale
versitaria italiana. In particolare, vengono descritti sia gli quali il soddisfacimento di vincoli [15] e la ricerca locale
aspetti teorici riguardanti la formulazione del problema e [16]. La fonte pi`u completa sullo stato dellarte in que-
le tecniche di soluzione impiegate, sia aspetti pratici lega- sto campo sono gli atti della serie di conferenze PATAT
ti allutilizzo concreto delle soluzioni proposte e alla loro [21], dedicata a questo argomento, oltre ad alcuni articoli
validazione sul campo. di rassegna (ad es. [3, 23]).
In this paper we describe an Artificial Intelligence ap- In questo lavoro affrontiamo il problema specifico di una
plication for the solution of the course timetabling problem facolt`a universitaria italiana. Nel nostro paese la recente
in an Italian university. In particular, we describe both the transizione al nuovo ordinamento didattico (il cosiddetto
theoretical aspects regarding the formulation of the pro- 3+2) ha creato sia una frammentazione dei corsi, e quin-
blem and the solution techniques, and the aspects related di una maggiore difficolt`a di gestione, ma anche una rivo-
to how the proposed solutions have been implemented and luzione dellofferta didattica, con la conseguente impossi-
validated in practice. bilit`a di generare un orario semplicemente per differenza
da quello dellanno precedente. In questo contesto, si e`
Parole chiave: Generazione automatica di orari, Ricerca reso quindi ancora pi`u cruciale lutilizzo di un risolutore
Locale, Ricerca Tab`u automatico.
Il risolutore che abbiamo sviluppato e` basato sul para-
1 Introduzione digma della ricerca locale. Questo paradigma si e` dimo-
strato particolarmente adeguato per la soluzione di un va-
Il problema della generazione dellorario delle lezioni sto numero di problemi di generazione di orari come dimo-
(CTTP: Course TimeTabling Problem) e` un problema com- strano le numerose pubblicazioni in tal senso (cfr. [21]).
binatorio che consiste nellassegnazione settimanale del- Anche lesperienza specifica del nostro gruppo di ricerca
le lezioni di un insieme di corsi ai periodi e alle aule ha portato a risultati interessanti utilizzando queste tecni-
disponibili. che. In particolare, abbiamo sviluppato dei risolutori per
La soluzione manuale del CTTP tipicamente richiede di- altri problemi di generazione di orari [5, 7, 9, 22] che han-
versi giorni/uomo di lavoro, ed inoltre le soluzioni trovate no dato buoni risultati anche in comparazione (ove e` stato
sono spesso insoddisfacenti; ad esempio, gli studenti so- possibile) con altri risolutori presentati in letteratura.
no spesso costretti a rinunciare a seguire un corso a causa Il risolutore descritto in questo lavoro viene impiegato
di sovrapposizioni di orario con altri corsi che intendono dalla Facolt`a di Ingegneria di Udine a partire dallA.A.
seguire. 2000-01, e si e` dimostrato uno strumento indispensabile
A causa di questa difficolt`a, la possibilit`a di automatiz- per questa difficile fase di transizione dal vecchio al nuo-
zare la soluzione e` stata molto studiata nelle letteratura vo ordinamento didattico. Nel corso di questi anni abbia-
scientifica fin dai primi anni 60 [4]. Il problema e` stato mo avuto modo di valutare sul campo le soluzioni proposte
considerato sia dal punto di vista teorico, con dimostrazio- da questo strumento che si sono sempre rivelate essere di
ni di complessit`a computazionale (ad es. [11]), sia dal pun- buona qualit`a e soddisfacenti per i soggetti interessati.
2 Definizione del problema i docenti possono dichiarare il loro sgradimento per
altri periodi, senza per`o la certezza di non avere le-
Esistono numerose formulazioni del problema CTTP che zioni assegnate a tali periodi (indisponibilit`a soft). Le
differiscono tra loro principalmente per il tipo dei vinco- indisponibilit`a soft sono pesate in modo inversamen-
li presi in considerazione. In questo lavoro descriviamo te proporzionale al numero di indisponibilit`a espresse
la formulazione che viene utilizzata nella nostra facolt`a, dal docente.
rimandando a [23] per formulazioni alternative.
I dati fondamentali del problema sono: 5. Indisponibilit`a aule (hard/soft): A causa dellassen-
za di particolari attrezzature (ad es. videoproiettore)
I corsi: Ogni corso e` erogato in un numero di lezioni set- alcune aule possono essere dichiarate come inutiliz-
timanali da assegnare ad aule e periodi distinti, ed e` zabili o sgradite (hard/soft) per certi corsi. Inoltre, le
seguito da un numero (stimato) di studenti. aule possono essere non utilizzabili o preferibilmente
I periodi: Lorizzonte di programmazione (nel nostro ca- non utilizzate (hard/soft) in certi periodi specifici.
so una settimana) e` diviso in giorni e ciascun giorno
6. Preassegnamenti (hard): E` possibile che, per ragio-
e` diviso in periodi di lezione. I periodi hanno tutti
ni organizzative, una lezione debba necessariamente
la stessa lunghezza, fissata a priori (nel nostro caso 2
tenersi in un dato periodo e/o una data aula. In questo
ore).
caso, il suo assegnamento viene prefissato e non pu`o
Le aule: Le aule ospitano le lezioni ed hanno una propria essere modificato.
capienza espressa in termini di posti a sedere.
7. Capienza aule (soft): Il numero di studenti che segue
I curricula: Un curriculum e` un insieme di corsi seguiti un corso deve essere minore o uguale al numero di
dal medesimo gruppo di studenti. Quindi, qualsiasi posti a sedere delle aule in cui le sue lezione vengono
coppia di corsi dello stesso curriculum ha degli stu- erogate.
denti in comune. Un corso pu`o appartenere anche
8. Numero minimo di giorni di lavoro (soft): Le le-
a pi`u curricula distinti. Un esempio di curriculum
zioni di un corso devono tenersi in un numero mini-
e` linsieme dei corsi del terzo anno di Ing. Civile
mo di giorni specificato per ogni corso. Ad esempio,
orientamento edilizia.
un corso che ha 5 lezioni (da due ore) settimanali,
Lassegnazione cercata deve rispettate un dato insieme normalmente deve tenersi su almeno 4 giorni.
di vincoli hard e soft. I vincoli hard sono quelli che devo-
no assolutamente essere soddisfatti dalla soluzione, mentre 9. Lezioni giornaliere per curriculum (soft): Il nume-
quelli soft possono essere violati al costo di peggiorare la ro di lezioni giornaliere per gli studenti di ciascun cur-
qualit`a della soluzione. riculum deve essere possibilmente compreso allinter-
I tipi di vincoli hard e soft presenti nel nostro problema no di un dato intervallo (tipicamente 2 come minimo
sono elencati di seguito. Si noti che alcuni di essi sono e 3 come massimo, per lezioni da 2 ore).
considerati in entrambe le forme, nel senso che ogni sin- 10. Compattezza del curriculum (soft): Il carico di le-
golo vincolo di quel tipo, a seconda delle esigenze, pu`o zioni giornaliero per gli studenti che seguono un certo
essere dichiarato sia hard che soft. curriculum deve essere il pi`u possibile compatto, evi-
1. Lezioni (hard): Il numero di lezioni di ciascun corso tando buchi tra le lezioni (fatto salvo lintervallo per
deve essere esattamente quello fissato. il pranzo).

2. Occupazione aule (hard): Due lezioni non possono 11. Lezioni consecutive del curriculum (soft): Possibil-
tenersi nella stessa aula nello stesso periodo. mente ciascuno studente non deve avere pi`u di un dato
numero di lezioni consecutive.
3. Conflitti (hard/soft): Le lezioni di corsi appartenenti
allo stesso curriculum, oppure tenuti dallo stesso do- 12. Stabilit`a aula (soft): Per quanto possibile le lezioni
cente, devono essere erogate in periodi diversi (con- di un corso devono tenersi tutte nella stessa aula.
flitto hard). Due corsi sono invece in conflitto soft se
la loro sovrapposizione e` sgradita ma non inaccettabi- La funzione obiettivo complessiva (da minimizzare) e` la
le; ad esempio, i corsi di docenti che vorrebbero avere somma pesata delle violazioni dei vincoli soft. I pesi da
la possibilit`a di sotituirsi a vicenda vengono dichiarati assegnare ai vari tipi di vincoli sono configurabili dallu-
in conflitto soft. tente, ma hanno un coefficiente fisso legato al numero di
studenti coinvolti nella violazione (ad esempio, gli studen-
4. Indisponibilit`a periodi (hard/soft): I docenti posso- ti che non hanno posto a sedere in aula, oppure quelli che
no dichiararsi non disponibili per un numero massimo devono seguire 6 ore di lezione consecutive).
fissato di periodi, e le lezioni dei loro corsi non devo- E` facile verificare che il problema dellesistenza di una
no tenersi in tali periodi (indisponibilit`a hard). Inoltre soluzione ammissibile per il CTTP e` una generalizzazione
del problema della colorabilit`a di un grafo [12, Prob. GT che stima la qualit`a dello stato. Per i problemi di ottimiz-
4, p. 291] ed e` quindi NP-completo. Di conseguenza, e` zazione, f generalmente tiene conto del numero di vincoli
estremamente improbabile che esistano degli algoritmi ef- violati e della funzione obiettivo del problema.
ficienti che garantiscano di trovare una soluzione per tutte Una delle limitazioni principali della ricerca locale e` la
le istanze. possibilit`a di rimanere intrappolati in una zona confinata
dello spazio di ricerca costituita dal bacino di attrazione di
3 La ricerca locale un cosiddetto minimo locale.
Per ovviare a questo problema, che e` inerente al mecca-
La ricerca locale e` un paradigma di ricerca e ottimizzazio- nismo stesso di questo tipo di ricerca, sono state concepite
ne che e` stata introdotto circa 40 anni fa [18]. Lo studio diverse strategie per guidare la ricerca ad un livello di astra-
della ricerca locale nella comunit`a di IA ha avuto un im- zione pi`u elevato di quello della descrizione del problema.
pulso a seguito dei lavori fondamentali di Minton et al. Tali strategie sono note con il nome di meta-euristiche, an-
[20] e Selman et al. [24] nei primi anni 90. Inoltre, molte che se il termine meta-euristica ha un significato pi`u gene-
delle caratteristiche attuali delle tecniche di ricerca locale rale della sola ricerca locale comprendendo anche tecniche
nascono direttamente da metodi propri dellIA, quali lu- basate su altri paradigmi (quali ad esempio gli Algoritmi
tilizzo di memoria nella ricerca e limpiego di metodi di Genetici).
apprendimento adattivo. Nellambito della ricerca locale, le meta-euristiche de-
Le tecniche di ricerca locale sono intrinsecamente non finiscono principalmente la strategia da utilizzare per se-
esaustive, nel senso che non garantiscono di trovare una lezionare la mossa in ciascuno stato e per terminare la
soluzione ammissibile (o ottima), ma esplorano lo spazio ricerca.
di ricerca in modo non sistematico fino a quando viene Due delle strategie pi`u comunemente utilizzate sono i
soddisfatto un criterio di arresto. metodi di discesa (HC: hill climbing) e la ricerca tab`u
Nel seguito descriviamo gli elementi di base della ri- (TS: tabu search). Esse verranno descritte brevemente nei
cerca locale ed alcune delle tecniche utilizzate in questo seguenti paragrafi, limitandoci alla formulazione utilizza-
lavoro. ta dal nostro risolutore. Per una trattazione pi`u esaustiva
rimandiamo ad altri lavori sullargomento (ad es. [1, 14]).
3.1 Elementi di base della ricerca locale
3.2 Metodi di discesa (HC)
Data una istanza p di un problema di ricerca o di ottimizza-
zione P , si associa ad esso uno spazio di ricerca S. Ogni HC in realt`a non e` una singola tecnica, bens` una famiglia
elemento s S corrisponde ad una soluzione potenziale di tecniche basate sullidea di eseguire solo mosse che mi-
di p, ed e` chiamato uno stato di p. La ricerca locale si basa gliorano o lasciano inalterato il valore della funzione costo
su una funzione N che assegna ad ogni stato s S il suo f.
vicinato (o intorno) N (s) S. Ogni stato s0 N (s) e` Tra le varie tecniche di HC proposte in letteratura
detto un vicino di s. noi utilizziamo la strategia cosidetta randomizzata non-
Un algoritmo di ricerca locale parte da uno stato inizia- ascendente (HC-RNA) che opera nel seguente modo: ad
le s0 , che pu`o essere generato casualmente o ottenuto con ogni iterazione i si seleziona una mossa casuale mi , e se
unaltra tecnica, ed entra in un ciclo che naviga lo spazio f (si mi ) f (si ) allora si assegna si+1 := si mi ,
di ricerca, passando da uno stato si ad uno dei suoi vici- altrimenti si lascia lo stato invariato, cio`e si+1 := si .
ni si+1 , fino a che uno specifico criterio di arresto non e` Si noti che HC-RNA non si ferma quando raggiunge un
soddisfatto. minimo locale. Infatti, la ricerca potrebbe continuare inde-
Il vicinato di uno stato s e` solitamente descritto in modo finitamente muovendosi tra due o pi`u stati di costo uguale.
intensionale, in termini delle modifiche (chiamate mosse) Per gestire questa situazione, il criterio di arresto e` basa-
che possono essere applicate per trasformare s nei membri to sul numero di iterazioni trascorse dallultimo miglio-
di N (s). Una mossa e` tipicamente composta da un insieme ramento. In dettaglio, viene fissato un valore n tale che
limitato di attributi che descrivono il cambio di stato. lalgoritmo si ferma dopo n iterazioni che non hanno mi-
Dato uno stato s ed una mossa m, denotiamo con s m gliorato la funzione costo, cio`e si ferma alliterazione j tale
lo stato ottenuto da s applicando la mossa m. Quindi un che f (sj ) = f (sj1 ) = = f (sjn ).
vicinato pu`o essere visto come un insieme di mosse po-
tenziali, sebbene non tutte le mosse possano, in genera- 3.3 Ricerca tabu` (TS)
le, essere applicate in ogni stato, perche potrebbero essere
inammissibili, cio`e portare ad uno stato fuori dallo spazio In ogni stato si , TS esplora esaustivamente il vicinato cor-
di ricerca. rente N (si ). Tra gli elementi di N (si ), quello che mostra il
Unulteriore componente della ricerca locale, che ha lo valore minimo della funzione costo f diventa il nuovo sta-
scopo di guidare la ricerca verso le regioni pi`u prometten- to corrente si+1 , indipendentemente dal fatto che f (si+1 )
ti dello spazio di ricerca, e` la cosiddetta funzione costo f sia maggiore o minore di f (si ).
Questa scelta permette allalgoritmo di uscire dai mini- pre dallo stato migliore generato dallesecuzione del run-
mi locali, ma crea il rischio di entrare in ciclo tra un insie- ner precedente ti1 (o tq se i = 1). Lintero processo
me di stati vicini. Per evitare cicli infiniti viene utilizza- si ferma quando ha eseguito un giro (round) completo de-
ta la cosiddetta lista tab`u, che determina le mosse proibi- gli algoritmi senza ottenere nessun miglioramento da alcun
te. Queta lista memorizza le mosse accettate pi`u recente e runner, mentre i runner componenti si arrestano in base ai
proibisce lesecuzione delle loro mosse inverse. loro criteri specifici.
La modalit`a pi`u semplice di funzionamento della lista Si noti che la ricerca token-ring permette di combinare
tab`u e` quello di una coda di lunghezza fissata k: quan- non solo tecniche diverse (ad es. HC e TS), ma anche vici-
do una mossa nuova viene aggiunta alla lista, la mossa nati diversi. Infatti e` anche utile utilizzare la stessa tecnica,
pi`u vecchia viene eliminata. Tuttavia, in questo lavoro ma con vicinati diversi per i runner. Questa possibilit`a e`
utilizziamo un meccanismo pi`u generale (e pi`u efficace) ampliamente sfruttata in questo lavoro in cui vengono uti-
che assegna ad ogni mossa che entra nella lista un tempo lizzati nellalgoritmo complessivo quattro runner diversi
di permanenza casuale scelto nellintervallo tra due valo- che utilizzano altrettanti vicinati distinti.
ri fissati kmin e kmax . Ciascuna mossa viene eliminata Lefficacia della ricerca token-ring, soprattutto per due
dalla lista quando il proprio tempo di permanenza e` termi- soli runner, e` stata messa in luce da diversi autori (cfr.
nato. In questo modo la lunghezza della lista non e` fissa [14]). In particolare, quando uno dei due runner, diciamo
ma varia dinamicamente tra kmin e kmax incrementando t2 , non e` usato allo scopo di migliorare la soluzione ma
la robustezza dellalgoritmo. per diversificare la regione di ricerca, questidea prende il
Unaltra componente importante della TS e` il cosiddetto nome di ricerca locale iterata (cfr. ad es. [19]). In questo
criterio di aspirazione che pu`o cancellare lo stato di proi- caso, lesecuzione di t2 e` chiamata operatore di mutazione
bizione di una mossa: se una mossa m porta ad uno stato oppure mossa kick.
il cui costo e` migliore dellottimo corrente, allora lo stato
risultante e` comunque accettato come nuovo stato corrente.
4 Applicazione
Infine, la versione di TS da noi adottata include anche
una forma di modifica adattiva dei pesi, nota in letteratura Per risolvere il CTTP tramite ricerca locale abbiamo biso-
come shifting penalty [13]. Ogni componente della funzio- gno innanzitutto di definire lo spazio di ricerca, la funzione
ne costo viene moltiplicata per un coefficente aggiuntivo costo, la relazione di vicinato e la soluzione iniziale.
(un valore reale compreso tra 0 e 1) che varia adattivamente Il nostro spazio e` composto da tutte le assegnazioni in
durante la ricerca. In particolare, quando non ci sono vio- cui i vincoli hard dei tipi 1, 4, 5 e 6 sono soddisfatti. Sono
lazioni di quel tipo per un dato numero di iterazioni, il peso invece ammissibili gli stati in cui i vincoli hard di tipo 2
viene abbassato, mentre quando le violazioni sono presenti e 3 sono violati, anche se sono penalizzati dalla funzione
il peso torna ad alzarsi. In questo modo, la forma della fun- costo. La funzione costo e` quindi una somma pesata delle
zione costo viene alterata continuamente permettendo alla violazioni del vincoli hard di tipo 2 e 3 e delle violazioni
ricerca locale di penetrare in regioni dello spazio di ricerca dei vincoli soft. In tale somma i vincoli hard hanno un peso
che altrimenti difficilmente sarebbero state raggiunte. molto maggiore di quelli soft in modo che sia sempre pre-
Come per HC, anche in questo caso la ricerca termina ferita una mossa che risolve una violazione hard rispetto
quando non ci sono miglioramenti della funzione costo per ad una che risolve delle violazioni soft. I pesi sono co-
un numero fissato n di iterazioni consecutive. munque soggetti al meccanismo dello shifting penalty (se
Come commento finale sul TS menzioniamo il fatto che utilizzato) per cui durante la ricerca un vincolo hard pu`o
questa e` una versione semplificata della tecnica e che ver- trovarsi a pesare meno di uno soft.
sioni pi`u sofisticate includono anche forme pi`u complesse La soluzione iniziale e` generata in modo casuale, in mo-
di proibizione e meccanismi di memoria a lungo termine. do per`o da garantire il soddisfacimento dei vincoli hard di
Resta il fatto che questa forma (eventualmente con qualche tipo 1, 4, 5 e 6.
variante) e` quella pi`u usata nella letteratura sul TS.
4.1 Vicinati
3.4 Ricerca locale composta
Nel CTTP, abbiamo a che fare con lassegnazione a ciascu-
Una delle propriet`a pi`u importanti del paradigma della ri- na lezione di due tipi di risorse: il periodo e laula. Risulta
cerca locale e` che tecniche diverse possono essere combi- quindi intuitiva la definizione di due struttre di vicinato che
nate ed alternate in modo semplice per generare algoritmi gestiscono separatamente ciascuna risorsa.
complessi. In particolare, un meccanismo molto semplice Il primo vicinato che utilizziamo, chiamato P, e` quindi
per combinare diverse tecniche e` quello che noi chiamiamo definito semplicemente dal cambio del periodo assegnato
strategia token-ring. ad una lezione di un corso lasciando invariata laula. Il
Dato uno stato iniziale s0 ed un insieme di tecniche di secondo, chiamato A, e` definito dal cambio dellaula ad
base t1 , . . . , tq , che chiameremo runner, la ricerca token- una lezione in un dato periodo. Una mossa e` considerata
ring esegue circolamente ciascun runner ti , partendo sem- ammissibile se rispetta i vincoli di tipo 1, 4, 5 e 6.
Tabella 1: I 4 runner del risolutore per il CTTP
tecnica N() iterazioni kmin kmax SP

6000
HC PA 1000000 NO HC(P+A)
TS(P)
TS P 2000 3050 SI TS(A)
HC(PxA)
TS A 1000 1020 NO

5000
HC PA 1000000 NO

4000
Tabella 2: Risultati e tempi medi dei 4 runner

costo
runner guadagno tempi

3000
tecnica N() medio (s)
HC PA 84.2 11.6
TS P 232.1 62.7

2000
TS A 12.5 1.6
HC PA 61.7 12.9

1000
0 20 40 60 80 100 140 180 220 260
Dati questi due vicinati di base definiamo il vicinato tempo (s)
unione PA definito dallinsieme delle mosse di un tipo
o dellaltro, ed il vicinato composizione PA le cui mosse
invece sono date dalla sequenza di una mossa P seguita da Figura 1: Andamento temporale della funzione costo
una mossa A applicata alla stessa lezione.
sia Windows. Il tempo medio di calcolo su istanze reali e`
4.2 Algoritmo risolutivo
di circa 490 secondi per ciascuna prova (su un processore
Per questo problema abbiamo implementato e valutato Pentium 4 a 3.4 GHz).
numerosi algoritmi sia semplici sia composti. Lalgorit- Il risolutore fa uso del framework E ASY L OCAL ++ [6, 8]
mo che sperimentalmente ha dato i risultati migliori e` un che coadiuva il progetto, lo sviluppo e lanalisi di algorit-
token-ring composto dai quattro runner mostrati nella Ta- mi di ricerca locale. Le classi astratte che compongono
bella 1, dove le colonne rappresentano rispettivamente la E ASY L OCAL ++ specificano e implementano la parte inva-
tecnica utilizzata, il vicinato, il numero massimo di itera- riante dellalgoritmo, e vengono specializzate dallutente
zioni dallultimo miglioramento, la lunghezza della lista con classi concrete che forniscono la parte del programma
tab`u (solo TS) e lutilizzo o meno del meccanismo dello dipendente dal problema. E ASY L OCAL ++ quindi fornisce
shifting penalty. completamente le strutture di controllo degli algoritmi, e
Intuitivamente, il primo runner (HC) ha il compito di lutente deve scrivere solo il codice specifico ed inserirlo
trovare rapidamente i facili miglioramenti nella fase ini- nei punti prestabiliti. In aggiunta, E ASY L OCAL ++ offre
ziale. Il secondo e il terzo sono dei TS che invece intensi- un insieme di strumenti che semplificano il debugging e
ficano la ricerca nelle due direzioni date dai due vicina- lanalisi degli algoritmi. Il vantaggio principale nellusa-
ti di base. Infine, sia lHC finale sia lHC iniziale (nei re E ASY L OCAL ++ e` che la sua architettura fornisce una
giri successivi al primo) permettono di spostare la ricer- modularizzazione per la soluzione di problemi combinato-
ca in nuove regioni dello spazio, fornendo la necessaria ri tramite ricerca locale ed aiuta lutente a sviluppare uno
diversificazione. schema concettuale chiaro dellapplicazione.
La figura 1 mostra landamento della media del valore Per linput/output dei dati vengono utilizzati semplici fi-
funzione costo (su 100 prove) degli stati finali di ciascun le di testo, mentre lorario finale viene pubblicato tramite
runner. La tabella 2 mostra invece i miglioramenti tota- un insieme di file HTML di facile consultazione. Un esem-
li prodotti da ciascuna runner e i tempi medi di ciascuna pio di file di output e` mostrato in Figura 2. I vincoli e le
esecuzione (ad esclusione del primo giro). Si noti come il preferenze dei docenti vengono inseriti direttamente dagli
TS che usa il vicinato A dia un contributo modesto, a fron- interessati attraverso una interfaccia web integrata con il
te per`o anche di un dispendio di risorse ancora pi`u mode- sistema informativo di facolt`a.
sto. Questo e` dovuto allo scarso impatto della disposizione Lutilizzo pratico del risolutore prevede i seguenti passi:
delle lezioni nelle aule rispetto ai vari vincoli soft.
1. Si collezionano i dati di ingresso dal sistema in-
formativo della Facolt`a, comprese le richieste e le
5 Implementazione e risultati preferenze dei docenti inserite via web.
Il risolutore e` realizzato integralmente in C++ standard uti- 2. Si esegue un numero a scelta di prove (dipendente
lizzando il compilatore gcc (v 3.3) sia in ambiente Linux dal tempo disponibile, tipicamente qualche centina-
Corso di Laurea in Ingegneria Elettronica - 2anno [III quadrimestre 2003-04]
ore
8:45-10:45 10:45-12:45 12:45-14:45 14:45-16:45 16:45-18:45
giorni
Comunicazioni Fondamenti di
elettriche informatica II
Luned
(Roberto Rossi) (Pier Luca Bianchi)

51 A
Fondamenti di Fondamenti di Comunicazioni
informatica II elettronica II elettriche
Marted
(Pier Luca Bianchi) (David Gialli) (Roberto Rossi)

A H 51
Fondamenti di
Controlli automatici II
elettronica II
Mercoled (Stefano Verdi)
(David Gialli)
E
F
Comunicazioni Fondamenti di
Controlli automatici II
elettriche elettronica II
Gioved (Stefano Verdi)
(Roberto Rossi) (David Gialli)
E
L F
Fondamenti di
Controlli automatici II
informatica II
Venerd (Stefano Verdi)
(Pier Luca Bianchi)
E
A

Figura 2: Esempio di orario di un curriculum generato dal risolutore

ia) partendo da stati iniziali casuali distinti, e si sce- sibile trovare in tempi rapidi uno stato di buona qualit`a per
glie tra gli stati finali quello di costo minimo quale i nuovi vincoli e senza stravolgere la soluzione corrente.
bozza dellorario. Il risolutore e` stato finora impiegato per quattro anni ac-
cademici (12 quadrimestri) ed ha sempre trovato soluzio-
3. La bozza viene sottoposta ai docenti che possono evi-
ni ammissibili, cio`e senza violazioni dei vincoli hard, e
denziare problemi e chiedere modifiche. Le modi- soddisfacenti dal punto di vista dei vincoli soft.
fiche richieste non vengono eseguite sullorario, ma
utilizzate per generare nuovi vincoli che vengono ag-
giunti ai precedenti modificando quindi listanza da 6 Discussione e conclusioni
risolvere.
Come osservato in precedenza, il risolutore ha dato risul-
4. Utilizzando la bozza come stato iniziale si esegue una tati considerati soddisfacente dai soggetti interessati (pre-
nuova ricerca sullistanza modificata e si ottiene cos` side, professori, studenti, . . . ). Sfortunatamente per`o, non
lorario definitivo. e` possibile dare una valutazione oggettiva delle soluzioni
trovate. Infatti, da una parte, essendo il problema affron-
5. Lorario definitivo viene modificato (solo eccezional-
tato solo in questo lavoro, non esistono altri risultati con
mente) in modo manuale, usando il risolutore solo
cui confrontarsi. Dallaltra, essendo presenti alcune com-
come validatore dello stato e suggeritore di mosse
ponenti non-lineari (ad es. il vincolo di compattezza), lo
migliorative.
sviluppo di un risolutore esatto che calcoli la soluzione ot-
Questa pubblicazione in due fasi (bozzadefinitivo) e` tima per istanze significative non e` affatto semplice. Di
necessaria in quanto accade frequentemente che le richie- conseguenza non e` possibile calcolare la differenza rispetto
ste dei docenti non siano subito disponibili in modo com- allottimo in termini di qualit`a della soluzione.
pleto e corretto. Questo e` dovuto a dimenticanze ed errori Questa difficolt`a di valutazione scientifica e` comune a
di inserimento da parte dei colleghi che non sono facimente molti altri lavori di taglio pratico, di Intelligenza Artificiale
eliminabili e che vanno per`o tenuti in conto. e non, pubblicati nella letteratura in questo campo (per una
Si noti che il paradigma di ricerca locale e` particolar- discussione generale in tal senso cfr. [17]).
mente indicato per il passo 4, in quanto utilizzando la so- Un possibile modo per ovviare a questo problema e`
luzione precedente come stato iniziale e` normalmente pos- quello di creare istanze ad hoc per le quali si conosce la
soluzione ottima e valutare la differenza percentuale tra il Riferimenti bibliografici
valore ottimo ed il migliore trovato dal risolutore. Questa
strada per`o non e` del tutto soddisfacente in quanto non c`e [1] Emile Aarts and Jan Karel Lenstra. Local Search
alcuna garanzia che tali istanze artificiali mostrino lo stes- in Combinatorial Optimization. John Wiley & Sons,
so comportamento delle istanze reali che sono le uniche Chichester, 1997.
veramente interessanti per i nostri scopi. [2] M. W. Carter. A comprehensive course timetabling
In alternativa, lalgoritmo risolutivo pu`o essere valutato and student scheduling system at the university of
in modo indiretto adattandolo a problemi teorici (semplifi- Waterloo. In E. Burke and W. Erben, editors, Proc.
cati) per i quali esistono istanze benchmark e risultati noti. of PATAT-2000, volume 2079 of LNCS, pages 6482.
Seguendo questa idea, abbiamo sviluppato due risolutori Springer-Verlag, Berlin-Heidelberg, 2001.
con le stesse caratteristiche per due problemi gi`a conside-
[3] M. W. Carter and G. Laporte. Recent developments
rati nella letteratura. Come risultato, il risolutore utilizzato
in pratical examination timetabling. In E. K. Bur-
per il problema dellE XAMINATION T IMETABLING [7] ha
ke and P. Ross, editors, Proc. of ICPTAT-95, volume
ottenuto risultati sui benchmark tra i migliori noti in lette-
1153 of LNCS, pages 321, Berlin-Heidelberg, 1996.
ratura. Il risolutore [9] per la versione del CTTP utilizzato
Springer-Verlag.
per la competizione TTPComp2002 (www.idsia.ch/
Files/ttcomp2002/) si e` classificato quarto su una [4] J. Csima and C. C. Gotlieb. Tests on a com-
ventina di gruppi partecipanti. puter method for constructing school timetables.
COme osservazione finale, e` doveroso rimarcare che so- Communications of the ACM, 7(3):160163, 1964.
no gi`a disponibili, in Italia e nel mondo, numerosissime [5] Luca Di Gaspero and Andrea Schaerf. Tabu search
applicazioni sia commerciali sia gratuite per la risoluzio- techniques for examination timetabling. In E. Burke
ne del problema dellorario delle lezioni (cfr. ad es. [10]). and W. Erben, editors, Proc. of PATAT-2000, volu-
Anche se uno studio completo su cosa offre il mercato e` me 2079 of LNCS, pages 104117. Springer-Verlag,
al di l`a degli scopi di questo lavoro, possiamo sicuramen- Berlin-Heidelberg, 2001.
te affermare che queste applicazioni sono valide dal punto
di vista dellinterfaccia utente, ma tendenzialmente carenti [6] Luca Di Gaspero and Andrea Schaerf. Writing lo-
dal punto di vista della qualit`a delle soluzioni. Tra laltro in cal search algorithms using E ASY L OCAL ++. In Ste-
quasi tutti i prodotti gli algoritimi risolutivi sono nascosti fan Vo and David L. Woodruff, editors, Optimi-
e non documentati, e quindi lunico modo per compararli zation Software Class Libraries, OR/CS series, pa-
sarebbe attraverso lesecuzione di numerose (e laboriose) ges 155176. Kluwer Academic Publishers, Boston,
prove a scatola nera. 2002.
Nel nostro caso invece sia il codice sorgente di E A - [7] Luca Di Gaspero and Andrea Schaerf. Multi-
SY L OCAL ++ che quello dellapplicazione (in una ver- neighbourhood local search with application to cour-
sione semplificata ma meglio documentata) sono di- se timetabling. In Edmund Burke and Patrick De
sponibili gratuitamente per tutti gli interessati alla Causmaecker, editors, Proc. of PATAT-2002, volume
pagina http://www.diegm.uniud.it/schaerf/ 2740 of LNCS, pages 262275, Berlin-Heidelberg,
projects/local++/. 2003. Springer-Verlag.
[8] Luca Di Gaspero and Andrea Schaerf. E ASY L O -
CAL ++: An object-oriented framework for flexi-
ble design of local search algorithms. Software
Ringraziamenti Practice and Experience, 33(8):733765, 2003.
[9] Luca Di Gaspero and Andrea Schaerf. A multineigh-
Desideriamo ringraziare innanzitutto i due revisori anoni- bourhood local search solver for the timetabling com-
mi per i loro commenti costruttivi e precisi che ci hanno petition ttcomp-2002. In Proc. of PATAT-2004, 2004.
permesso di migliorare il lavoro. Ringraziamo inoltre il to appear.
Preside della Facolt`a di Ingegneria dellUniversit`a di Udi-
ne Andrea Stella per il supporto e lincoraggiamento nello [10] Google Directory. Scheduling utilities. URL:
sviluppo di questo lavoro. Grazie anche a Erica Peressini http://directory.google.com/Top/
e Mauro Rainis che hanno sviluppato linterfaccia web per Computers/Software/Educational/A%
limmissione dei dati da parte dei docenti e della segreteria. dministration_and_School_Management/
Scheduling_Utilities. Viewed: May, 2004.
Questo lavoro e` stato supportato dal progetto Progetto
e realizzazione di un risolutore basato su tecniche di ri- [11] S. Even, A. Itai, and A. Shamir. On the complexity
cerca locale per lesecuzione di specifiche dichiarative di of timetabling and multicommodity flow problems.
problemi combinatori finanziato dal MIUR (Prin 2003). SIAM J. of Computation, 5(4):691703, 1976.
[12] M. R. Garey and D. S. Johnson. Computers and [19] Helena Ramalhino Lourenco, Olivier Martin, and
IntractabilityA guide to NP-completeness. W.H. Thomas Stutzle. Applying iterated local search to
Freeman and Company, San Francisco, 1979. the permutation flow shop problem. In F. Glo-
ver and G. Kochenberger, editors, Handbook of
[13] M. Gendreau, A. Hertz, and G. Laporte. A ta- Metaheuristics. Kluwer, 2001. to appear.
bu search heuristic for the vehicle routing problem.
Management Science, 40(10):12761290, 1994. [20] Steven Minton, Mark D. Johnston, Andrew B. Phi-
lips, and Philip Laird. Solving large-scale constraint
[14] Fred Glover and Manuel Laguna. Tabu search. satisfaction and scheduling problems using a heuri-
Kluwer Academic Publishers, 1997. stic repair method. In Proc. of AAAI-90, pages 1724.
[15] C. Gueret, N. Jussien, P. Boizumault, and C. Prins. AAAI Press/MIT Press, 1990.
Building university timetables using constraint logic [21] Practice and theory of automated timetabling (PA-
programming. In E. K. Burke and P. Ross, editors, TAT). Series of Conferences. http://www.
Proc. of ICPTAT-95, volume 1153 of LNCS, pages asap.cs.nott.ac.uk/ASAP/patat/.
393408, Berlin-Heidelberg, 1996. Springer-Verlag.
[22] Andrea Schaerf. Local search techniques for lar-
[16] A. Hertz. Tabu search for large scale timetabling ge high-school timetabling problems. IEEE Trans.
problems. European J. of Operational Research, on Systems, Man, and Cybernetics, 29(4):368377,
54:3947, 1991. 1999.
[17] D. S. Johnson. A theoreticians guide to the ex- [23] Andrea Schaerf. A survey of automated timetabling.
perimental analysis of algorithms. In M. H. Gold- Artificial Intelligence Review, 13(2):87127, 1999.
wasser, D. S. Johnson, and C. C. McGeoch, editors,
Data Structures, Near Neighbor Searches, and Me- [24] Bart Selman, Hector Levesque, and David Mit-
thodology: Fifth and Sixth DIMACS Implementation chell. A new method for solving hard satisfiability
Challenges, pages 215250. American Mathematical problems. In Proc. of AAAI-92, pages 440446, 1992.
Society, 2002.
[25] A. Tripathy. School timetabling A case in lar-
[18] S. Lin. Computer solutions of the traveling salesman ge binary integer linear programming. Management
problem. Bell System Technical Journal, 44:2245 Science, 30(12):14731489, 1984.
2269, 1965.
7 Contatti
Luca Di Gaspero e Andrea Schaerf
Dipartimento di Ingegneria Elettrica,
Gestionale e Meccanica
Universit`a di Udine
via delle Scienze 206
33100, Udine
email:{l.digaspero|schaerf}@uniud.it

8 Biografia
Luca Di Gaspero ha conseguito la laurea in Scienze del-
lInformazione (1998) e il Dottorato di Ricerca in Infor-
matica (2003) presso lUniversit`a di Udine, dove e` attual-
mente Ricercatore (senza presa di servizio). La sua ricerca
riguarda lapplicazione della ricerca locale a problemi di
scheduling.
Andrea Schaerf si e` laureato con lode in Ingegneria Elet-
tronica nel 1990 ed ha conseguito il Dottorato di Ricerca
in Informatica nel 1994 allUniversita di Roma La Sa-
pienza. Dal 1998 e` Professore Associato presso lUni-
versit`a di Udine. Si interessa principalmente di algoritmi,
linguaggi di specifica e strumenti software per problemi di
scheduling e timetabling.