Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
METODI E MODELLI DI OTTIMIZZAZIONE DISCRETA
L1 28/09/2002
- PROGRAMMAZIONE LINEARE A NUMERI INTERI
vincoli e funzione obiettivo sempre lineari
es. binaria:
x > 0
x ≤ 1
x è intero
- 0
- 1
PROBLEMA DELLO ZAINO (KNAPSACK BINARIO)
Abbiamo uno zaino di una certa capacità e una serie di oggetti ognuno caratterizzato da un'utilità e a tale peso lo zaino non riesce a contenerli tutti.
oggetti:
- 1
- 2
- 3
utilità:
- 8 kg
- 3
- 5
- 2
- 1
peso (kg):
- 1
- 3
- 5
- 7
Trovare quali oggetti portare in modo tale da via massima l'utilità complessiva e non hi ecceda la capacità dello zaino.
implicitamente determiniamo anche quali oggetti NON portare
insieme complementare:
S = {1,2,...,n}/S degli oggetti da non portare
insieme di n oggetti
A-S=S
sottinsieme S degli oggetti da portare
è una BIPARTIZIONE
Formulazione
Stati: n oggetti di peso pi ≥ 0 i=1,...,n... di utilità ui ≥ 0 i=1,...,n
Dato un intero B ≥ 0 (capacità dello zaino)trovare un sottoinsieme S ⊆ {1,...,n}
tale che:
- ∑ ui: max (funzione obiettivo)
- ∑ pi ≤ B (vincolo)
Una volta scritta la formulazione individuare ilPROBLEMA DI DECISIONE corrispondente... in questo caso, trovare un sottoinsieme ...
Come rappresentare S?
Attraverso variabili xi:
- 1 se oggetto i ∈ S
- 0 se oggetto i ∉ S
Si possono rappresentare le variabili attraversoun grafo bipartito
xi:
- 1 ... i ∈ S
- 0 ... i ∉ S
... deve essere un MATCHING PERFETTO
Valutiamo le possibili soluzioni sul piano delle soluzioni:
8x1 + 4x2 = 10
x1 + 0 = 2x1 = 10, x2 = 2,5
x2 = 0 => 2x1 = 10, x1 = 1,25
Per tutti il semipiano buchi univocamente il punto grafico e vedi se si verifica il vincolo
Analizziamo la f.o.:
3x1 + 5x2
- x1 = 0 se ai ∈ S
- x1 = 1 o k ai ∉ S => 3x1 = 1 o k ai ∉ S
Questo termine assume valore 0 o 3
Consideriamo ora variabili definite in modo complementare:
4i = 0 se ai ∈ S
4i = 1 o k ai ∉ S i = 1, 2
Come scriviamo una formulazione equivalente?
- x1 + 42 = 1
- x2 + 42 = 1
- {x, 4(sono variabili complementari)}
x4 = 1 - 42 ↦ x2 = 1 - 42
(inseriamo nella formulazione precedente)
Massimo Matching Pesato (Problema Generale)
dato: grafo G-(V, E), peso (pi ≥ 0) i ∈ E
trovare sottoinsieme M di archi (M ⊆ E) t.c. su ogni nodo incide al più 1 arco di M
Il peso complessivo di M sia max
∑i∈M pi
max z = ∣E∣ ∑ ei ∈ E pei
se anche ammettess. per negativi gli archi corrispondenti verrebbero esclusi in automatico
Hp per assurdo
β3 = -5 < 0
M ⊇ β3
Ŕ = M \ β3
c(Ŕ) = c(M) - β3 = c(M) + β3
=> c(Ŕ) > c(M) → su matching senza 3 è sempre migliore
Ha senso il problema di minimizzazione?
Sì ma è banale, basta non prendere alcuni archi
Massima Clique (sottografo completo)
dato: grafo G = (V, E)
Trovare un sottoinsieme S ⊆ V di nodi t.c. |S| sia max
Ogni coppia di nodi di S sia collegata da un arco
In S non ci possono essere 2 nodi se tra loro non c'è l'arco
Es. S = {1, 1, 3} sì
S = {1, 2, 6} no
insieme universo V
xi = 10 xi ∈ S
max z = Σxi
Per esprimere il vincolo ricorriamo al contrario sulla condizione equivalente
xi + xj ≤ 1, j = 1,...,m : (i, j) ∉ E
es.
- x1 + x2 ≤ 1
- x1 + x3 ≤ 1
- x1 + x4 ≤ 1
- x1 + x6 ≤ 1
- x2 + x3 ≤ 1
- x2 + x4 ≤ 1
- x2 + x5 ≤ 1
- x2 + x6 ≤ 1
- x3 + x4 ≤ 1
- x3 + x5 ≤ 1
- x4 + x5 ≤ 1
- x4 + x6 ≤ 1
- x5 + x6 ≤ 1
xi ∈ {0, 1}
0 1 sì
1 0 sì
1 1 no
Funzione di variabili binarie
M = 2
x1, x2 ∈ {0,1}
x1 x2 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 0 0 no no no no no no no no no no no no no no no no 1 0 si no si no si no si no si no si no si no si no 0 1 si si si si no no no no si si si si no no no no 1 1 si si si si si si si si si si si si si si si siA( , ) posso avere 24 - 2 (2M^m) funzioni
ogni configurazione ha un unico corrispondente (non univoco)
es.
f3 → x1 ≥ 1
f13 → x1 + x2 ≤ 1
f11 → x1 ≥ x2
x1 - x2 ≥ 0
∀
P(A) ⇒ ogni soluzione è ammissibile
min / max ∑ ci xi
i = 1
st. xi ∈ {0,1}; i = 1, ..., m
soluz. ottima
x* = (0, ..., 0)
z* = z(x*) = 0 (LB)
soluz. ottima
x* = (1, ..., 1)
z* = ∑ ci (UB)
i = 1, ..., n
⇒ 0 ≤ z ≤ ∑ ci
i = 1
∀
P(A) / {a1, a2, a3}
m = 4
|a| = |P(A)| = 4 - 1 = 24 - 1
0000SISI1SI100SISI1SI010SISI1SI110SISI2SI001SISI1SI101SISI2SI011SISI2SI111NOSI3SI100SISI1SI010SISI1SI110SISI2SI001SISI1SI101SISI2SI011SISI2SI111NOSI3SI100SINO3SIIpotesi caso dei vincoli
- V1 x1 + x2 + x3 = 0
- V2 x1 + x2 + x3 ≤ 2
sottainsieme di A che contengano va più di due elementu tra a1, a2, a3 NO