Programmazione a vincoli: algoritmi di scheduling in OPL

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Traduzione ed Interpretazione
Manerba Daniele – Università degli Studi di Brescia – a.a
Politecnico di Torino Tesi di Laurea
23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona.
Scomposizione funzionale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Evoluzione dei linguaggi di programmazione
Array multidimensionali
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
I linguaggi di programmazione
Linguaggi di programmazione
Semantica di linguaggi di programmazione Ne esistono differenti stili a seconda di paradigma di programmazione uso (validazione, prototyping, verifica.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Generalità Linguaggio e Macchina Astratta
Re-engineering del wrapper XML Schema per il sistema MOMIS
ODE PROBLEMA DI CAUCHY IN 1-D Sia f : I x RR, I  R.
Interpretazione Astratta
Analisi e Verifica di Programmi Laboratorio di AVP Corso di Laurea in Informatica AA Tino Cortesi.
Università degli Studi di Roma Tor Vergata
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Seminario su clustering dei dati – Parte II
Modelli e Algoritmi per la Logistica Branch & Bound Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di.
Modelli e Algoritmi per la Logistica
Tecniche di Risoluzione della Programmazione a Breve Termine.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità
Unità Didattica 2 I Linguaggi di Programmazione
nome: sequenza di caratteri usata per denotare un oggetto
Linguaggi di markup1 LINGUAGGI DI MARKUP. Linguaggi di markup2 Documenti su Internet Internet permette (tra laltro) di accedere a documenti remoti In.
Espressioni condizionali
Progettazione di una base di dati
Daniel Stoilov Tesi di Laurea
Da Problema a Programmazione
Algoritmi e Programmazione strutturata
Lo sviluppo del software e i linguaggi di programmazione
Laureando: Enrico Masini
Stima del flusso ottico per il controllo dei movimenti oculari
Programma di Informatica Classi Prime
Politecnico di Torino maggio DIDAMATICA 2011 Insegnare Futuro EXCEL4PS&SP – 6 Maggio 2011 Prof. Nicola Armenise, PhD I.T.E.S. “A. Olivetti” -
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
Dal problema all’ algoritmo
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Sistemi con vincoli Francesca Rossi Aprile-Giugno 2004.
Algoritmi euristici per l’ottimizzazione dell’offerta nella raccolta di rifiuti Tesi di laurea di Nicola Bindini Relatore: Chiar.mo Prof. Ing. DANIELE.
Concetti Fondamentali sulla Programmazione
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Progetti Regole dei progetti Due studenti per progetto Due studenti per progetto Lavoro indipendente, con coordinamento per mettere insieme le due.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Il PENSIERO COMPUTAZIONALE
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Unità di apprendimento 6
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

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

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.

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.

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

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.

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);

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 45 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

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.