Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti programmazione PLI, Schemi e mappe concettuali di Ricerca Operativa

appunti programmazione lineare intera

Tipologia: Schemi e mappe concettuali

2025/2026

Caricato il 27/04/2026

otta-negro
otta-negro 🇮🇹

6 documenti

1 / 12

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
RICERCA OPERATIVA
La ricerca operativa è una branca della matematica applicata riguardante lapplicazione
di metodi scientifici per risolvere problemi complessi e supportare i problemi
decisionali.
Si occupa progettare e gestire al meglio i sistemi uomo-macchina, in condizioni che
richiedono lallocazione di risorse limitate.
Utilizza metodi analitici avanzati per prendere decisioni corrette.
La ricerca operativa ha avuto una notevole diffusione con lavvento dellera
dellinformatica. Ha numerose applicazioni in diversi contesti (es. trasporti e logistica,
produzioni industriali, rete di telecomunicazioni, biologia, sport, ecc.).
Un problema molto famoso della ricerca operativa è il PROBLEMA DEL COMMESSO
VIAGGIATORE (Traveling Salesman Problem):
Dato un insieme di città con le relative distanze per ogni coppia di città, si vuole
determinare il percorso di un commesso viaggiatore per ritornare a una certa città di
partenza dopo aver visitato tutte le altre città una sola volta, minimizzando la distanza
percorsa.
Il problema ha suscitato molto interesse,
tanto che nel 1962 è stato creato il Procter
and Gamble contest: contest nella quale si
doveva creare il percorso più efficace che
un viaggiatore deve fare per visitare 54
città negli USA.
Il problema non è mai stato risolto.
PROBLEMA DEI SETTE PONTI DI KONIGBERG
7 ponti collegano 4 zone della città di Konigsberg.
Domanda: è possibile camminare per la città
attraversando tutti i ponti una sola volta?
=> è impossibile
TOUR DEL CAVALLO NEGLI SCACCHI
Domanda: è possibile con le mosse di un
cavallo in una scacchiera passare per tutte le
caselle una sola volta? => risolto
Problema su grafo; gli spigoli devono toccare i
nodi una sola volta
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica appunti programmazione PLI e più Schemi e mappe concettuali in PDF di Ricerca Operativa solo su Docsity!

RICERCA OPERATIVA

La ricerca operativa è una branca della matematica applicata riguardante l’applicazione di metodi scientifici per risolvere problemi complessi e supportare i problemi decisionali. Si occupa progettare e gestire al meglio i sistemi uomo-macchina, in condizioni che richiedono l’allocazione di risorse limitate. Utilizza metodi analitici avanzati per prendere decisioni corrette. La ricerca operativa ha avuto una notevole diffusione con l’avvento dell’era dell’informatica. Ha numerose applicazioni in diversi contesti (es. trasporti e logistica, produzioni industriali, rete di telecomunicazioni, biologia, sport, ecc.). Un problema molto famoso della ricerca operativa è il PROBLEMA DEL COMMESSO VIAGGIATORE (Traveling Salesman Problem): Dato un insieme di città con le relative distanze per ogni coppia di città, si vuole determinare il percorso di un commesso viaggiatore per ritornare a una certa città di partenza dopo aver visitato tutte le altre città una sola volta, minimizzando la distanza percorsa. Il problema ha suscitato molto interesse, tanto che nel 1962 è stato creato il Procter and Gamble contest: contest nella quale si doveva creare il percorso più efficace che un viaggiatore deve fare per visitare 54 città negli USA. Il problema non è mai stato risolto. PROBLEMA DEI SETTE PONTI DI KONIGBERG 7 ponti collegano 4 zone della città di Konigsberg. Domanda: è possibile camminare per la città attraversando tutti i ponti una sola volta? => è impossibile TOUR DEL CAVALLO NEGLI SCACCHI Domanda: è possibile con le mosse di un cavallo in una scacchiera passare per tutte le caselle una sola volta? => risolto Problema su grafo; gli spigoli devono toccare i nodi una sola volta

METODI DI PROGRAMMAZIONE LINEARE

I modelli sono costituiti da

  • Problema, ovvero la questione da risolvere (es. problema del commesso viaggiatore)
  • istanza, ovvero le variabili di input (es. 54 città)
  • modello, ovvero la rappresentazione matematica del problema
  • algoritmo, ovvero la procedura operativa che porta alla soluzione di ogni istanza del problema (ogni casistica possibile). L’algoritmo può essere esatto, se la soluzione è ottima; olistico, se si ottengono procedure (soluzioni) molto ragionevoli, ma non ottime. L’algoritmo olistico è utile per procedure che richiedono un ragionamento di pochi secondi. Es. PROBLEMA DELLO ZAINO🎒 Si considerino n oggetti ed uno zaino che possa sopportare una determinata capacità (in kg) W. Ogni oggetto i=1….n è caratterizzato da un peso wi e un profitto pi. Il problema consiste nello scegliere quali di questi oggetti mettere nello zaino per ottenere il profitto massimo senza eccedere il peso sostenibile dallo zaino stesso. n=5, W= Nella programmazione matematica vengono studiati i problemi di ottimizzazione, nei quali si cerca di determinare una tra le soluzioni migliori attraverso un modello matematico:

Tutte le soluzioni ammissibili devono soddisfare tutti e 3 i vincoli contemporaneamente in rosso è rappresentata la regione ammissibile Si prova a trovare graficamente una soluzione ottima. Si riportano le due rette di isocosto (blu), che indicano insiemi di punti con lo stesso valore di funzione obiettivo. La soluzione ottima è quella più vicina all’origine Es. SilComputers è un’azienda che si occupa della produzione di notebook e pc fissi. L’azienda vuole stabilire quanti notebook e quanti pc fissi produrre al fine di massimizzare il profitto nel prossimo quadrimestre. L’azienda produce solamente in lotti da 100 elementi (notebook o fissi). Vincoli:

  • ciascun computer ha una CPU e ne abbiamo a disposizione 1000 per il prossimo quadrimestre
  • ciascun computer ha bisogno di banchi di memoria: 1 per i notebook, 2 per i fissi. Se ne hanno a disposizione 1500 per il prossimo quadrimestre
  • ciascun computer richede un tempo di assemblaggio: 4 min per i notebook, 3 min per i pf fissi. In un quadrimestre l’azienda ha a disposizione 2500 min per le operazioni di assemblaggio.
  • il profitto ottenuto per la vendita dei notebook è 750$, 1000$ per i fissi.

Es. un gruppo di amici, volendo fare una gita, ha deciso di mettere cibi e bevande in uno zaino da 10 kg. Lo zaino può essere riempito con:

  • cioccolata (confezioni da 0.5 kg)
  • succhi di frutta (bottiglie da 1l)
  • lattine di birra (da 0.33l)
  • panini (da 0.1 kg l’uno)
  • acqua (bottiglie da 1l)
  • pacchi di biscotti (confezioni da 0.5 kg) Dopo un’indagine tra i partecipanti della gita, sono stati determinati dei punteggi per i prodotti (voto da 1 a 100): cioccolata 10, succhi di frutta 30, birra 6, panini 3, acqua 20, pacchi di biscotti 20. Requisiti minimi: lo zaino deve contenere almeno 2 confezioni di cioccolata, 2 bottiglie di succo, 6 lattine di birra, 10 panini, 1 bottiglia d’acqua, 2 confezioni di biscotti. Formulare un modello di programmazione lineare che massimizzi il punteggio rispettando il vincolo di capacità nello zaino. CONSIGLI UTILI PER PL/PLI
    • NO moltiplicare le variabili: i modelli sono lineari, posso solo sommare o sottrarre le variabili (NO x1y, x1/y, x1^2)
    • più modelli possono essere corretti per lo stesso problema, ma è sempre meglio sviluppare il modello più semplice

Es. Il proprietario del ranch Little Dixie sta facendo dei test per determinare la mescola corretta per due alimenti contenenti in percentuali differenti quattro diversi tipi di ingredienti essenziali. L’alimento 1 ha un costo unitario di 5$ ed è formato per il 40% dall’ingrediente I1, per il 10% da I2, per il 20% da I3 e per 30% da I4. L’alimento 2 ha un costo unitario di 3$ ed è formato per il 20% da I1, per il 30% da I2, per il 40% da I3 e per il 10% da I4. Sapendo che devono essere impiegate come minimo 400 unità di I1, 200 da I2, 300 da I3 e 600 da I4, si vuole formulare un modello lineare per determinare la mescola di costo minimo. Es. Un’azienda produce tre modelli 1, 2 e 3 di un certo prodotto. Ciascun modello richiede due tipi di materiali grezzi (A e B) di cui sono disponibili rispettivamente 4000 e 6000 unità. In particolare, per produrre un’unità del modello 1 sono necessarie 2 unità di A e 4 di B; per un’unità del modello 2 servono 3 unità di A e 2 di B; per un’unità del modello 3 servono 5 unità di A e 7 di B. Il modello 1 richiede, per ogni unità prodotta, il doppio di forza lavoro rispetto al modello 2 è il triplo rispetto al modello 3. La forza lavoro presente in azienda è in grado di riprodurre al massimo l’equivalente di 700 unità/lavoro del modello 1. Il settore marketing dell’azienda ha reso noto che la domanda minima per ciascun

modello è rispettivamente di 200, 200 e 150 unità. Il profitto unitario di ogni modello è di 30, 20 e 50€, rispettivamente. Si richiede di pianificare la produzione giornaliera massimizzando il profitto. MODELLI MIN-MAX Esistono problemi in cui l’obiettivo è quello di minimizzare il massimo tra un’insieme di valori relativi ad una grandezza d’interesse. Si consideri un modello di programmazione matematica con vincoli lineare e la funzione obiettivo non lineare è del tipo: min max(e1, …, ek) e1,…,ek lineari Il modello può essere convertito in un modello lineare aggiungendo la variabile (continua) y e i suoi vincoli (y >= ek). Dunque, si fa min y. Es. la casa editrice Analfabeta pubblica un quotidiano che viene distribuito da quattro centri di smistamento A, B, C e D che richiedono rispettivamente 100000, 150000, 50000 e 75000 copie. Il giornale viene stampato in 3 tipografie T1, T2 e T3 con capacità produttiva rispettivamente di 125000, 180000 e 70000 copie. I costi per la spedizione sono 0.1€ per km per ciascun giornale e le distanze tipografie-centri di smistamento sono rispettivamente 20, 25, 15 e 5km da T1, 12, 14, 18 e 30km da T2, 19, 11, 40 e 12km da T3. Si definisca il costo di approvvigionamento di un centro di smistamento come il costo totale delle spedizioni verso quel centro; si vuole creare un piano di trasporto che consenta un ragionevole bilanciamento di tali costi tra i centri. Si chiede di formulare un modello di PL che minimizza il massimo costo di approvvigionamento.

MODELLO MIN-ABS

Si consideri un modello in cui si vuole minimizzare il valore assoluto di una variabile, del tipo: min |e| e = espressione lineare, ma abs non lo è. Sapendo che abs(e) = max{-e,+e}, il modello può essere convertito in un modello lineare, sotto forma di modello min-max, aggiungendo la variabile y e i vincoli y >= -e, y >= e. Funzione obiettivo: min y min |e1| + |e2| = min y1 + y2 ==> 4 vincoli di max-min VINCOLI LOGICI In molti casi le variabili decisionali del problema sono soggette ad ulteriori relazioni di tipo logico. Quando necessario, per gestire le relazioni di tipo logico vengono usate delle variabili binarie aggiuntive. Data una variabile x >= 0, associamo ad essa una variabile binaria y pari a 1 se x > 0 e a 0 altrimenti. Es. ho x numero di pezzi, con un costo specifico, ma a questi pezzi si aggiunge un prezzo fisso. Si vuole minimizzare il costo. La funzione obiettivo sarà min 10x + 100y, dove y è una variabile binaria pari a 1 se x > 0 e pari a 0 se x = 0. La soluzione ottima è x = 0, y = 0. VINCOLO BIG-M = vincolo logico x <= My, dove M è una costante a piacere abbastanza grande da superare qualsiasi valore attribuibile a x. M deve essere molto grande perché serve a verificare l’ammissibilità delle soluzioni (y>=x/M). ➡ per x=0 il costo fisso non si attiva ➡ si attiva y ed è pari a 1 ➡ per x>0 deve attivarsi il costo fisso ➡ y deve essere pari a 0 Quando si introducono variabili aggiuntive, bisogna, oltre a definirle, legale insieme ed esplicitarne i vincoli di legame. L’unico caso che ci crea problemi è quello in cui x=0, y=1, situazione non vietata dal vincolo big-M. Si vorrebbe che questa situazione non fosse possibile. In certi contesti, può essere desiderato avere y=1 se x=0, es quando la variabile y è parte della funzione obiettivo ed è associata ad un costo di attivazione. In tal caso, in una soluzione ottima del problema, non avremo che x=0, y=1, perché y può essere

pari a 0 diminuendo la funzione obiettivo del costo della risorsa. Nel caso generale possiamo aggiungere il vincolo y<=x, che garantisce le doppie implicazioni x>0 <-> y=1 e x=0 <-> y=0, ma è valida sse x è intera. Le variabili binarie considerate fanno riferimento, ad esempio, all’effettivo utilizzo di una risorsa , e potranno essere combinate tra di loro per ottenere diverse condizioni logiche. Le condizioni logiche non possono essere espresse direttamente sul modello scrivendo ad esempio y1 U y2, ma vanno convertite in equivalenti disuguaglianze lineari. Es. sia data la seguente tavola di valori nutrizionali che riporta il tipo di alimento, il costo unitario, le unità di sostanze (proteine, carboidrati, grassi, vitamine, calcio) per unità di alimento: Formulare un problema di PLI che permetta di trovare una dieta di costo minimo sapendo che si devono assumere almeno 3 unità di proteine, 10 di carboidrati, 2 di grassi, 3 di vitamine e 2 di calcio e sapendo che se è presente l’alimento 1 la dieta non può contenere l’alimento 5.