• Non ci sono risultati.

Variabili binarie

N/A
N/A
Protected

Academic year: 2021

Condividi "Variabili binarie"

Copied!
38
0
0

Testo completo

(1)

Modello matematico

Traduzione di un problema di decisione, di cui si ha una descrizione a parole, nel linguaggio matematico: le varie componenti del problema di decisione vengono tradotte in oggetti matematici come insiemi, numeri, variabili,

equazioni e/o disequazioni, funzioni matematiche.

No teoria, si impara con la pratica. Ma alcune cose

ritornano spesso nella creazione di modelli ed è possibile darne una descrizione formale.

Concentreremo l’attenzione su modelli in cui compaiono

solamente espressioni lineari (problemi di Programmazione

(2)

Argomenti trattati

variabili binarie, particolarmente importanti nella creazione di modelli di problemi di decisione, con i relativi vincoli logici;

non linearità eliminabili (funzioni non lineari sostituibili da equivalenti espressioni lineari);

problemi di particolare rilevanza nelle applicazioni

pratiche di cui daremo sempre il modello matematico e, in molti casi, anche il modello dello stesso nel

linguaggio AMPL.

(3)

Variabili binarie

Possono assumere due soli valori (convenzionalmente fissati a 0 e 1).

Vengono utilizzate nei problemi di decisione quando, come spesso accade, si deve scegliere se effettuare o non

effettuare una determinata azione, se un sistema si debba trovare o meno in un determinato stato.

Vedremo diversi casi in cui se ne fa uso.

(4)

Limitazioni su altre variabili

Supponiamo che nel nostro problema di decisione una

certa variabile x abbia una limitazione superiore pari a B se ci si trova in uno tra due possibili stati.

La scelta tra i due possibili stati viene modellata con una

variabile binaria δ e possiamo imporre che lo stato relativo a δ = 1 sia quello per cui x non può superare B. In altre

parole, abbiamo la seguente relazione tra δ e x δ = 1 ⇒ x ≤ B.

(5)

Vincolo logico → disequazione

x ≤ Bδ + (1 − δ)M,

M=limite superiore esplicito o implicito (ovvero derivato da altri vincoli del problema) sui valori che possono essere assunti da x indipendentemente dallo stato del sistema (in prima analisi possiamo anche pensare a M = +∞).

(6)

Esempio

Un impianto di produzione, che ha una capacità produttiva (massimo numero di prodotti realizzabili in una giornata) in condizioni normali pari a Cap1, può essere fatto funzionare con una capacità ridotta Cap2 < Cap1.

In questo caso i due stati sono il funzionamento normale (δ = 0) o ridotto (δ = 1) dell’impianto.

Se indichiamo con x il numero di prodotti realizzati in una giornata, possiamo imporre il vincolo:

x ≤ Cap2δ + (1 − δ)Cap1,

(7)

Altro esempio

Supponiamo di non avere limiti dal di sopra espliciti per la variabile x ma che nel problema siano presenti i vincoli

x + y + z ≤ 100, x, y, z ≥ 0,

Un limite implicito per x è 100 e possiamo utilizzare tale valore come quantità M.

(8)

Limitazioni inferiori di variabili

Supponiamo ora che una certa variabile x abbia una

limitazione inferiore pari ad A se ci si trova in uno tra due possibili stati.

Di nuovo la scelta tra i due possibili stati viene modellata con una variabile binaria δ e possiamo imporre che lo stato relativo a δ = 1 sia quello per cui x non può essere inferiore ad A.

Quindi, abbiamo la relazione

δ = 1 ⇒ x ≥ A.

(9)

Vincolo logico → disequazione

x ≥ Aδ − (1 − δ)M,

−M= limite inferiore (esplicito o implicito) sui valori che

possono essere assunti da x indipendentemente dallo stato del sistema. In particolare, se abbiamo un vincolo di non

negatività per x possiamo imporre M = 0. NOTA BENE: si potrebbe anche usare

δx ≥ δA.

ma in tal caso si perde la linearità.

(10)

Variabili binarie per imporre vincoli

In alcuni problemi può accadere che un certo vincolo Pn

j=1 ajxj ≤ b sia presente solo se un sistema si trova in uno tra due possibili stati, identificato, ad esempio, dal valore 1 di una variabile binaria δ.

Quindi:

δ = 1

Xn

j=1

ajxj ≤ b.

Equivalente alla disequazione

Xn

j=1

ajxj ≤ bδ + M (1 − δ),

M= numero sufficentemente elevato, tale da rendere la disequazione Pnj=1 ajxj ≤ M (a cui ci si riduce nel caso δ = 0) ridondante rispetto agli altri vincoli del problema.

(11)

In particolare...

... se sono note delle limitazioni inferiori lj e superiori uj per tutte le variabili xj, una possibile scelta per M è la seguente

M =

Xn j=1

max{ajlj, ajuj}.

(12)

Esempio

Supponiamo che i e j siano due attività di durata

rispettivamente pari a di e dj che non possano essere eseguite contemporaneamente.

Associamo alle due attività due variabili ti e tj che indicano il loro istante di inizio.

Ipotiizziamo anche che le attività debbano essere iniziate in un determinato intervallo, ovvero che esistano istanti Tmin e Tmax tali che

Tmin ≤ ti, tj ≤ Tmax.

Se le due attività non possono essere eseguite

contemporaneamente possiamo introdurre una variabile binaria

δij =

0 se i precede j 1 se j precede i

(13)

Quindi...

δij = 0 ⇒ tj ≥ ti+di (j può iniziare solo quando finisce i) δij = 1 ⇒ ti ≥ tj+dj (i può iniziare solo quando finisce j) In base a quanto visto le due implicazioni possono essere tradotte nei seguenti vincoli

tj ≥ ti + di(1 − δij) − M δij ti ≥ tj + djδij − M (1 − δij), dove possiamo scegliere M = Tmax − Tmin.

(14)

Costi fissi

Le variabili binarie vengono frequentemente usate per modellare problemi in cui sono presenti costi fissi.

Pensiamo al caso di una variabile x che rappresenta la quantità realizzata di un certo prodotto. Se x = 0 avremo ovviamente un costo di produzione associato al prodotto pari a 0.

Ma se x > 0 allora avremo un costo pari a f + cx dove:

c = costo di produzione per unità di prodotto;

f = costo fisso (legato, ad esempio, al fatto che la

produzione richiede l’acquisto di un certo macchinario il cui costo è, appunto, fisso e non dipende dalla quantità prodotta).

(15)

Allora...

... si introduce la variabile binaria

δ =

( 0 se x = 0 1 se x > 0 Con questa il costo diventa

cx + f δ

(16)

Continua

Dobbiamo modellare l’implicazione

δ = 0 ⇒ x = 0.

Se M è un limite noto (implicito o esplicito) per i valori che possono essere assunti da x possiamo imporre

x ≤ M δ,

Combinata con il vincolo di non negatività x ≥ 0 (la produzione non può ovviamente essere negativa), garantisce che l’implicazione sia soddisfatta.

(17)

Però ...

... dovremmo anche imporre

δ = 1 x > 0.

Questo non viene imposto ma è in realtà una condizione sempre soddisfatta dalle soluzioni ottime del problema.

Infatti, il costo comparirà in un obiettivo da minimizzare

min · · · + (f δ + cx) + · · · ..

.

x ≤ M δ ..

.

x ≥ 0

(18)

Vincoli logici

Spesso accade che esistano dei vincoli logici che legano i valori di diverse variabili binarie.

Ad esempio, ipotizziamo di avere quattro attività A, B, C, D che possiamo decidere se svolgere o non svolgere e che valga il seguente vincolo:

se si esegue A o B, allora si esegue C o non si esegue D (gli o vanno intesi come non esclusivi).

(19)

Continua

Indichiamo con Vi, i = A, B, C, D, l’evento si esegue l’attività i.

Utilizzando gli operatori logici ∪ (OR), ∩ (AND), ¬ (NOT), ⇒ (implicazione), possiamo scrivere il vincolo come

VA ∪ VB ⇒ VC ∪ ¬VD.

(20)

Operazioni logiche

S1 ⇒ S2 ≡ S1 ∪ ¬S2

¬(S1 ∪ S2) ≡ ¬S1 ∩ ¬S2

¬(S1 ∩ S2) ≡ ¬S1 ∪ ¬S2

S1 ∪ (S2 ∩ S3) ≡ (S1 ∪ S2) ∩ (S1 ∪ S3) S1 ∩ (S2 ∪ S3) ≡ (S1 ∩ S2) ∪ (S1 ∩ S3)

(21)

Forma normale disgiuntiva

Ogni espressione logica che coinvolge gli operatori ∪, ∩, ¬,

⇒ può essere riscritta in forma normale disgiuntiva E1 ∪ · · · ∪ Ek ∪ ¬Ek+1 ∪ · · · ∪ ¬Ek+h,

dove ogni Ei, i = 1, . . . , k + h è una espressione data dall’intersezione di un numero finito di eventi

(eventualmente negati).

(22)

Forma normale congiuntiva

Ogni espressione logica che coinvolge gli operatori ∪, ∩, ¬,

⇒ può essere riscritta anche in forma normale congiuntiva E1 ∩ · · · ∩ Ek ∩ ¬Ek+1 ∩ · · · ∩ ¬Ek+h,

dove ogni Ei, i = 1, . . . , k + h è una espressione data dall’unione di un numero finito di eventi (eventualmente negati).

(23)

Nell’esempio

Forma normale disgiuntiva

(¬VA ∩ ¬VB)

| {z }

E1

∪ VC

|{z}

E2

∪ ¬VD

|{z}

E3

Forma normale congiuntiva (¬VA ∪ VC ∪ ¬VD)

| {z }

E4

∩ (¬VB ∪ VC ∪ ¬VD)

| {z }

E5

.

(24)

Variabili binarie

Introduciamo

δi =

( 0 se si decide di non eseguire l’attività i 1 altrimenti

i = A, B, C, D.

Vediamo come una forma normale congiuntiva e disgiuntiva può essere tradotta in un sistema di disequazioni lineari

che coinvolge queste variabili binarie (più altre eventualmente da aggiungere).

(25)

OR di eventi

Un OR di eventi (eventualmente negati)

V1 ∪ · · · ∪ Vk ∪ ¬Vk+1 ∪ · · · ∪ ¬Vk+h,

a cui si associano le variabili binarie δi, i =, . . . , k + h, viene tradotto nella disequazione

Xk i=1

δi +

k+hX

i=k+1

(1 − δi) ≥ 1

ovvero almeno una della variabili δi, i = 1, . . . , k, deve essere pari a 1 oppure almeno una delle variabili δi,

(26)

AND di eventi

Consideriamo un AND di eventi (eventualmente negati) V1 ∩ · · · ∩ Vk ∩ ¬Vk+1 ∩ · · · ∩ ¬Vk+h.

Possiamo introdurre, oltre alle variabili binarie δi,

i =, . . . , k + h, un’ulteriore variabile binaria δ il cui valore pari a 1 implica che l’espressione è soddisfatta, ovvero

δ = 1 ⇒ δi = 1 i = 1, . . . , k, δi = 0 i = k + 1, . . . , k + h, Equivalentemente

δi ≥ δ i = 1, . . . , k

δi ≤ 1 − δ i = k + 1, . . . , k + h.

(27)

Nell’esempio

E1 ≡ ¬VA ∩ ¬VB → δA ≤ 1 − δ, δB ≤ 1 − δ,

E1 ∪ VC ∪ ¬VD → δ + δC + (1 − δD) ≥ 1.

Quindi, la froma normale disgiuntiva per l’esempio equivale al sistema di vincoli lineari





δA ≤ 1 − δ δB ≤ 1 − δ

δ + δC − δD ≥ 0.

(28)

Continua

E4 ≡ ¬VA ∪ VC ∪ ¬VD → δC + (1 − δA) + (1 − δD) ≥ 1,

E5 ≡ ¬VB ∪ VC ∪ ¬VD → (1 − δB) + δC + (1 − δD) ≥ 1, Quindi, la forma normale congiuntiva equivale al sistema di vincoli lineari

( δA + δD − δC ≤ 1 δB + δD − δC ≤ 1.

(29)

Nota bene - I

Nel caso specifico le due formulazioni ottenute tramite la forma congiuntiva e quella disgiuntiva sono tra loro

equivalenti, ma da un punto di vista algoritmico si osserva che la forma disgiuntiva è spesso migliore rispetto a quella congiuntiva.

(30)

Nota bene - II

L’AND di due eventi S1 e S2 con associate le variabili binarie δ1 e δ2, oltre a poter essere modellato, con l’introduzione

della variabile binaria aggiuntiva δ, come δ1 ≥ δ, δ2 ≥ δ

può essere modellato anche con il vincolo δ1δ2 ≥ δ.

Tuttavia, un vincolo di questo tipo è non lineare ed è opportuno quindi evitarne l’introduzione.

(31)

Non linearità

Per quanto la presenza di espressioni lineari in un modello sia sempre auspicabile per la maggiore facilità di

risoluzione dei problemi lineari, non sempre è possibile evitare l’introduzione di espressioni non lineari.

Per esempio, prendiamo la semplicissima formula della velocità in un moto rettilineo uniforme

v = s t

dove v indica la velocità, s lo spazio percorso e t il tempo.

(32)

Ma ...

... esistono anche casi in cui la non linearità può essere

eliminata con l’introduzione di opportune espressioni lineari.

Vedremo un paio di esempi:

problemi maximin e minimax;

problemi di minimizzazione di somme di valori assoluti.

(33)

Problemi minimax

min maxr=1,...,k{Pn

j=1 crjxj + c0r} Pn

j=1 aijxj ≤ bi i = 1, . . . , m

xj ≥ 0 j = 1, . . . , n

La funzione obiettivo

f(x) = max

r=1,...,k{

Xn j=1

crjxj + c0r}

è non lineare.

(34)

Ma ...

... il problema è equivalente al seguente problema di programmazione lineare

min y

y ≥ Pn

j=1 crjxj + c0r r = 1, . . . , k Pn

j=1 aijxj ≤ bi i = 1, . . . , m xj ≥ 0 j = 1, . . . , n

(35)

Osservazione

Un discorso analogo vale per la massimizzazione del minimo di un numero finito di funzioni lineari (problema

maximin), mentre si può verificare che non è eliminabile la non linearità nei problemi di massimizzazione del massimo di un numero finito di funzioni lineari (maximax) e

minimizzazione del minimo di un numero finito di funzioni lineari (minimin).

(36)

Tuttavia ...

...teniamo presente come problemi maximax e minimin siano risolvibili risolvendo più problemi di PL.

Ad esempio il problema minimin:

min minr=1,...,k{Pn

j=1 crjxj + c0r} Pn

j=1 aijxj ≤ bi i = 1, . . . , m

xj ≥ 0 j = 1, . . . , n

lo possiamo risolvere risolvendo i k problemi di PL per r = 1, . . . , k:

min Pn

j=1 crjxj + c0r

Pn

j=1 aijxj ≤ bi i = 1, . . . , m xj ≥ 0 j = 1, . . . , n

(37)

Somma di valori assoluti

min Pk

r=1 | Pn

j=1 crjxj + c0r | Pn

j=1 aijxj ≤ bi i = 1, . . . , m xj ≥ 0 j = 1, . . . , n La funzione obiettivo

f(x) =

Xk r=1

|

Xn j=1

crjxj + c0r |

è non lineare.

(38)

In realtà ...

... osservando che

| Xn

j=1

crjxj + c0r |= max{

Xn

j=1

crjxj + c0r, Xn

j=1

crjxj − c0r}.

Abbiamo che il problema è equivalente a

min Pk

r=1 max{Pn

j=1 crjxj + c0r,Pn

j=1 crjxj − c0r} Pn

j=1 aijxj ≤ bi i = 1, . . . , m

xj ≥ 0 j = 1, . . . , n

a sua volta equivalente al problema lineare

min Pk

j=1 yj yj Pn

j=1 crjxj + c0r r = 1, . . . , k yj ≥ −Pn

j=1 crjxj − c0r r = 1, . . . , k Pn

j=1 aijxj ≤ bi i = 1, . . . , m

Riferimenti

Documenti correlati

• Per curve che NON delimitano una supercie chiusa (es. retta, parabola,...) il segno &gt; implica che la regione che verica la disequazione è quella AL DI SOPRA della linea

Se la definizione di limite di funzione reale di variabile reale, con relative proprietà, si estende in modo agevole alle funzioni di R n in R le cose sono diverse quando cerchiamo

Sia data la parabola y=-x 2 +4x, trovare il rettangolo di area massima inscritto nel parte di piano compresa tra la. parabola e

[r]

In questo modo avvicinandosi ad un ottimo locale la scelta della direzione di ricerca diventa sempre più vicina a quella effettuata nel metodo di Newton consentendo a questi. metodi

Questo è tanto più difficile, quanto più difficile è il problema che cerchiamo di risolvere in base alla teoria

Analogamente, per trattare un sistema che pu` o scambiare particelle con un serbatoio, consideriamo il sistema complessivo, comprendente anche il serbatoio, come un sistema chiuso

Determinare l'ampiezza dell'angolo al centro del settore circolare in modo che il cono abbia