Ricerca operativa (2017/2018)

Codice insegnamento
4S00001
Docente
Romeo Rizzi
Coordinatore
Romeo Rizzi
crediti
6
Settore disciplinare
MAT/09 - RICERCA OPERATIVA
Lingua di erogazione
Italiano
Sede
VERONA
Periodo
II sem. dal 1-mar-2018 al 15-giu-2018.

Orario lezioni

Vai all'orario delle lezioni

Obiettivi formativi

Lo studente di matematica incontrera` in concretezza i concetti di: problemi, modelli e formulazioni della ricerca operativa, ma anche di istanze, algoritmi, riduzioni e mappature tra problemi dell'informatica. Il corso proporra` alcuni dei principali modelli della ricerca operativa, quantomeno i seguenti: programmazione lineare (PL), programmazione lineare intera (PLI), massimo flusso e minimo taglio, accoppiamenti massimi e coperture minime in grafi bipartiti, alberi ricoprenti di peso minimo, cammini minimi, cammini Euleriani, alcuni modelli di programmazione dinamica tra cui delle varianti dello zaino. Per tutti questi modelli/problemi tranne la PLI lo studente apprendera` degli algoritmi risolutori, le proprieta` su cui poggiano, e come condurne l'esecuzione.
Tuttavia, il corso si prefigge anche di costruire un buon rapporto e dimestichezza dello studente con tecniche e metodologie matematiche generali e con alcuni capisaldi delle discipline informatiche. Si insiste sul dialogo coi problemi e con l'arte e tecnica del congetturare, non si perde occasione di mettere in evidenza dove lavorino invarianti e monovarianti nelle dimostrazioni, algoritmi e strutture dati. Si sviluppa confidenza con l'induzione matematica e coi suoi dialetti all'insegna dell'efficienza (divide et impera, ricorsione con memoizzazione, programmazione dinamica). Si evidenziano alcuni principi base dell'informatica, quali la codifica, gli algoritmi, le strutture dati, la ricorsione come controparte dell'induzione e del computabile. (In alcune edizioni del corso si sono offerti accenni su numerabilita` e computabilita`). Sul piano dell'efficienza, cui la nostra impostazione e` devota, si giustifica ed utilizza la notazione asintotica e vengono introdotte le classi P, NP, coNP ed i concetti di buone caratterizzazioni, buone congetture e buoni teoremi e si illustra e pubblicizza come la teoria della complessita` possa fungere da fucina metodologica nell'arte di affrontare problemi e condurne indagine delle proprieta` strutturali intrinseche. Vengono ampiamente discussi e chiariti alcuni aspetti del ruolo ed importanza dell'arte del ridurre un problema ad un altro. Viene illustrato il flusso di lavoro attorno ad una buona congettura, la produzione ed interpretazione di controesempi come dialogo col problema e l'eventuale utilizzo degli stessi per ottenere dimostrazioni di NP-completezza. Costantemente, viene data esplicita enfasi al ruolo ed utilizzo dei certificati. Mentre si consegnano e si insiste su queste competenze trasversali ed alte, di stampo metodologico, diverse sono le competenze di tipo procedurale che lo studente viene chiamato ad apprendere e sviluppare, in particolare nell'ambito della PL, ed in una trattazione algoritmica alla teoria dei grafi, introdotti come modelli versatili e linguaggio immediato ed espressivo alla formulazione di problemi.
Per un elenco completo e puntuale di tutte le competenze procedurali richieste, rimandiamo ai temi e correzioni dei temi svolti nelle varie edizioni del corso. Nel tempo i temi tendono ad arricchirsi per includere competenze comunque impartite tra quelle poi richieste all'esame.

Confidiamo che le nozioni di complessita` computazionale introdotte e l'attenzione ai certificati conducano lo studente a riconoscere con maggior consapevolezza la struttura di una dimostrazione rigorosa.
L'esposizione a istanze, problemi, e modelli, con occhio sia agli algoritmi che alle formulazioni, rafforzera` la capacita` ed attitudine a formalizzare
matematicamente problemi espressi nel linguaggio naturale.
Nei risultati paradigmatici (dualita`, scarti complementari, interpretazione economica, analisi di sensitivita`) della programmazione lineare lo studente incontrera` modi importanti e non banali per trarre profitto da queste formulazioni per meglio chiarire ed affrontare le reali problematiche di interesse sottese.
Il linguaggio dei grafi, e gli strumenti della PL e della PLI, data la loro importanza e centralita` sia storica che attuale, rimangono a tutt'oggi temi d'avanguardia nel campo della Matematica Applicata. La loro padronanza consente di svolgere compiti professionali definiti, ad esempio come supporto modellistico-matematico e computazionale ad attivita` dell'industria, dei servizi e nella pubblica amministrazione, come anche nel campo dell'insegnamento della matematica o della diffusione della cultura scientifica.

Programma

La Ricerca Operativa mira a fornire dei metodi quantitativi
per la gestione delle risorse e l'ottimizzazzione
dei profitti, dei servizi, delle strategie.
Questo corso di Ricerca Operativa
muove alla Programmazione Matematica partendo
dall'Algoritmica a dalla Complessita` Computazionale.
Richiamata l'induzione matematica, la ricorsione ed il divide et impera,
si cerca di trasmettere in modo ampio ed approfondito l'approccio della
programmazione dinamica esemplificandolo in vari contesti tra cui
alcuni modelli classici della Ricerca Operativa.
Con enfasi sulle tecniche, si discute di formulare, codificare e modellare problemi,
di ridurre problemi ad altri, e di ben caratterizzare problemi.
Il corso offre un'introduzione approfondita alla programmazione lineare.
Motivati dalla modellistica, e seguendo percorsi storici,
si introducono i grafi e si esplorano alcuni risultati fondamentali di ottimizzazione combinatoria e teoria dei grafi.

ELENCO DEGLI ARGOMENTI:

1. Nozioni di base
problemi
modelli
algoritmi
complessita`

2. Introduzione agli algoritmi
analisi di alcuni algoritmi
tecniche di progetto (ricorsione, divede et impera, ricorsione con memoizzazione, programmazione dinamica, greedy)
complexity theory (P, NP, co-NP, buone caratterizzazioni, buone congetture, esempi di dimostrazioni di NP-completezza)

3. Alcuni modelli di ottimizzazione combinatoria
problemi di zaino
problemi su sequenze
problemi su DAGs

4. Fondamenti di Programmazione Lineare (PL)
la PL e la PLI (definizione, motivazioni, complessita`, ruolo)
metodo geometrico e visione geometrica della PL (spazio delle soluzioni,
pivot, dualita`, variabili duali, problemi degeneri, scarti complementari)
forme standard e canonica
il metodo del simplesso per la PL (descrizione ed analisi)
teoria della dualita`
condizioni degli scarti complementari
interpretazione economica per le variabili duali
analisi di sensitivita`

5. Introduzione alla teoria dei grafi
grafi e digrafi come modelli
alcune buone caratterizzazioni
(grafi bipartiti, euleriani, hamiloniani, planari)
cammini minimi
alberi ricoprenti di peso minimo
flussi massimi
accoppiamenti bipartiti

TESTI, DISPENSE E MATERIALI:

Trovi elenco completo dei materiali resi disponibili o comunque utilizzabili profiquamente alla pagina:

http://profs.sci.univr.it/~rrizzi/classes/RO/materiali

Se individui efficaci materiali che valuti compendiare utilmente tale lista, o se comunque la scopri incompleta, ti preghiamo di suggeririrci le eventuali integrazioni.


TUTORAGGIO (SE SARA` DISPONIBILE):

Per l'anno 2017-18 prevediamo di introdurre un tutoraggio che accompagera` gli studenti a percorrere effettivamente e toccare con mano le proposte e controparti pratiche avanzate durante le ore di teoria.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
T. Cormen, C. Leiserson, R. Rivest Introduction to algorithms (Edizione 1) MIT Press 1990 0262031418
Robert J. Vanderbei Linear Programming: Foundations and Extensions (Edizione 4) Springer 2001 978-1-4614-7630-6

Modalità d'esame

A fine corso un esame scritto con diverse tipologie di esercizi e domande su vari aspetti di quanto esposto a lezione. Il voto di tale esame (espresso in trentesimi) puo` essere integrato con eventuali progetti ideati insieme per migliorare aspetti o materiali del corso.
Nel prepararti all'esame,
prendi a riferimento i testi e le correzioni dei temi precedenti
come scaricabili al sito del corso:

http://profs.sci.univr.it/~rrizzi/classes/RO/index.html

Suggeriamo di consultare inoltre i tre file:
prepararsi_esame.pdf, procedura_esame.pdf e dopo_esame.pdf
offerti alla pagina con i testi di appelli precedenti e relative correzioni (contenuti nella cartella 000-INFO-ESAME-000, posta in cima alla lista delle cartelle dei vari appelli). Lo spirito con cui l'esame va affrontato e di cosa e come elaborare e proporre in risposta agli esercizi e`infatti in linea con alcuni dei messaggi metodologici che si mira a trasmettere con il corso e puo` riuscire faticoso affrontare con soddisfazione l'esame senza avere colto queste che da fuori possono sembrare solo sfumature.

Ogni anno accademico prevede 4 appelli (giugno, luglio, settembre, febbraio). Il testo di esame e le modalita` della sua valutazione sono le medesime per studenti frequentanti o non frequentanti, senza alcuna distinzione. E` chiaro e risulta nei fatti che lo studente che non ha frequentato sia penalizzato da una minore chiarezza su quali siano le richieste avanzate dal docente con gli esercizi. Per questo abbiamo curato l'archivio dei temi passati con relativi svolgimenti, con particolare attenzione al chiarire cosa debba essere prodotto dallo studente per ottenere dei punti a fronte di un esercizio. Allo stesso scopo rendiamo disponibili i video delle lezioni da due anni a questa parte. Nonostante questo alcuni messaggi restano difficili da acquisire senza la frequenza al corso.

Opinione studenti frequentanti - 2017/2018