Cap 3
Cap 3
Modelli di Programmazione
Lineare
3.1 GENERALITÀ
Come già detto nel capitolo precedente, è possibile classificare i modelli di Pro-
grammazione Matematica in base alla struttura particolare che possono avere
la funzione obiettivo e i vincoli. Riprendiamo qui, espandendola, la definizione
di problemi di Programmazione Lineare nei quali sia la funzione obiettivo, sia i
vincoli sono rappresentati mediante funzioni lineari nelle variabili di decisione.
Preliminarmente, richiamiamo il concetto di funzione lineare.
c1 x1 + c2 x2 + . . . + cn xn (3.1.1)
con c1 , . . . , cn costanti reali. Infatti è immediato verificare che una funzione della
forma (3.1.1) soddisfa la Definizione 3.1.1; d’altra parte, se una funzione f (x)
è lineare cioè se soddisfa la Definizione 3.1.1, allora si può scrivere nella forma
(3.1.1); infatti se indichiamo con {e1 , e2 , . . . , en } la base canonica di IRn allo-
P
ra risulta x = ni=1 xi ei dove le xi sono le componenti del vettore x. Quindi
utilizzando la linearità si ha
Quindi
x1 + 4x2 − 3.5x3
−2x1 + (sin 4)x2 + πx3 − 4x5 ,
sono funzioni lineari, mentre
cT x.
Per esempio,
max x1 + x2
x1 + x2 ≥ 1
x1 + x2 ≤ 3
x1 ≥ 0, x2 ≥ 0,
e
min 2x1 − x2 + x3 + 3x4
x1 + x2 − x4 = 1
x1 + 2x2 − x3 + 2x4 ≤ 3
x1 ≥ 0, x2 ≥ 0, x4 ≥ 0,
sono problemi di PL.
Le applicazioni della Ricerca Operativa che possono essere formulate mediante
l’uso di modelli di Programmazione Lineare sono molto frequenti e importanti. In
riferimento alle applicazioni di tipo economico la funzione obiettivo ha di solito
il significato di profitto (da massimizzare) oppure di costo (da minimizzare).
Profitti e costi sono ottenuti come somma dei profitti e costi marginali cioè di quelli
relativi a ciascuna unità di prodotto. Quando è richiesta la massimizzazione di un
profitto, il modello contiene, di solito, vincoli che esprimono limitazioni superiori
sulle risorse (vincoli di capacità produttiva, disponibilità di materie prime); se
invece è richiesta la minimizzazione di un costo sono di solito presenti vincoli sulla
domanda (richieste di mercato) che impongono limitazioni inferiori alle variabili.
• continuità: ogni variabile di decisione può assumere tutti i valori reali nel-
l’intervallo di ammissibilità, e quindi le variabili possono assumere valori
frazionari.
1. Generalità e flessibilità.
I modelli di Programmazione Lineare possono descrivere moltissime situa-
zioni reali anche assai diverse tra loro e quindi hanno un carattere di uni-
versalità e di adattabilità alle diverse realtà applicative e anche quando
l’ipotesi di linearità non è accettabile, il modello lineare costituisce una
buona base di partenza per successive generalizzazioni.
2. Semplicità.
I modelli di Programmazione Lineare sono espressi attraverso il linguaggio
dell’algebra lineare e quindi sono facilmente comprensibili anche in assenza
di conoscenze matematiche piú elevate.
• modelli di miscelazione,
• modelli di trasporto.
Per ciascuna classe di modelli verranno presentati alcuni esempi e una formula-
zione generale. Tale divisione in “classi” di problemi ha il solo scopo permettere
una descrizione schematica di alcune situazioni tipiche che possono essere rap-
presentate attraverso problemi di Programmazione Lineare. È chiaro che nella
realtà i problemi si presentano nelle forme piú diverse e sta a colui che costruisce
il modello fornirne una rappresentazione il piú possible completa e significativa
del problema in analisi.
Ogni giorno la quantità di ciascuno dei preparati base (in ettogrammi) della quale
il colorificio può disporre è la seguente
P1 P2 P3
750 1000 400
Formulazione.
Si vuole costruire il modello di Programmazione Lineare che rappresenti il pro-
blema in analisi considerando le limitazioni date dalle produzioni effettivamente
realizzabili.
È immediato associare le variabili di decisione ai quantitativi di coloranti pro-
dotti. Siano, quindi, rispettivamente x1 e x2 i quantitativi (in litri) da produrre
giornalmente dei due coloranti.
Nel formulare il modello di Programmazione Lineare si deve verificare che siano
soddisfatte le ipotesi fondamentali:
• Proporzionalità.
I consumi dei preparati base e i ricavi ottenibili sono proporzionali ai quan-
titativi di coloranti prodotti. Ad esempio, per produrre una quantità x2 di
colorante C2 si consumano 2x2 ettogrammi di P2 e dalla vendita di x2 litri
di C2 si ricavano 10x2 Euro indipendentemente dalla quantità prodotta e
venduta dell’altro tipo di colorante.
• Additività.
I consumi dei preparati base e i ricavi rispettivamente associati alla produ-
zione dei due coloranti sono additivi, nel senso che per produrre x1 litri di
colorante C1 e x2 di C2 si consumano x1 + 2x2 ettogrammi di preparato
di base P2 e si ricavano 7x1 + 10x2 Euro.
• Continuità.
Ogni variabile introdotta nel modello può assumere tutti i valori reali nell’in-
tervallo di ammissibilità.
x1 + x2 ≤ 750
x1 + 2x2 ≤ 1000
x2 ≤ 400.
x1 ≥ 0, x2 ≥ 0.
Esempio 3.4.2 Una azienda automobilistica produce tre diversi modelli di au-
tovettura: un modello economico, uno normale ed uno di lusso. Ogni autovettura
viene lavorata da tre robot: A, B e C. I tempi necessari alla lavorazione sono
riportati, in minuti, nella tabella seguente insieme al profitto netto realizzato per
autovettura
Formulazione.
È un problema di allocazione ottima di risorse e può essere formulato in termini
di Programmazione Lineare nel seguente modo.
– Variabili. Indichiamo con x1 , x2 , x3 , rispettivamente il numero di autovetture
(assunte non necessariamente intere) del modello economico, normale e di lusso
da produrre giornalmente.
– Funzione obiettivo. La funzione obiettivo è data dal profitto globale ottenuto
dalla vendita delle automobili e quindi può essere scritta
x3 ≤ 0.2 (x1 + x2 + x3 )
x1 ≥ 0.4 (x1 + x2 + x3 ) .
x1 ≥ 0 x2 ≥ 0 x3 ≥ 0.
Formulazione.
– Variabili. Indichiamo con xij , con i = 1, 2, 3 e j = 1, 2, 3, il numero di
autovetture del modello j-esimo da produrre giornalmente con il robot i-esimo.
– Funzione obiettivo. La funzione obiettivo diventa:
– Vincoli.
3 X
X 3
x11 + x21 + x31 ≥ 0.4 xij .
i=1 j=1
xij ≥ 0 i = 1, 2, 3, j = 1, 2, 3.
P1 ··· Pj ··· Pn
R1 a11 ··· a1j ··· a1n
.. .. .. ..
. . . .
Ri ai1 ··· aij ··· ain
.. .. .. ..
. . . .
Rm am1 ··· amj ··· amn
xi ≥ 0, i = 1, . . . , n.
Introducendo la matrice (m × n)
a11 ... a1n
. ..
A = .. .
am1 ... amn
• Vincoli di domanda
- limitazioni inferiori sulle variabili xi cioè
xi ≥ li i = 1, . . . , n
con li ≥ 0 per assicurare che i prodotti siano fabbricati in quantità
significative. In questo caso, per ogni indice i per il quale li > 0 il
vincolo di non negatività xi ≥ 0 è ridondante.
- limitazioni superiori sulle variabili, cioè
xi ≤ ui i = 1, . . . , n
dovute ad eventuali possibilità limitate di assorbimento dei prodotti
da parte del mercato.
Introducendo le notazioni vettoriali l = (l1 , . . . , ln )T e u = (u1 , . . . , un )T
questi vincoli possono essere scritti nella forma l ≤ x ≤ u, x ∈ IRn .
• Vincoli di interezza.
Se inoltre non ha senso considerare i prodotti quantità divisibili allora si
deve definire un modello di programmazione a numeri interi. Cioè nel caso
in cui non si possa supporre che i livelli di attività siano frazionari (ad es.
se i prodotti sono quantità indivisibili come motori, lavatrici etc.), allora si
deve aggiungere il vincolo che le quantità xi siano intere.
Infine si devono esplicitare i vincoli di non negatività della variabili cioè xij ≥ 0,
i = 1, . . . , m, j = 1, . . . , n.
Come si può facilmente osservare la matrice A dei coefficienti delle disequazioni
lineari che descrivono i vincoli è rimasta immutata rispetto alla matrice consi-
derata nella formulazione del caso delle risorse concorrenti già vista, ma c’è una
sostanziale differenza nelle variabili.
Modelli multi–plant
Si tratta di problemi di pianificazione della produzione in cui modelli di grandi
dimensioni sono ottenuti come combinazione di modelli piú piccoli. Tali mo-
delli combinati sono sicuramente piú efficaci dei sottomodelli dai quali essi sono
costituiti. Esaminiamo un esempio di questa situazione.
Impianto 1 Impianto 2
P1 P2 P1 P2
levigatura 4 2 5 3
pulitura 2 5 5 6
Formulazione
– Variabili. Si introducono le variabili x1 e x2 associate alla quantità di prodot-
to P1 e P2 fabbricato settimanalmente dal primo impianto e le variabili x3 e
x4 associate alla quantità di prodotto P1 e P2 fabbricato settimanalmente dal
secondo impianto.
Formulazione del caso (a)
Questo caso, nella pratica, corrisponde a costruire due modelli indipendenti: uno
riferito al primo impianto, uno riferito al secondo impianto. Una “risorsa” (il
materiale grezzo) è già allocata a priori.
Impianto 1: La formulazione relativa al primo impianto è:
max(10x1 + 15x2 )
4x1 + 4x2 ≤ 75
4x1 + 2x2 ≤ 80
2x1 + 5x2 ≤ 60
x1 ≥ 0, x2 ≥ 0
Modelli multiperiodo
Si tratta di problemi di allocazione ottima di risorse limitate analoghi a quelli già
trattati, ma dove la pianificazione è effettuata su un orizzonte temporale compo-
sto da piú periodi elementari; si richiede, cioè, di estendere la programmazione
mensile della produzione di un’azienda in modo da ottenere un piano di produ-
zione semestrale con possibilità di giacenze al termine di ciascun mese. L’esempio
che segue riporta una semplice situazione di questo tipo.
possibiltà di produrre piú prodotti rispetto a quelli che si possono vendere, im-
magazzinando i prodotti in eccesso prevedendo un loro utilizzo nella settimana
successiva. Costruire un modello lineare che permetta di massimizzare il profitto
complessivo ottenuto dalla vendita dei prodotti nelle due settimane sapendo che
settimanalmente l’industria dispone di 75 Kg di materiale grezzo e tenendo conto
che il costo di immagazzinamento di un prodotto (sia di tipo P1 sia di tipo P2 ) è
di 2 $. Si ricorda che il profitto netto ottenuto dalla vendita di 1 unità di prodotto
P1 e P2 è rispettivamente di 10$ e 15$.
Formulazione
– Variabili. Si introducono le variabili x1 e x2 associate alla quantità di prodotti
P1 e P2 fabbricati nella prima settimana, le variabili x3 e x4 associate alla quan-
tità di prodotti P1 e P2 fabbricati nella seconda settimana e le variabili y1 e y2
che indicano le quantità di prodotti P1 e P2 fabbricati nella prima settimana ed
immagazzinati per venderli nella seconda.
– Funzione obiettivo. Nella prima settimana saranno vendute le quantità (x1 −y1 )
di prodotto P1 e (x2 − y2 ) di prodotto P2 , nella seconda le quantità (x3 +
y1 ) di prodotto P1 e (x4 + y2 ) di prodotto P2 . Tenendo conto dei costi di
immagazzinamento si ottiene la seguente funzione obiettivo:
• vincoli che rappresentano il fatto che, alla fine della prima settimana, una
parte dei prodotti può essere immagazzinata
x1 − y1 ≤ 12
x2 − y 2 ≤ 4
• vincoli che rappresentano il fatto che il numero dei prodotti disponibili nella
seconda settimana non deve superare le richieste del mercato
y 1 + x3 ≤ 8
y2 + x4 ≤ 12
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, y1 ≥ 0, y2 ≥ 0.
Osservazione 3.4.10 Si osservi che i primi sei vincoli del precedente modello
multiperiodo presentano una struttura particolare. Infatti possono essere rappre-
sentati da una matrice a blocchi (in particolare nell’esempio considerato tutti i
blocchi sono uguali). Il fatto di avere la maggior parte dei vincoli con una strut-
tura a blocchi è una caratteristica di tutti i modelli multiperiodo. Come detto per
i modelli multi-plan, questa particolare struttura può essere sfruttata attraverso
l’uso di tecniche di decomposizione in modo da risolvere efficientemente anche
problemi di questo tipo di grosse dimensioni.
I tempi necessari per produrre questi pneumatici varia a seconda del tipo e della
linea di produzione usata. Tali tempi sono riportati nella seguente tabella (in ore)
L1 L2
tipo A 0.10 0.12
tipo B 0.12 0.18
Il costo di ogni ora di lavorazione su una linea di produzione è uguale per entrambe
le linee ed è pari a 6 euro. Il costo del materiale grezzo necessario per produrre
ciascun pneumatico è di euro 2.50 per il tipo A e di euro 4.00 per il tipo B.
Nel primo e nel secondo mese del trimestre è possibile produrre più di quanto ri-
chiesto nello stesso mese; la produzione in eccesso deve essere immagazzinata per
essere usata nel mese successivo. Ogni mese, il costo di tale immagazzinamento
Formulazione.
Si tratta di un problema di allocazione ottima di risorse nel quale si deve tenere
presente la possibilità dell’immagazzinamento del prodotto in eccesso (allocazione
ottima multiperiodo).
0.10Aott ott
L1 + 0.12BL1 ≤ 2000
0.10Anov nov
L1 + 0.12BL1 ≤ 400
0.10Adic dic
L1 + 0.12BL1 ≤ 200
0.12Aott ott
L2 + 0.18BL2 ≤ 3000
0.12Anov nov
L2 + 0.18BL2 ≤ 800
0.12Adic dic
L2 + 0.18BL2 ≤ 1000.
Si hanno infine i vincoli di non negatività sulle variabili. Quindi il modello finale
è:
min 3.1(Aott nov dic ott nov
L1 + AL1 + AL1 ) + 3.22(AL2 + AL2 + AL2 )+
dic
+4.72(BL1ott + B nov + B dic ) + 5.08(B ott + B nov + B dic )+
L1 L1 L2 L2 L2
ott nov ott
+0.35(Aim + Aim + Bim + Bim ) nov
0.10Aott ott
L1 + 0.12BL1 ≤ 2000
nov nov ≤ 400
0.10AL1 + 0.12BL1
0.10Adic + 0.12B dic ≤ 200
L1 L1
0.12Aott + 0.18BL2ott ≤ 3000
L2
0.12Anov + 0.18B nov ≤ 800
L2 L2
0.12Adic dic
L2 + 0.18BL2 ≤ 1000
ott ott
AL1 + AL2 = 16000 + Aott im
nov + Anov + Aott = 7000 + Anov
A
L1 L2 im im
Adic + Adic + Anov
L1 L2 im = 4000
ott ott ott
BL1 + BL2 = 14000 + Bim
nov + B nov + B ott = 4000 + B nov
BL1
L2 im im
B dic + B dic + B nov = 6000
L1 L2 im
A ott ≥ 0, Anov ≥ 0, Adic ≥ 0, i = 1, 2
Li Li Li
ott ≥ 0, B nov ≥ 0, B dic ≥ 0, i = 1, 2.
BLi Li Li
Nei modelli di allocazione ottima le risorse devono essere ripartite mentre nei
modelli di miscelazione le risorse devono essere combinate tra di loro. I modelli
di miscelazione decidono come combinare (miscelare) tali risorse in maniera da
soddisfare al meglio determinati obiettivi rispettando opportune richieste.
Esempio 3.4.12 Un’industria conserviera deve produrre succhi di frutta mesco-
lando polpa di frutta e dolcificante ottenendo un prodotto finale che deve soddi-
sfare alcuni requisiti riguardanti il contenuto di vitamina C, di sali minerali e di
zucchero. La polpa di frutta e il dolcificante vengono acquistati al costo rispet-
tivamente di 4 Euro e 6 Euro ogni ettogrammo. Inoltre dalle etichette si ricava
che 100 grammi di polpa di frutta contengono 140 mg di vitamina C, 20 mg di
sali minerali e 25 grammi di zucchero, mentre 100 grammi di dolcificante conten-
gono 10 mg di sali minerali, 50 grammi di zucchero e non contengono vitamina
C. I requisiti che il prodotto finale (cioè il succo di frutta pronto per la vendita)
deve avere sono i seguenti: il succo di frutta deve contenere almeno 70 mg di
vitamina C, almeno 30 mg di sali minerali e almeno 75 grammi di zucchero. Si
devono determinare le quantità di polpa di frutta e di dolcificante da utilizzare
nella produzione del succo di frutta in modo da minimizzare il costo complessivo
dell’acquisto dei due componenti base.
Formulazione.
Si vuole costruire un modello di Programmazione Lineare che rappresenti il pro-
blema in analisi tenendo presente i requisiti di qualità richiesti. Si verifica facil-
mente che le ipotesi fondamentali di un modello di Programmazione Lineare sono
soddisfatte.
– Variabili. È naturale associare la variabili di decisione alle quantità di polpa di
frutta e di dolcificante da utilizzare per la produzione del succo di frutta. Quindi
siano x1 e x2 rispettivamente le quantità espresse in ettogrammi di polpa di frutta
e di dolcificante che devono essere utilizzate.
– Funzione obiettivo. È rappresentata dal costo complessivo dell’acquisto dei due
componenti base e quindi è data (in centesimi di Euro) da 400x1 + 600x2 . Questa
espressione naturalmente deve essere minimizzata.
– Vincoli. Poiché un ettogrammo di polpa contiene 140 mg di vitamina C e il
dolcificante non contiene vitamina C, il primo vincolo da considerare riguardante
il contenuto di vitamina C del succo di frutta si può scrivere nella forma
140x1 ≥ 70.
Analogamente per rispettare il requisito sul contenuto di sali minerali del succo
di frutta si dovrà imporre il vincolo
20x1 + 10x2 ≥ 30.
Infine il vincolo sul contenuto di zucchero del succo di frutta si può esprimere
nella forma
25x1 + 50x2 ≥ 75.
Infine si deve esplicitare il vincolo di non negatività sulle variabili cioè
x1 ≥ 0, x2 ≥ 0.
Formulazione.
Poiché si è supposto che le porzioni siano frazionabili ed inoltre valgono le ipo-
tesi di linearità, si può costruire un modello di Programmazione Lineare per
rappresentare il problema in analisi.
0 ≤ x1 ≤ 4, 0 ≤ x2 ≤ 8, 0 ≤ x3 ≤ 3, 0 ≤ x4 ≤ 2, 0 ≤ x5 ≤ 2.
Se inoltre si vuole supporre, ad esempio, che nella dieta sia presente almeno una
porzione di dolce e due di latte si dovranno imporre i vincoli x5 ≥ 1 e x2 ≥ 2
da aggiungere alla precedente formulazione. In questo caso, i vincoli già presenti
x5 ≥ 0 e x2 ≥ 0 sono ridondanti.
S1 ··· Sj ··· Sn
C1 a11 ··· a1j ··· a1n
.. .. .. ..
. . . .
Ci ai1 ··· aij ··· ain
.. .. .. ..
. . . .
Cm am1 ··· amj ··· amn
Formulazione.
Supponendo che valgano le ipotesi di proporzionalità, additività ed inoltre assu-
mendo che le quantità di sostanze da utilizzare siano frazionabili, si può formulare
questo problema in termini di un problema di Programmazione Lineare.
– Variabili. È naturale introdurre le variabili di decisione x1 , x2 , . . . , xn rap-
presentanti la quantità di ciascuna sostanza S1 , S2 , . . . , Sn da utilizzare nella
miscela. Queste saranno le incognite del problema. Introducendo come spazio
delle variabili lo spazio delle n−uple reali IRn si può considerare un x ∈ IRn
definendo x = (x1 , . . . , xn )T .
– Funzione obiettivo. Per le ipotesi fatte, la funzione obiettivo può essere scritta
n
X
z = c1 x1 + . . . + cn xn = cj xj .
j=1
• Vincoli di qualità.
Tenendo conto del fatto che la miscela deve contenere una quantità non
inferiore a bi di ciascun componente Ci si dovrà avere
n
X
aij xj ≥ bi , i = 1, . . . , m.
j=1
Introducendo la matrice (m × n)
a11 ... a1n
. ..
A = .. .
am1 ... amn
• in alcuni casi si richiede che una certa sostanza appartenga alla miscela
solo se un’altra sostanza vi appartiene (o non vi appartiene). Questi vincoli
richiedono l’uso di variabili booleane come descritto in seguito.
N1 N2 N3 S1 S2
costo 300 190 250 200 230
grad. 6.0 1.9 8.5 5.0 3.5
Il prodotto finale viene venduto a 350 euro per quintale. Determinare come va
pianificata la produzione settimanale per massimizzare il profitto netto.
Formulazione.
– Variabili. Introduciamo le variabili di decisione x1 , x2 , x3 , x4 , x5 rappresentanti
le quantità (in quintali) di N1, N2, N3, S1, S2 che devono essere comprate
e raffinate in una settimana. Inoltre introduciamo una ulteriore variabile y che
indica la quantità di prodotto finale che deve essere fabbricato.
– Funzione obiettivo. La funzione obiettivo da massimizzare sarà data dal profitto
netto cioè da
x1 + x2 + x3 ≤ 500
x4 + x5 ≤ 300;
· vincolo di continuità
x1 + x2 + x3 + x4 + x5 = y.
Questo vincolo di continuità esprime il fatto che il peso finale del prodotto
deve essere uguale alla somma dei pesi degli ingredienti.
Inoltre si devono esplicitare i vincoli di non negatività delle variabili.
La formulazione finale risulta quindi
max (−300x1 − 190x2 − 250x3 − 200x4 − 230x5 + 350y)
x1 + x2 + x3 ≤ 500
x4 + x5 ≤ 300
6.0x1 + 1.9x2 + 8.5x3 + 5.0x4 + 3.5x5 − 7y ≤ 0
6.0x1 + 1.9x2 + 8.5x3 + 5.0x4 + 3.5x5 − 2y ≥ 0
1 + x2 + x3 + x4 + x5 − y = 0
x
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, y ≥ 0
Modelli di input–output
I modelli di miscelazione possono essere visti come modelli piú generali in cui le
sostanze Sj e i componenti utili Ci sono genericamente definiti come “input” e
“output”; per ogni input j si deve decidere la quantità xj da utilizzare incorrendo
in un costo cj xj e creando aij xj unità di output i. Lo scopo è quello di deter-
minare la combinazione a più basso costo di input che fornisce, per ogni output
i, una quantità di unità di output compresa tra valori prefissati. Nei modelli di
miscelazione analizzati fino ad ora, gli input sono dati dalle sostanze che devono
essere mescolate, gli output sono dati dalle qualità della miscela risultante.
Un esempio di questa generalizzazione è dato dai problemi di assegnazione di
personale a turni che rappresentano problemi di fondamentale importanza in di-
versi settori applicativi; in questo caso gli output possono corrispondere alle ore
lavorate in un certo giorno i e, per ogni turno lavorativo j, aij rappresenta il
numero di ore che una persona assegnata al turno j lavorerà il giorno i (ponendo
aij = 0 se la persona assegnata al turno j non lavora il giorno i); le cj rappre-
sentano il salario di una persona assegnata al turno j e xj il numero di persone
assegnate a quel turno. In questo contesto, la funzione obiettivo diventa il costo
totale dei salari mensile, mentre i vincoli diventano quelli dovuti al fatto che ogni
giorno i, il numero totale di ore lavorative fornite dalle persone che lavorano quel
giorno deve essere pari ad almeno un valore prefissato bi . Supponendo di voler
considerare n giorni e m possibili turni, un modello di Programmazione Lineare
che rappresenti questa situazione è dato da
min c1 x1 + . . . + cn xn
In questo caso però, a differenza degli altri casi di miscelazione visti fino ad
ora, l’assunzione di continuità delle variabili non è molto plausibile e potrebbe
risultare necessario introdurre il vincolo di interezza sulle variabili.
Il concetto di modello di “input–output” fu una delle prime applicazioni della
Programmazione Lineare nelle analisi economiche.
Si riporta, di seguito, un semplice esempio di assegnamento di personale a turni
di lavoro.
Ciascun cameriere lavora seguendo turni cosı́ definiti: cinque giorni lavorativi
ogni settimana e due di riposo; inoltre sono possibili al piú quattro giorni con-
secutivi di lavoro seguiti da uno di riposo; inoltre uno solo dei due giorni del
fine settimana (sabato o domenica) deve far parte del turno di lavoro. I turni
risultanti sono sei e sono schematizzati nella tabella che segue (dove “L” indica
giornata lavorativa e “R” riposo):
Turni: 1o 2o 3o 4o 5o 6o 7o 8o
Lun. L R L L L L L L
Mar. L L R L L R L L
Mer. L L L R L L R L
Giov. L L L L R L L R
Ven. R L L L L L L L
Sab. L R L R L R L R
Dom. R L R L R L R L
Formulazione.
–Variabili. Si associano le variabili di decisione xj al numero di camerieri asse-
gnati al turno j, j = 1, . . . , 8.
–Funzione obiettivo. È data dal salario complessivo dei camerieri e quindi può
essere espressa nella forma
250x1 + 270x2 + 250x3 + 270x4 + 250x5 + 270x6 + 250x7 + 270x8 .
–Vincoli. I vincoli sono dovuti al fatto che ogni giorno c’è una richiesta minima
di camerieri. Osservando ogni giorno quale turno prevede il lavoro o il riposo si
ottengono i seguenti vincoli
x1 + x3 + x4 + x5 + x6 + x7 + x8 ≥ 52
x1 + x2 + x4 + x5 + +x7 + x8 ≥ 50
x1 + x2 + x3 + x5 + x6 + x8 ≥ 47
x1 + x2 + x3 + x4 + x6 + x7 ≥ 55
x2 + x3 + x4 + x5 + x6 + x7 + x8 ≥ 70
x1 + x3 + x5 + x7 ≥ 40
x2 + x4 + x6 + x8 ≥ 40
P1 P2 P3
80 100 150
Il costo (in euro) del trasporto da ciascuna miniera a ciascun impianto di produ-
zione di una tonnellata di minerale è riportato nella seguente tabella
P1 P2 P3
M1 10 8 21
M2 12 20 14
Formulazione.
– Variabili. Associamo le variabili di decisione alle quantità di minerale che deve
essere trasportato; indichiamo con xij i = 1, 2, j = 1, 2, 3, le quantità (in
tonnellate) di minerale da trasportare giornalmente da ciascuna miniera Mi a
ciascun impianto di produzione Pj .
x11 + x21 = 80
x12 + x22 = 100
x13 + x23 = 150.
D1 ··· Dn
b1 ··· bn .
• vincoli di origine
n
X
xij = ai i = 1, . . . , m; (3.4.2)
j=1
impongono che tutta la merce prodotta in una origine sia trasportata alle
destinazioni; si tratta di m vincoli;
• vincoli di destinazione
m
X
xij = bj j = 1, . . . , n; (3.4.3)
i=1
xij ≥ 0 i = 1, . . . , n; j = 1, . . . , m.
Si è cosı̀ ottenuta una formulazione del problema dei trasporti con mn variabili
e m + n + mn vincoli:
Xm X n
min cij xij
i=1 j=1
Xn
xij = ai i = 1, . . . , m (3.4.4)
j=1
m
X
xij = bj j = 1, . . . , n
i=1
xij ≥ 0 i = 1, . . . , n; j = 1, . . . , m.
X n
m X X m
n X m
X n
X
xij = xij = ai = bj .
i=1 j=1 j=1 i=1 i=1 j=1
X m
n X n
X
x̄ij = bj ,
j=1 i=1 j=1
che è la (3.4.5).
Dimostriamo ora la sufficienza; supponiamo quindi che valga la (3.4.5) e poniamo
m
X n
X
ai = bj = A.
i=1 j=1
a i bj
Si vuole allora dimostrare che esiste una soluzione ammissibile; infatti, sia x̄ij := ,
A
i = 1, . . . , m, j = 1, . . . , n; allora x̄ij ora definito è una soluzione ammissibile per il
problema dei trasporti. Infatti risulta innanzitutto x̄ij ≥ 0 per ogni i = 1, . . . , m
e j = 1, . . . , n per la non negatività degli ai e dei bj ; inoltre
P
X n Xn
a i bj ai nj=1 bj
x̄ij = = = ai
A A
j=1 j=1
m
X m
X Pm
ai bj bj i=1 ai
x̄ij = = = bj
A A
i=1 i=1
e quindi x̄ij soddisfando i vincoli del problema è una soluzione ammissibile.
Passiamo, ora, ad analizzare alcune varianti della formulazione classica del pro-
blema dei trasporti; può infatti accadere che non tutte le rotte di trasporto siano
disponibli: se non è possibile il trasporto da una certa origine Oi ad una desti-
nazione Dj si pone, per convenzione, cij = ∞. Oppure possono esistere rotte di
trasporto in cui vi sono limitazioni sulle quantità massima di merci trasportabili.
Infine, si può supporre che la disponibilità complessiva possa essere superiore alla
domanda cioè
Xm Xn
ai ≥ bj . (3.4.6)
i=1 j=1
In tal caso, possono essere ammesse giacenze nelle origini e/o nelle destinazioni;
se si accetta di avere giacenze nelle origini, allora i vincoli di origine diventano
n
X
xij ≤ ai i = 1, . . . , m;
j=1
nel caso in cui vale la (3.4.6), per porre il problema dei trasporti nella sua formula-
zione classica, cioè con vincoli di uguaglianza, si può introdurre una destinazione
fittizia che abbia una richiesta pari a
m
X n
X
ai − bj
i=1 j=1