La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione a vincoli: algoritmi di scheduling in OPL

Presentazioni simili


Presentazione sul tema: "Programmazione a vincoli: algoritmi di scheduling in OPL"— Transcript della presentazione:

1 Programmazione a vincoli: algoritmi di scheduling in OPL
Laureanda : Sara Zanette Relatore: Ch.mo Prof. Agostino Cortesi Correlatore: Ch.mo Prof. Elena Moretti Università Ca’Foscari - Venezia - A.A. 2000/2001

2 Gli obiettivi della tesi
Primo obiettivo: studio della programmazione a vincoli, in particolare delle tecniche di risoluzione per i problemi a vincoli. Secondo obiettivo: verificare l’efficacia del linguaggio OPL (Optimization Programming Language) - modellare problemi di scheduling; - studiare l’efficienza del solver dal punto di vista della correttezza cioè se esso riesce a trovare una soluzione corretta e ottima per i problemi; - studiare l’efficienza del solver dal punto di vista dei tempi computazionali cioè studiare come reagisce il solver aumentando i dati di input.

3 La programmazione a vincoli
Un vincolo è una relazione logica fra diverse variabili e la programmazione a vincoli è lo studio dei sistemi computazionali basati sui vincoli. Le tecniche risolutive studiate riguardano i problemi di Constraint Satisfaction cioè i problemi definiti su domini finiti. - La ricerca sistematica: Generete&Test e Backtracking. - Le tecniche di consistenza: dei nodi, degli archi, path consistenza. - La propagazione dei vincoli: metodi di look forward e di look ahead.

4 Classi di problemi particolari
Problemi di ottimizzazione Lo scopo è trovare la soluzione migliore e la qualità della soluzione dipende da una funzione obiettivo. Metodo risolutivo: - Algoritmo di Branch&Bound Problemi di over-constraint Problemi in cui non tutti i vincoli verranno soddisfatti dalla soluzione. Metodi risolutivi: - Partial Constraint Satisfaction - Vincoli gerarchici

5 Vantaggi e limiti della programmazione a vincoli
La natura dichiarativa: il programmatore descrive cosa deve essere risolto in un problema, non come va risolto. Trovare la soluzione è compito del solver e non è necessario verificarne la correttezza. La separazione tra la dichiarazione dei vincoli e la ricerca permette di modificare una componente senza modificare l’altra. I problemi NP-hard hanno efficienza imprevedibile. La stabilità dei modelli: apportando piccoli cambiamenti ai dati o aggiungendo vincoli ad un problema può verificarsi un notevole abbassamento di performance.

6 OPL : Optimization Programming Language
OPL è un linguaggio ad alto livello per l’ottimizzazione che combina assieme la potenza dei linguaggi a vincoli con quella dei linguaggi a modelli. OPL è stato sviluppato da Pascal Van Hentenryck nel 1999. Le aree di applicazione di OPL: - La programmazione lineare, intera e mista - I problemi per la risoluzione di vincoli non di ottimizzazione - Lo scheduling. Il codice OPL è composto da: 1. Una sequenza di dichiarazioni di costanti e di variabili; 2. Un’istruzione che indica la funzione obiettivo; 3. Una sequenza di dichiarazioni di vincoli; 4. Una procedura di ricerca (opzionale);

7 I problemi di scheduling modellati nella tesi
Skin flow shop Job shop Flow shop ibrido Flow shop con tempi di set-up - Ogni problema è stato modellato scrivendo in media solo righe di codice e si sono usati algoritmi predefiniti da OPL - Si sono introdotti nuovi tipi di vincoli per poter modellare correttamente i problemi, potenziando gli strumenti di OPL. - In tutti i casi si è trovata la soluzione ottima e si è verificata la correttezza. - Si sono calcolate le curve di tendenza dei tempi d’esecuzione

8 Vantaggi di OPL Codice semplice da interpretare vocabolario ridotto, strutture e algoritmi predefiniti; la sintassi è facilmente apprendibile e il codice è di immediata comprensione per l’utente. Semplicità nell’individuare gli errori il codice è chiaro ed ogni riga può essere interpretata correttamente senza l’onere di conoscere l’intero programma. La velocità e la funzionalità per lo studio di diversi input è assicurata dalla separazione tra il modello e la dichiarazione dei dati. Nei casi di tempi computazionali proibitivi, l’ambiente di sviluppo ILOG OPL Studio permette di ottenere una soluzione subottima senza attendere la fine del processo di ricerca.


Scaricare ppt "Programmazione a vincoli: algoritmi di scheduling in OPL"

Presentazioni simili


Annunci Google