Sei sulla pagina 1di 4

CAPITOLO 1

Introduzione alla Programmazione Lineare


La Ricerca Operativa è una disciplina che tratta dello sviluppo e dell’applicazione di metodi scientifici per
la soluzione di problemi di decisione che si presentano in molteplici e diversi settori della vita reale. Si tratta
di scegliere quali decisioni prendere per gestire nel modo più efficiente un sistema reale utilizzando
strumenti matematici; quindi lo scopo della Ricerca Operativa è quello di fornire una base scientifica per
cercare di analizzare e comprendere situazioni anche con strutture molto complesse e quindi utilizzare queste
informazioni per predire il comportamento di un sistema e per migliorare le prestazioni del sistema stesso.
In particolare, gli ambiti di maggiore sviluppo dell’applicazione Ricerca Operativa riguardano problemi
manageriali, problemi gestionali, problemi di progettazione, problemi di economia e finanza…
In generale, per individuare la migliore soluzione per un dato problema, è necessario compiere 4 passi:
1) Individuazione di: dati, variabili, vincoli, obiettivi.
2) Formulazione del modello matematico.
3) Procedura di risoluzione (algoritmo).
4) Validazione del modello (verifica).
La formulazione generale di un modello di Programmazione Lineare è la seguente:

min (max) z = c 1 x 1 + c 2 x 2 + ... + c 3 x3 + ... + c n x n (+ cost.)

soggetto a (s.t.)
a 11 x 1 + a 12 x2 + ... + a 1 j x j + ... + a 1n x n ≥ (=, ≤) b 1
a 21 x1 + a 22 x2 + ... + a 2 j x j + ... + a 2n x n ≥ (=, ≤) b 2
...
a m 1 x 1 + a m 2 x 2 + ... + a mj x j + ... + a mn x n ≥ (=, ≤) b m
x j ∈ R+¿ ¿ ( x j ∈ Z+¿ ¿ ∀ j=1 ,… , n
dove:
z è la funzione obiettivo da minimizzare (min) o massimizzare (max);
x j ∀ j=1 ,… , n sono le variabili decisionali (incognite) che possono essere reali (eventualmente non
negative), intere (eventualmente non negative) o binarie ( x j ∈ {0 ,1 }¿;

c j ∀ j=1 ,… , n sono i coefficienti di costo (min) o profitto (max) e sono costanti note del problema
(parametri);
a ij ∀ i=1 , … , me ∀ j=1 ,… , n sono i coefficienti tecnologici (parametri);
b i ∀ i=1 , … , me sono i termini noti (parametri).
ESERCIZIO 1
Supponiamo di dover preparare dei pacchi per inviare degli aiuti. È possibile realizzare tre diversi tipi di
pacchi con diversi contenuti di sacchetti di farina, bottiglie d’acqua e medicinali.
Tipo 1: Farina 10, Acqua 10, Medicinali 30
Tipo 2: Farina 30, Acqua 20, Medicinali 10
Tipo 3: Farina 20, Acqua 40, Medicinali 5
È stato inoltre assegnato un indice di utilità per un’unità di ogni tipo di pacco.
Tipo 1: 14, Tipo 2: 5, Tipo 3: 4
Infine è noto che la disponibilità delle tre risorse è limitata.
Farina 5100, Acqua 8000, Medicinali 1805
La domanda che ci si pone è la seguente: quanti pacchi di ciascun tipo occorre preparare se si vuole rendere
massimo l’indice di utilità complessivo?
Questo è un tipico problema con vincoli di risorse.
Un primo approccio potrebbe essere quello di realizzare pacchi di un solo tipo, scegliendo quello che mi
consente di realizzarne di più (in questo caso sceglierei il Tipo 2). In questo modo tuttavia non coprirei tutti i
casi possibili. Infatti, potrei scegliere di fare un po’ di pacchi di ciascun tipo.

Indichiamo con x 1 il numero di pacchi di Tipo 1 da realizzare, x 2 il numero di pacchi di Tipo 2 da realizzare,
x 3 il numero di pacchi di Tipo 3 da realizzare.
Ora dobbiamo tradurre i vincoli e l’obiettivo in formule matematiche. Abbiamo un vincolo sulla disponibilità
di ogni risorsa. Come si può tradurre in linguaggio matematico?

Notiamo che un pacco di tipo uno contiene 10 sacchi di farina, quindi x 1 pacchi di Tipo 1 conterranno 10 x 1
sacchi di farina. Analogamente x 2 pacchi di Tipo 2 conterranno 30 x 1 sacchi di farina. x 3 pacchi di Tipo 3
conterranno 20 x 1 sacchi di farina.

La somma di questi tre valori restituisce il numero complessivo di sacchi utilizzati e sapendo di non poter
utilizzare più di 5100 sacchi di farina, otteniamo la seguente disequazione.

10 x 1+ 30 x 2 +20 x 3 ≤ 5100

Lavorando in modo del tutto analogo con le altre risorse otteniamo il seguente sistema di disequazioni:

10 x1 +30 x 2+ 20 x 3 ≤5100

{
10 x 1 +20 x 2+ 40 x3 ≤ 8000
30 x 1+10 x 2+ 5 x 3 ≤1805
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0

Resta da definire l’obiettivo del problema. Sommando le utilità di ciascun pacco si ottiene l’utilità
complessiva e il nostro obiettivo è massimizzare tale valore.

14 x 1+ 5 x 2 +4 x3
Abbiamo ottenuto quello che si definisce programma lineare, un modello matematico in cui sia i vincoli che
l’obiettivo sono lineari, ovvero:
1) I contributi delle diverse variabili si sommano tra loro;
2) I contributi delle variabili sono direttamente proporzionali al valore delle stesse.
L’operazione che abbiamo appena compiuto, ovvero quella di essere passati dal nostro problema
inizialmente descritto a parole alla sua traduzione in un modello matematico ed aver riconosciuto che si tratta
di un programma lineare, è un passo molto importante: ora sappiamo con che tipo di problema abbiamo a che
fare e che esistono apposite procedure efficienti per risolvere tale problema restituendoci le risposte che
cerchiamo.
Al momento non siamo ancora in grado di risolvere il problema. Quando lo saremo potremo verificare che la
soluzione ottima è data dai seguenti valori delle variabili:
x 1 = 28, x 2 = 0, x 3= 193 con utilità pari a 1164.
Arrivati a questo punto, ci sarà un ultimo passo da compiere: verificare che la soluzione ottenuta sia sensata
(validazione del modello).
Nel caso notassimo in corso d’opera di ottenere una soluzione poco realistica, potremmo aggiungere
all’interno del modello altri vincoli! Ad esempio:
Nel nostro esempio possiamo notare che restano inutilizzati ben 960 sacchi di farina. Possiamo considerare
questo spreco eccessivo e decidere di non voler sprecare più del 10% di ogni risorsa. Questa necessità ci
obbliga a modificare il modello.

10 x1 +30 x 2+ 20 x 3 ≤0,9 × 5100

{
10 x 1 +20 x 2+ 40 x3 ≤ 0,9× 8000
30 x 1+10 x 2+ 5 x 3 ≤0,9 × 1805
x1 ≥ 0
x2 ≥ 0
x3 ≥ 0

Con l’aggiunta di questi nuovi vincoli la nuova soluzione diventa:


x 1 = 21.72, x 2 = 24.07, x 3= 182.53 con utilità pari a 1154.58 (i valori dovranno essere arrotondati).
Modelli di pianificazione della produzione come il precedente, possono essere collegati al concetto di
profitto realizzato mediante la vendita di ciascuna unità realizzata e la funzione obiettivo principale dovrebbe
consistere nel massimizzare (max) il profitto derivante dalla vendita di tutti i prodotti realizzati.

Modelli di miscelazione
Nei modelli miscelazione le risorse devono essere combinate tra di loro in modo da soddisfare al meglio
determinati obiettivi rispettando opportune richieste. In questi modelli le variabili corrispondono al
contenuto di ciascun ingrediente nella miscela, i vincoli sono tipicamente associati alle caratteristiche di
qualità della miscela e alle disponibilità limitate degli ingredienti, la funzione obiettivo è rappresentata dal
costo degli ingredienti impiegati.
Modelli di flusso su rete