Il volume nasce dai corsi di ricerca operativa e di ottimizzazione su reti, tenuti dall'autore presso la Scuola di Ingegneria e Architettura dell'Università di Bologna, ed include una raccolta di esercizi svolti, in parte assegnati per la prova scritta d'esame ed in parte progettati per offrire una panoramica esauriente dei diversi casi che possono presentarsi nell'ambito degli argomenti trattati. I primi due capitoli presentano una introduzione generale alla disciplina, alla programmazione matematica e alla programmazione convessa. I tre capitoli successivi sviluppano gli aspetti teorici della programmazione lineare, l'algoritmo del simplesso, la teoria della dualità e l'analisi di sensitività. Il sesto capitolo tratta i problemi di programmazione lineare intera, i piani di taglio e gli algoritmi branch-and-bound. Nel settimo capitolo viene introdotta la teoria dei grafi, vengono descritti gli algoritmi per la soluzione di alcuni problemi di particolare rilevanza e vengono esaminate le loro relazioni con la programmazione matematica. L'ottavo capitolo introduce i concetti fondamentali della teoria della complessità, gli algoritmi pseudo-polinomiali e la programmazione dinamica. Nel nono e decimo capitolo vengono esaminate le strategie di esplorazione degli alberi decisionali, i metodi di rilassamento, le procedure di riduzione, gli algoritmi approssimati e i paradigmi metaeuristici. L'ultimo capitolo tratta i modelli di simulazione discreta, utilizzando esempi relativi a sistemi nei quali svolge ruolo primario la gestione nel tempo di code e di entità tra loro interagenti. Per molti degli algoritmi trattati sono disponibili, nella pagina web dell'autore, applet didattici che ne consentono l'esecuzione passo-passo. Il contenuto dell'intero volume è illustrato da circa 400 slide (in inglese) che possono essere liberamente scaricate dalla pagina web dell'autore.