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


Modelli di Programmazione Lineare: Esercizi e Problemi, Prove d'esame di Ricerca Operativa

Una serie di problemi di programmazione lineare, illustrando i modelli matematici per la loro risoluzione. Gli esempi includono il mix produttivo ottimale, la dieta, la miscelazione dell'alluminio, le scommesse sui cavalli, la pianificazione multi-periodo, la posologia, l'interpolazione e il trasporto a costo minimo. Ogni problema è descritto in dettaglio, con l'indicazione dei dati, delle variabili, dei vincoli e della funzione obiettivo. Utile per studenti universitari e di scuola superiore che desiderano approfondire la conoscenza della programmazione lineare e delle sue applicazioni.

Tipologia: Prove d'esame

2023/2024

Caricato il 25/10/2024

Utente sconosciuto
Utente sconosciuto 🇮🇹

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Modelli di programmazione
lineare
Programmazione lineare
Problema n.1: Il mix produttivo ottimale
Questo esercizio è stato tratto da E. V. Denardo, "The science of decision
making: a problem-based approach using Excel", Wiley, 2002.
Il problema: Un impianto produce tre modelli di veicoli: A, B e C.
L'impianto contiene un reparto motori, un reparto carrozzeria e tre reparti
per le finiture, uno per ogni modello. I primi due reparti trattano motori e
carrozzerie di tutti e tre i modelli. Sono dati i tempi di lavorazione per ogni
reparto e modello, nonché i profitti per ogni veicolo. Si vuole massimizzare il
profitto complessivo.
Il modello matematico: Dati: - Indice i = 1, ..., 5 per le risorse (reparti) -
Indice j = A, ..., C per i modelli di veicoli - aij: consumo di risorsa i per ogni
veicolo di tipo j (ore/veicolo) - bi: massima quantità di risorsa i disponibile
(ore/settimana) - cj: profitto per ogni tipo di veicolo j (Euro/veicolo)
Variabili: - xj: numero di veicoli di tipo j prodotti ogni settimana (veicoli/
settimana)
Vincoli: - Numero di veicoli producibili limitato dalle capacità dei reparti:
∑j=A,...,C aij xj ≤ bi, ∀i = 1, ..., 5 - Variabili non negative: xj ≥ 0, ∀j = A, ..., C
Funzione obiettivo: - Massimizzare il profitto complessivo: z = ∑j=A,...,C cj xj
Problema n.2: La dieta
Il problema: Un team di dietologi ha studiato le quantità ottimali di
sostanze nutritive per l'alimentazione di un atleta. L'atleta deve procurarsi
le sostanze nutritive da un mix di cibi disponibili, minimizzando i costi.
Il modello matematico: Dati: - Indice i = 1, ..., S per le sostanze nutritive
(proteine, carboidrati, grassi) - Indice j = 1, ..., A per gli alimenti - aij:
quantità di sostanza i per ogni chilogrammo di alimento j (g/kg) - li, ui: limiti
inferiore e superiore per la quantità di sostanza i da assumere (g/giorno) - cj:
prezzo di ogni alimento j (Euro/kg)
Variabili: - xj: quantità di alimento j da consumare ogni giorno (kg/giorno)
Vincoli: - Quantità di sostanze nutritive entro i limiti: li ≤ ∑j=1,...,A aij xj ≤
ui, ∀i = 1, ..., S - Variabili non negative: xj ≥ 0, ∀j = 1, ..., A
Funzione obiettivo: - Minimizzare il costo complessivo della dieta: z =
∑j=1,...,A cj xj
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Modelli di Programmazione Lineare: Esercizi e Problemi e più Prove d'esame in PDF di Ricerca Operativa solo su Docsity!

Modelli di programmazione

lineare

Programmazione lineare

Problema n.1: Il mix produttivo ottimale

Questo esercizio è stato tratto da E. V. Denardo, "The science of decision making: a problem-based approach using Excel", Wiley, 2002.

Il problema : Un impianto produce tre modelli di veicoli: A, B e C. L'impianto contiene un reparto motori, un reparto carrozzeria e tre reparti per le finiture, uno per ogni modello. I primi due reparti trattano motori e carrozzerie di tutti e tre i modelli. Sono dati i tempi di lavorazione per ogni reparto e modello, nonché i profitti per ogni veicolo. Si vuole massimizzare il profitto complessivo.

Il modello matematico : Dati: - Indice i = 1, ..., 5 per le risorse (reparti) - Indice j = A, ..., C per i modelli di veicoli - aij: consumo di risorsa i per ogni veicolo di tipo j (ore/veicolo) - bi: massima quantità di risorsa i disponibile (ore/settimana) - cj: profitto per ogni tipo di veicolo j (Euro/veicolo)

Variabili: - xj: numero di veicoli di tipo j prodotti ogni settimana (veicoli/ settimana)

Vincoli: - Numero di veicoli producibili limitato dalle capacità dei reparti: ∑j=A,...,C aij xj ≤ bi, ∀i = 1, ..., 5 - Variabili non negative: xj ≥ 0, ∀j = A, ..., C

Funzione obiettivo: - Massimizzare il profitto complessivo: z = ∑j=A,...,C cj xj

Problema n.2: La dieta

Il problema : Un team di dietologi ha studiato le quantità ottimali di sostanze nutritive per l'alimentazione di un atleta. L'atleta deve procurarsi le sostanze nutritive da un mix di cibi disponibili, minimizzando i costi.

Il modello matematico : Dati: - Indice i = 1, ..., S per le sostanze nutritive (proteine, carboidrati, grassi) - Indice j = 1, ..., A per gli alimenti - aij: quantità di sostanza i per ogni chilogrammo di alimento j (g/kg) - li, ui: limiti inferiore e superiore per la quantità di sostanza i da assumere (g/giorno) - cj: prezzo di ogni alimento j (Euro/kg)

Variabili: - xj: quantità di alimento j da consumare ogni giorno (kg/giorno)

Vincoli: - Quantità di sostanze nutritive entro i limiti: li ≤ ∑j=1,...,A aij xj ≤ ui, ∀i = 1, ..., S - Variabili non negative: xj ≥ 0, ∀j = 1, ..., A

Funzione obiettivo: - Minimizzare il costo complessivo della dieta: z = ∑j=1,...,A cj xj

Problema n.3: Miscelazione dell'alluminio

Questo problema è tratto da F. Schoen, "Modelli di ottimizzazione per le decisioni", Ed. Esculapio, 2006.

Il problema : Un impianto produce alluminio da rottami. È possibile acquistare in quantità limitate alcuni rottami contenenti alluminio e altri elementi chimici, e mescolarli in modo da ottenere un materiale con composizione chimica prefissata ("alluminio 6063"). È possibile anche acquistare metalli puri in quantità illimitate per correggere la qualità dei rottami.

Il modello matematico : Dati: - Indice i = 1, ..., M per i materiali (rottami e metalli puri) - Indice j = 1, ..., E per gli elementi chimici - aij: percentuale dell'elemento j nel materiale i (adimensionale) - lj, uj: limiti inferiore e superiore per la percentuale dell'elemento j nel prodotto finale (adimensionale) - qi: quantità massima disponibile del materiale i (tonnellate) - ci: prezzo del materiale i (Euro/tonnellata) - Q: quantità di alluminio 6063 da produrre (tonnellate)

Variabili: - xi: quantità del materiale i da utilizzare (tonnellate)

Vincoli: - Quantità di materiali entro i limiti disponibili: xi ≤ qi, ∀i = 1, ..., M - Quantità totale di prodotto finale: ∑i=1,...,M xi = Q - Percentuale di ogni elemento entro i limiti: lj ≤ ∑i=1,...,M (aij xi) / Q ≤ uj, ∀j = 1, ..., E - Variabili non negative: xi ≥ 0, ∀i = 1, ..., M

Funzione obiettivo: - Minimizzare il costo complessivo: z = ∑i=1,...,M ci xi

Problema n.4: Scommesse sui cavalli

Questo problema è tratto da "DOOR: Didactical Off-line Operations Research" per gentile concessione del prof. Alberto Colorni.

Il problema : Un ricercatore operativo va all'ippodromo con un budget di 57 Euro da spendere in scommesse sui cavalli. Egli sa che la prossima corsa verrà vinta da uno dei quattro cavalli favoriti: Fulmine, Freccia, Dardo e Lampo, quotati rispettivamente 3:1, 4:1, 5:1 e 6:1 dai bookmakers. Egli vuole massimizzare la propria vincita nel caso peggiore.

Il modello matematico : Dati: - Indice i = 1, ..., C per i cavalli (C = 4) - qi: quotazione del cavallo i (adimensionale) - B: budget disponibile (Euro)

Variabili: - xi: puntata sul cavallo i (Euro)

Vincoli: - Puntate complessive entro il budget: ∑i=1,...,C xi ≤ B - Variabili non negative: xi ≥ 0, ∀i = 1, ..., C

Funzione obiettivo: - Massimizzare la vincita nel caso peggiore: max z s.t. z ≤ qi xi, ∀i = 1, ..., C

Posologia

Il problema

Un dato trattamento farmacologico richiede che il paziente assuma una certa sostanza X durante il giorno. La sostanza X può essere assunta in quantità variabili in qualunque ora del giorno tramite farmaci di diverso tipo. L'effetto dei farmaci viene misurato dal tasso di una certa proteina Y nel sangue del paziente, che deve essere mantenuto entro certi limiti.

Dati

F = 2 farmaci (Prismil e Cilindren) N = 24 fasce orarie qi: livello minimo di proteina Y da garantire nella fascia oraria i Q: livello massimo di proteina Y consentito akj: quantità di proteina Y generata a k ore di distanza dall'assunzione di una quantità unitaria del farmaco j cj: prezzo del farmaco j

Modello matematico

Variabili: - xij: quantità del farmaco j da assumere nella fascia oraria i

Funzione obiettivo: - Minimizzare la quantità complessiva di farmaci assunti: min z' = ∑(i=1..N) ∑(j=1..F) xij - Minimizzare il costo giornaliero della terapia: min z'' = ∑(i=1..N) ∑(j=1..F) cjxij

Vincoli: - Quantità di proteina Y nella fascia oraria i: ∑(j=1..F) ∑(k=0..12) akjxi-k,j ≥ qi e ≤ Q per ogni i

Interpolazione

Il problema

In una nuova abitazione si vuole misurare il consumo energetico effettivo degli elettrodomestici. A questo scopo vengono misurati i tempi di funzionamento di ogni elettrodomestico e il consumo totale rilevato al contatore centrale. Si vuole calcolare i valori di potenza assorbita dagli elettrodomestici che meglio spiegano i dati sperimentali raccolti, minimizzando una funzione dell'errore tra il consumo misurato e quello calcolato.

Dati

E = 8 elettrodomestici G = 12 giorni tge: tempo di funzionamento dell'elettrodomestico e nel giorno g cg: consumo letto sul contatore nel giorno g

Modello matematico

Variabili: - xe: potenza assorbita dall'elettrodomestico e - ag: approssimazione nella lettura del contatore nel giorno g

Vincoli: - Definizione dell'approssimazione: ag = cg - ∑(e=1..E) tgexe per ogni g

Funzioni obiettivo: - Minimizzare il massimo errore in valore assoluto: min f(a) = max{|ag|} - Minimizzare il valore assoluto della media degli errori: min f(b) = |1/G ∑(g=1..G) ag| - Minimizzare il valor medio dei valori assoluti degli errori: min f(c) = 1/G ∑(g=1..G) |ag| - Minimizzare l'errore quadratico medio: min f(d) = 1/G ∑(g=1..G) a_g^

Linearizzazione della tecnica

Caso (a)

La tecnica di linearizzazione è la stessa dei casi precedenti, ma stavolta i valori assoluti da eliminare sono tanti quanti i giorni e quindi altrettante sono le variabili ausiliarie da inserire nel modello:

minimize f(c) = 1/G ∑g=1,...,G z'''g con i vincoli: - z'''g ≥ ag - z'''g ≥ -ag per ogni g = 1, ..., G

Per minimizzare l'errore quadratico medio bisogna ricorrere ad una funzione quadratica, cioè non-lineare:

minimize f(d) = (1/G) ∑g=1,...,G a²g

In questo ultimo caso la soluzione si può tuttavia ricavare imponendo che siano nulle le derivate della funzione obiettivo rispetto a ciascuna delle variabili xe. Si ottengono così E equazioni lineari in altrettante incognite, riconducendosi da un problema di ottimizzazione non-lineare ad un problema di esistenza lineare.

Caso (c)

minimize 1/G ∑g=1,...,G z'''g s.t. ag = cg - ∑e=1,...,E tgexe ∀g = 1, ..., G z'''g ≥ ag ∀g = 1, ..., G xe ≥ 0 ∀e = 1, ..., E

Caso (d)

minimize (1/G) ∑g=1,...,G a²g s.t. ag = cg - ∑e=1,...,E tgexe ∀g = 1, ..., G xe ≥ 0 ∀e = 1, ..., E

trasformabile in: ag = cg - ∑e=1,...,E tgexe ∀g = 1, ..., G ∑g=1,...,G tgeag = 0 ∀e = 1, ..., E xe ≥ 0 ∀e = 1, ..., E

percentuale di radiazione assorbita dall'organo i = 0, ..., O dalla posizione j = 1, ..., P - R = massima quantità di radiazione erogabile complessiva

Variabili: - xj = quantità di radiazione da erogare dalla posizione j = 1, ..., P

Vincoli: - ∑j=1,...,P xj ≤ R - xj ≤ rj ∀j = 1, ..., P - ∑j=1,...,P aijxj ≤ mi ∀i = 1, ..., O

Funzione obiettivo: maximize z = ∑j=1,...,P a0jxj

Problema n.10: Mars Express

Il problema

La missione Mars Express consiste nell'esplorare la superficie del pianeta Marte con una sonda orbitante attorno da esso. Durante ogni orbita gli strumenti scientifici a bordo della sonda acquisiscono dati, che vengono immagazzinati in dispositivi di memoria, uno per ogni strumento. Tali dispositivi devono essere periodicamente svuotati, trasmettendo i dati a Terra, in modo da liberare la memoria per altri dati. La trasmissione dei dati a Terra può avvenire solo durante particolari finestre temporali durante le quali la posizione della sonda è visibile dalle stazioni di Terra. Si tratta di pianificare la trasmissione dei dati a Terra, cioè di decidere per ogni finestra temporale di trasmissione quanti dati scaricare da ogni dispositivo di memoria, con l'obiettivo di minimizzare il massimo livello di riempimento raggiunto dai dispositivi di memoria durante il periodo considerato.

Il modello matematico

Il modello matematico è il seguente:

Dati: - O = 10 orbite e M = 5 dispositivi di memoria - si = quantità iniziale di dati e ci = capacità massima per ogni banco di memoria i = 1, ..., M - tj = durata della finestra di trasmissione dell'orbita j = 1, ..., O - dij = quantità di dati prevista in ingresso alla memoria i = 1, ..., M durante l'orbita j = 1, ..., O - R = bit-rate di trasmissione

Variabili: - xij = quantità di dati da scaricare dalla memoria i = 1, ..., M durante l'orbita j = 1, ..., O

Vincoli: - ∑i=1,...,M xij ≤ R*tj ∀j = 1, ..., O - ∑j=1,...,O xij + si - dij ≤ ci ∀i = 1, ..., M - xij ≥ 0 ∀i = 1, ..., M, ∀j = 1, ..., O

Funzione obiettivo: minimize max{∑j=1,...,O xij + si - dij | i = 1, ..., M}

Gestione della Memoria e Trasmissione dei

Dati nei Dispositivi Spaziali

Vincoli e Equazioni di Conservazione

La quantità di dati trasmessa non può essere maggiore della quantità di dati presente nel dispositivo di memoria in quel momento. Per ogni memoria e per ogni orbita, è definita la grandezza continua e non-negativa yij che indica quanti dati sono rimasti in memoria nel dispositivo i dopo il completamento di tutte le operazioni (acquisizioni e trasmissioni) fino a quelle dell'orbita j. Il vincolo può essere espresso facilmente imponendo xij ≤ yij−1 per ogni i = 1, ..., M e j = 1, ..., O. L'equazione di conservazione dei dati è yij = yij−1 - xij + dij, dove yij−1 è ciò che era rimasto in memoria dopo l'orbita j-1, xij è la quantità di dati trasmessa a Terra dopo l'orbita j, e dij è la quantità di dati nuovi immagazzinati durante l'orbita j. Per j = 1 , è necessario conoscere le grandezze yi0, che sono le quantità di dati inizialmente presenti nelle memorie, cioè i dati si. Il contenuto di ogni dispositivo non deve mai eccedere la sua capacità: yij ≤ ci per ogni i = 1, ..., M e j = 1, ..., O.

Funzione Obiettivo

Si vuole minimizzare il massimo livello percentuale di riempimento dei dispositivi di memoria, quindi si tratta di una funzione di tipo min-max. Viene introdotta una variabile ausiliaria z e si richiede di minimizzare z con i vincoli z ≥ 100 * yij/ci per ogni i = 1, ..., M e j = 1, ..., O.

Modello Matematico Completo

minimize z subject to z ≥ 100 * yij/ci yij = yij−1 - xij + dij yi0 = si xij ≤ yij−1 yij ≤ ci Σi=1..M xij ≤ Rtj yij ≥ 0 xij ≥ 0 per ogni i = 1, ..., M e j = 1, ..., O.

Variazioni del Problema

Se i dati potessero essere scaricati in blocchi da N Mbit per volta da ogni dispositivo (ad esempio N=25), il modello matematico dovrebbe essere adattato di conseguenza. Se ci fosse il vincolo che in ogni finestra di trasmissione ogni dispositivo di memoria può soltanto essere svuotato del tutto oppure non trasmettere nulla, il modello matematico dovrebbe essere modificato per riflettere questo vincolo. Se solo un dato numero k di dispositivi potessero trasmettere a Terra in ogni finestra temporale, il modello matematico dovrebbe essere aggiornato per incorporare questo vincolo.