Passa ai contenuti principali

Three Topics in Mixed Integer Programming

Credo che possa interessare a molti la tesi di dottorato di Arrigo Zanette, disponibile presso il sito dell'Università di Padova, dal titolo "Three Topics in Mixed Integer Programming".

Per comodità riporto l'abstract in italiano:
Nel presente lavoro di tesi descriviamo i nostri contributi su tre argomenti di Mixed Integer Programming (MIP).
Nel capitolo intitolato "Lexicography and degeneracy: Can a pure cutting plane algorithm work?" discutiamo una implementazione della versione lessicografica del metodo dei piani di taglio di Gomory per problemi di Integer Linear Programming (ILP) e due euristiche. Nei test computazionali su una batteria di istanze della libreria MIPLIB confrontiamo la performance dei metodi implementati col l'algoritmo standard di Gomory, sia nella versione a singolo taglio che nella versione multi taglio (round di tagli), e mostriamo che le nostre implementazioni producono un miglioramento radicale sulla procedura standard. In particolare riportiamo la soluzione esatta di istanze ILP come stein15, stein27 e bm23, per le quali l'algoritmo standard di Gomory non è in grado di chiudere se non una piccola frazione del gap di integralità. Inoltre forniamo un'interpretazione di questo sorprendente fenomeno.
Nel capitolo intitolato "Minimal Infeasible Subsystems and Benders cuts", prendendo ispirazione dai metodi cutting plane generalmente usati in MIP, proponiamo nuovi criteri di selezione per i tagli di Benders, e li analizziamo computazionalmente. Il nostro approccio si basa sulla corrispondenza tra sistemi minimamente infeasible di un problema lineare infeasible, e i vertici del così detto poliedro delle alternative. La scelta del taglio di Benders violato "più efficace" corrisponde quindi alla selezione di un vertice opportuno nel poliedro delle alternative, da cui segue che è cruciale una scelta intelligente della funzione obiettivo duale--mentre l'approccio di Benders textbook usa una politica di scelta completamente casuale. Nei test computazionali mostriamo che il metodo proposto consente uno speedup da 1 a 2 ordini di grandezza rispetto all'implementazione textbook.
Nel capitolo intitolato "Fast Approaches to Improve the Robustness of a Railway Timetable", ci occupiamo del problema di trovare una tabella oraria robusta in ambito ferroviario. Il Train Timetabling Problem (TTP) consiste nel trovare uno schedule dei treni di una rete ferroviaria che soddisfi dei vincoli operativi e massimizzi una funzione di profitto che stimi l'efficienza dell'uso dell'infrastruttura. Tuttavia la massimizzazione della funzione obiettivo può non essere sufficiente e si può voler trovare una soluzione robusta, ovvero capace di assorbire il più possibile i ritardi/disturbi sulla rete. A tal fine, proponiamo e analizziamo computazionalmente quattro diversi metodi per migliorare la robustezza di una data soluzione di TTP. Gli approcci combinano Programmazione Lineare e tecniche ad-hoc di Stochastic Programming/Robust Optimization. I risultati computazionali su istanze reali mostrano che due delle tecniche proposte sono molto veloci e forniscono soluzioni robuste di qualità comparabile con un approccio di Stochastic Programming standard ma computazionalmente molto più oneroso.

Buona lettura a tutti!

Commenti

Post popolari in questo blog

Digital Twin – Il caso Hyperloop

  Con il termine  hyperloop  si identificano una serie di tecnologie che promettono di rivoluzionare il trasporto di persone e cose. L’idea di base è molto semplice: far viaggiare all’interno di tubi, dove viene creato il vuoto, delle capsule ad alta velocità con binari a levitazione magnetica.   Credits: Virgin Hyperloop on instagram.com/p/CRHEB9ctQ6u/   Qualche tempo fa, mi è capitato di leggere un interessante articolo su come la progettazione della soluzione guidata dal gruppo Virgin, sia stata affiancata da analisi svolte mediante un sistema di ottimizzazione matematica. Come meglio descritto nel seguito, un digital twin, completamente basato su un modello matematico di ottimizzazione, permette di valutare le migliori scelte progettuali tenendo in considerazione i vari obiettivi di progetto.   La necessità di avere un digital twin nasce probabilmente dal fatto che le tecnologie  hyperloop  non hanno una base di partenza già esistente. No...

La programmazione dichiarativa come sistema di intelligenza artificiale

Sull'intelligenza artificiale si è creato un grosso equivoco, che vale la pena risolvere. https://www.instagram.com/p/BwyfskdnV7a/ Senza voler essere formali, l’accezione comune di intelligenza artificiale è usata per identificare un sistema informatico basato su reti neurali usato per risolvere problemi di  difficile formalizzazione . Ad esempio, le auto a guida autonoma, i sistemi di traduzione in tempo reale, la previsione dei prezzi dell’energia. Per  difficile formalizzazione  intendo un concetto molto sottile. Scrivere un algoritmo che sia in grado di riconoscere l’immagine di un gattino è molto difficile se non impossibile. Mentre, in maniera paradossale, è più semplice scrivere un algoritmo che  impari  a riconoscere gattini perché è stato addestrato con le immagini di mille diversi gattini. Cablare ed addestrare una rete neurale che riconosca gattini è un esempio di  meta-programmazione , proprio perché non si scrive un algoritmo che ca...

PuLP – Un valido strumento per la didattica

L'insegnamento dei concetti di base della ricerca operativa, ovvero la programmazione lineare, ha trovato nel corso degli ultimi anni diversi strumenti di supporto. Sono ormai parecchi i software gratuiti e open source che permettono agli studenti e agli insegnanti di toccare con mano le nozioni e i concetti spiegati e studiati sui banchi. Ricordiamo, ad esempio, glpk che con il suoi linguaggio di modellazione MathProg permettete di scrivere e risolvere anche complessi modelli di programmazione lineare intera. Oppure citiamo anche lp_solve che con il suo ambiente impropriamente chiamato lp_solve IDE permette di scrivere e risolvere modelli di programmazione lineare direttamente nella formulazione matematica. A mio avviso però le proposte appena citate sono limitate nella potenza espressiva e nelle capacità di integrarsi con altri software o moduli esterni. Queste limitazioni sono egregiamente risolte da PuLP : un modellatore di problemi di programmazione lineare intera basato ...