In questa guida
Ricerca Operativa è una delle materie più discusse del 2° anno di Ingegneria Gestionale Mercatorum. Con 9 CFU e un approccio matematico-algoritmico, affronta il problema fondamentale dell'ingegneria gestionale: come ottimizzare l'allocazione di risorse scarse. Il programma ufficiale parte dai modelli di ottimizzazione e dalla programmazione lineare (incluso il metodo del simplesso), prosegue con la programmazione lineare intera (branch and bound) e arriva alla programmazione non lineare e a un ampio ventaglio di applicazioni — dalla pianificazione degli investimenti all'ottimizzazione di portafoglio, dalla logistica al machine learning.
Programma: 45 unità didattiche
Ricerca Operativa (MAT/09) ha 45 unità didattiche organizzate in una progressione unica: dai modelli di ottimizzazione e dalla programmazione lineare, alla programmazione lineare intera, fino alla programmazione non lineare e a un ampio blocco di applicazioni (produzione, trasporti, investimenti, portafoglio, logistica, machine learning).
Obiettivi formativi
Secondo il programma ufficiale, il corso fornisce la cultura e gli strumenti metodologici di base per analizzare e risolvere problemi di ottimizzazione attraverso modelli di programmazione matematica. Al termine dello studio lo studente è in grado di: formulare e risolvere problemi di programmazione lineare; conoscere i problemi e gli algoritmi fondamentali di ottimizzazione su rete; applicare gli elementi di base dell'ottimizzazione combinatoria (programmazione lineare intera, branch and bound).
Cosa trovi in questa guida: il programma completo con i codici corso di tutti i piani di studio, i blocchi tematici sviluppati in ordine didattico con schemi di supporto, il metodo di studio condiviso dalla community, le domande più frequenti, come funziona l'esame e quanto tempo serve per prepararlo. Il metodo operativo di studio è nella sezione Come la studiano.
Codici corso (tutti i piani di studio)
Il codice di Ricerca Operativa è invariato in tutti i piani L9 Mercatorum:
Codici Ricerca Operativa — L9 Ingegneria Gestionale Mercatorum
| Piano A.A. | Nome nel piano | CFU | Codice | Anno |
|---|---|---|---|---|
| 2024/2025 | Ricerca Operativa | 9 | 0092509MAT09 | 2° |
| 2025/2026 | Ricerca Operativa | 9 | 0092509MAT09 | 2° |
| 2026/2027 | Ricerca Operativa | 9 | 0092509MAT09 | 2° |
Di cosa parla
Il programma ufficiale (codice 0092509MAT09) copre, in sintesi: modelli di ottimizzazione e loro classificazione; convessità ed esistenza di soluzioni; programmazione lineare e poliedri, con il metodo del simplesso; le applicazioni classiche della PL (produzione, miscelazione, trasporto); la programmazione lineare intera con il branch and bound e le sue applicazioni combinatorie (zaino, assegnamento, bin packing); la pianificazione di investimenti e reti di servizio; la programmazione non lineare e un blocco finale di applicazioni avanzate (localizzazione, parametri aleatori, portafoglio, logistica, machine learning).
Studia con chi sta preparando Ricerca Operativa ora
Nel gruppo trovi riassunti, schemi di studio e materiali condivisi dagli studenti.
Argomenti del programma da approfondire
Roadmap dei blocchi tematici
1. Problemi di ottimizzazione: modelli e soluzione grafica
2. Convessità, esistenza e classificazione dei problemi
3. Programmazione lineare e poliedri: il metodo del simplesso
4. Applicazioni classiche della PL: produzione, miscelazione, trasporto
5. Programmazione lineare intera e ottimizzazione combinatoria
6. Pianificazione di investimenti e reti di servizio
7. Programmazione non lineare e applicazioni avanzate
1. Problemi di ottimizzazione: modelli e soluzione grafica
Il corso parte dai problemi di decisione: come tradurre una situazione reale in un modello matematico, risolverlo e interpretarne la soluzione. Il primo caso guida è il problema di produzione lineare, con la sua soluzione grafica in due variabili; segue un esempio di problema di produzione non lineare, utile per introdurre la distinzione tra problemi convessi e non convessi e tra ottimi globali e ottimi locali — una distinzione che nella PL sparisce (ogni ottimo locale è globale), ma nella programmazione non lineare del blocco finale torna centrale. Si definisce poi la struttura generale di un problema di ottimizzazione — ammissibilità, illimitatezza, soluzione ottima — e l'equivalenza formale tra un problema di minimizzazione e uno di massimizzazione (basta cambiare segno alla funzione obiettivo).
Collegamento: per sapere se un problema ha soluzione (e se quella soluzione è davvero ottima) serve capire quando l'insieme ammissibile e la funzione obiettivo si comportano "bene" — è il tema della convessità che apre il blocco successivo.
2. Convessità, esistenza e classificazione dei problemi
Questo blocco fornisce gli strumenti teorici che garantiscono che un problema di ottimizzazione sia risolvibile: i teoremi di esistenza di soluzioni e le proprietà dei problemi convessi, con le condizioni di risolvibilità e convessità applicate al problema di produzione visto prima. Si passa poi ai vincoli: le tipologie di vincoli nei problemi di ottimizzazione, le condizioni sufficienti per la chiusura dell'insieme ammissibile e la sua risolvibilità, cosa sono i vincoli convessi e come generano insiemi convessi. Chiude il blocco la classificazione formale delle funzioni (lineari, quadratiche) e dei problemi di ottimizzazione nel loro complesso.
Collegamento: quando sia i vincoli sia la funzione obiettivo sono lineari, il problema rientra nella classe più importante del corso — la programmazione lineare — che ha una struttura geometrica specifica: il poliedro dei vincoli.
3. Programmazione lineare e poliedri: il metodo del simplesso
Qui si entra nel cuore del corso: i problemi di programmazione lineare. La regione ammissibile di un PL è un poliedro, e il teorema fondamentale della programmazione lineare stabilisce che, se esiste, la soluzione ottima si trova sempre in un vertice del poliedro. Il programma dedica tre unità alla caratterizzazione, all'esistenza e al calcolo dei vertici di un poliedro, prima di introdurre lo schema concettuale del metodo del simplesso — l'algoritmo che esplora i vertici del poliedro spostandosi sempre verso un valore migliore della funzione obiettivo, fino a raggiungere l'ottimo.
Schema — Formulazione tipo di un problema di PL
| Elemento | Descrizione | Esempio (mix produttivo) |
|---|---|---|
| Variabili decisionali | Ciò che devo decidere (quantità, assegnazioni, …) | x₁ = unità di prodotto A, x₂ = unità di prodotto B |
| Funzione obiettivo | Grandezza da massimizzare o minimizzare | max z = 5x₁ + 4x₂ (profitto totale) |
| Vincoli di risorsa | Limiti sulle risorse disponibili (definiscono il poliedro) | 6x₁ + 4x₂ ≤ 24 (ore macchina); 1x₁ + 2x₂ ≤ 6 (ore lavoro) |
| Vincoli di non negatività | Le variabili non possono essere negative | x₁ ≥ 0, x₂ ≥ 0 |
| Vertice ottimo | Per il teorema fondamentale, l'ottimo (se esiste) è in un vertice del poliedro | tra i vertici ammissibili, quello con z massimo |
| Forma standard | Aggiunta di variabili di scarto per trasformare ≤ in = | 6x₁ + 4x₂ + s₁ = 24; x₁ + 2x₂ + s₂ = 6; s₁, s₂ ≥ 0 |
Schema — Passi del metodo del simplesso
| Passo | Azione | Come si fa |
|---|---|---|
| 1 | Porta in forma standard | Aggiungi variabili di scarto (s₁, s₂, …) per ogni vincolo ≤; le variabili di scarto sono la base iniziale |
| 2 | Costruisci il tableau iniziale | Righe = vincoli (+ riga obiettivo); colonne = variabili (originali + scarto + b). La base iniziale è formata dalle variabili di scarto (matrice identità) |
| 3 | Test di ottimalità | Guarda la riga dell'obiettivo (costi ridotti): se tutti i coefficienti delle variabili non di base sono ≥ 0 (per max con riga obiettivo negata) → ottimo raggiunto |
| 4 | Scelta variabile entrante | Seleziona la colonna con il costo ridotto più negativo (regola standard) oppure il primo negativo da sinistra (regola di Bland anti-ciclaggio) |
| 5 | Scelta variabile uscente | Calcola il rapporto b_i / a_ij per ogni riga con a_ij > 0; scegli la riga con il rapporto minimo (test del rapporto minimo) |
| 6 | Pivot | Dividi la riga pivot per l'elemento pivot; aggiorna le altre righe sottraendo multipli opportuni per azzerare la colonna della variabile entrante |
| 7 | Torna al passo 3 | Ripeti fino all'ottimalità o a individuare un problema illimitato (nessun rapporto positivo nella colonna entrante) |
Collegamento: una volta capito come si risolve un PL in astratto, il programma applica lo stesso schema a problemi aziendali concreti — produzione, miscelazione, trasporto — che condividono tutti la stessa struttura di vincoli lineari.
4. Applicazioni classiche della PL: produzione, miscelazione, trasporto
Il programma applica la programmazione lineare a tre famiglie di problemi aziendali. I problemi di produzione, nelle varianti a risorse concorrenti (più prodotti competono per le stesse risorse), a risorse alternative e con vincoli percentuali (es. un ingrediente non può superare una certa quota del totale). I problemi di miscelazione, con le loro varianti a vincoli di gradazione e a vincoli per gruppi di ingredienti — tipici della formulazione di prodotti (alimentari, chimici) dove più componenti vanno dosati rispettando soglie minime e massime. I problemi di trasporto, che minimizzano il costo di spedizione da più origini a più destinazioni rispettando le disponibilità e i fabbisogni.
Collegamento: tutti questi problemi assumono variabili continue (le quantità possono essere frazionarie). Ma molte decisioni aziendali reali sono binarie o intere — costruire o no un impianto, quanti turni attivare — ed è per questo che il programma introduce la programmazione lineare intera.
5. Programmazione lineare intera e ottimizzazione combinatoria
Quando le variabili devono essere intere (o 0-1), il rilassamento continuo del problema non basta e arrotondare la soluzione può dare risultati non ammissibili o lontani dall'ottimo. Il metodo branch and bound risolve la programmazione lineare intera (PLI) esplorando un albero di sottoproblemi: ogni ramo fissa il valore di una variabile intera, e i rami vengono scartati (pruning) quando il loro limite superiore non può migliorare la soluzione già trovata. Su questa base il programma sviluppa una serie di problemi combinatori classici: il problema dello zaino e i problemi di assegnamento, i problemi di bin packing, set covering e set packing, i problemi con costi fissi, i problemi con vincoli sulle tipologie e i problemi con vincoli disgiuntivi (vincoli del tipo "o l'uno o l'altro", tipici della pianificazione di attività alternative).
Collegamento: gli stessi strumenti di PL e PLI sono la base per pianificare decisioni più ampie nel tempo — non solo un singolo problema di produzione, ma un intero piano di investimenti o di sviluppo di una rete di servizio.
6. Pianificazione di investimenti e reti di servizio
Il programma applica PL e PLI alla pianificazione: i problemi di pianificazione degli investimenti (quali progetti finanziare, con quale combinazione, rispettando un budget), i problemi di pianificazione delle reti di servizio e delle reti di risposta — la progettazione di infrastrutture o servizi che devono coprire una domanda distribuita sul territorio o nel tempo.
Collegamento: fin qui il corso ha lavorato solo con funzioni e vincoli lineari. L'ultimo blocco del programma abbandona questa ipotesi ed entra nella programmazione non lineare, insieme a un ventaglio di applicazioni più avanzate.
7. Programmazione non lineare e applicazioni avanzate
Il blocco conclusivo tratta la programmazione non lineare e i suoi metodi iterativi (a differenza del simplesso, che si muove tra vertici di un poliedro, qui la soluzione si avvicina all'ottimo per approssimazioni successive). Il programma applica questi strumenti a una serie di problemi che vanno oltre la produzione: i problemi con funzione di domanda (dove il prezzo o la quantità venduta dipendono in modo non lineare dalle scelte), i problemi di localizzazione (dove posizionare un impianto o un magazzino per minimizzare i costi di servizio), i problemi con parametri aleatori (dati non certi, da trattare con un margine di rischio) e i problemi di ottimizzazione del portafoglio (allocare un capitale tra più attività bilanciando rendimento e rischio). Chiudono il programma i problemi di logistica e vehicle routing (pianificazione dei percorsi di consegna), i problemi di machine learning e intelligenza artificiale, i problemi di classificazione e regressione e i problemi blackbox risolti con metodi evolutivi (quando la funzione obiettivo non ha una forma analitica nota e va valutata solo per tentativi).
Schema di sintesi — Dalla PL alle applicazioni avanzate
| Classe di problema | Cosa cambia rispetto alla PL "base" |
|---|---|
| PL intera (branch and bound) | variabili intere/binarie: si esplora un albero di sottoproblemi, non un solo poliedro |
| Pianificazione reti/investimenti | stessi strumenti di PL/PLI, applicati a un orizzonte di decisioni più ampio |
| Programmazione non lineare | funzione obiettivo o vincoli non lineari: si usano metodi iterativi, non il simplesso |
| Applicazioni avanzate (portafoglio, logistica, ML) | gli stessi principi di ottimizzazione applicati a domini specifici, spesso con dati incerti |
Come la studiano
Le strategie più condivise da chi ha già sostenuto Ricerca Operativa:
- Fare molti esercizi di simplesso a mano. Il simplesso non si capisce leggendo — si impara eseguendo i pivot sul tableau. Chi ha fatto almeno 10 esercizi completi a mano (costruzione del tableau, iterazioni, test di ottimalità) lo trova automatico all'esame. Chi lo ha studiato solo sulla teoria si blocca.
- Imparare prima la formulazione, poi il simplesso. Molte domande riguardano la formulazione del problema (identificare variabili, scrivere i vincoli) più che l'esecuzione del simplesso. Saper tradurre un problema testuale in un modello PL è fondamentale.
- Riconoscere la famiglia di problema prima di formulare. Produzione, miscelazione e trasporto hanno pattern di formulazione ricorrenti (stesse tipologie di variabili e vincoli). Imparare a riconoscerli velocizza la scrittura del modello in sede d'esame.
- Programmazione non lineare: capire cosa cambia, non un nuovo algoritmo. I metodi iterativi dell'ultimo blocco non seguono uno schema fisso come il simplesso. Conviene concentrarsi su perché non si può più usare il simplesso (funzioni o vincoli non lineari) più che su un procedimento da ripetere a memoria.
- Branch and bound: capire l'albero, non memorizzare i passi. Il metodo branch and bound è più intuitivo se si capisce la logica (esploro le possibilità, taglio i rami peggiori del limite superiore) che non se si cerca di memorizzare una procedura meccanica.
Domande dalla community
- Ricerca Operativa è la materia più difficile del 2° anno?
- Per molti studenti sì, insieme ad Analisi Matematica II. La combinazione di comprensione teorica (formulazione dei modelli, branch and bound) e abilità algoritmica (simplesso sul tableau) la rende più impegnativa delle materie gestionali. È tra le materie del 2° anno con più scambi tra studenti su esercizi specifici.
- Bisogna aver dato Analisi Matematica I prima di Ricerca Operativa?
- Non ci sono propedeuticità formali obbligatorie, ma Ricerca Operativa usa concetti di ottimizzazione (funzioni, derivate, gradiente per problemi non lineari) che presuppongono Analisi I. La programmazione lineare in sé usa solo algebra lineare, ma la comprensione profonda del simplesso e della programmazione non lineare finale è più solida con l'analisi già data.
- L'esame di Ricerca Operativa include esercizi numerici completi?
- Sì. Le domande a risposta multipla possono includere la richiesta di identificare la variabile entrante in un dato tableau, calcolare il rapporto minimo per la variabile uscente, o leggere il valore ottimale da un tableau già risolto. Non si esegue un simplesso completo in una singola domanda, ma si testano i singoli passi dell'algoritmo. Fare esercizi completi aiuta a rispondere correttamente ai passi singoli.
Come funziona l'esame
Come tutti gli esami Pegaso, Mercatorum e San Raffaele dal 2026: prova intermedia online (Lockdown Browser, da casa) seguita da prova finale obbligatoria in presenza per verbalizzare il voto definitivo.
Le modalità cambiano frequentemente: numero di domande, sessioni in presenza, punti premialità, tablet vs orale. Trovi tutto spiegato nella guida completa, sempre aggiornata:
Come funzionano gli esami Pegaso, Mercatorum e San Raffaele →Quanto tempo serve
Con 45 unità didattiche, il carico di visione è circa 15-22 ore. Considerando lo studio attivo (esercizi di simplesso, branch and bound, formulazione dei modelli), la stima è 4-6 settimane. La programmazione lineare e il simplesso richiedono il tempo maggiore perché si impara facendo, non leggendo. Chi ha già dato Analisi I trova il blocco finale di programmazione non lineare più veloce.
Questa materia ti prepara a…
- Logistica e Supply Chain (materie avanzate del percorso L9) — i problemi di trasporto, localizzazione e scheduling usano direttamente modelli di PL e PLI
- Gestione della Produzione — la pianificazione della produzione (MPS, MRP) si modella con PL intera
- Analisi delle Decisioni — l'interpretazione economica del tableau ottimo (costi ridotti, valore marginale delle risorse) è alla base dell'analisi economica delle decisioni di investimento in risorse
- Analisi Matematica — la comprensione dell'ottimizzazione vincolata (che in RO è lineare) prepara ai metodi di ottimizzazione non lineare (Lagrangiani, KKT) delle materie magistrali
Studia con chi sta preparando Ricerca Operativa ora
Community L9 Ingegneria Gestionale Mercatorum: simplesso, branch and bound, esercizi di formulazione.
Domande frequenti
Quanti CFU vale Ricerca Operativa L9 Mercatorum?
9 CFU (MAT/09, codice 0092509MAT09). È al 2° anno del piano di studi, presente in tutti i piani (2024/2025, 2025/2026, 2026/2027) con lo stesso codice.
Come funziona l'esame Ricerca Operativa Mercatorum?
Online sulla piattaforma Mercatorum, domande a risposta multipla. Alcune domande testano i singoli passi del simplesso.
Quante videolezioni ha Ricerca Operativa L9 Mercatorum?
45 unità didattiche (9 CFU × 5 per CFU). Circa 15-22 ore di visione totale.
È difficile Ricerca Operativa Mercatorum?
È una delle materie più discusse del 2° anno. Richiede sia comprensione teorica (formulazione dei modelli, branch and bound) che abilità algoritmica (simplesso sul tableau). Con molti esercizi pratici si supera in 4-6 settimane.
Bisogna aver dato Analisi I per Ricerca Operativa?
Non è una propedeuticità formale, ma è fortemente consigliata. La PL usa algebra lineare, ma la comprensione profonda del simplesso e della programmazione non lineare finale è più solida con Analisi I già data.
Quanto tempo serve per Ricerca Operativa L9 Mercatorum?
4-6 settimane di studio attivo. Il simplesso si impara facendo esercizi, non leggendo. Il blocco finale di programmazione non lineare è nuovo rispetto alle altre materie del piano di studi.