Metoda podziału i ogranicze ń Literatura
[1] E. M. Reingold, J. Nievergelt, N. Deo Algorytmy kombinatoryczne PWN, 1985.
[2] R.S. Garfinkel, G.L. Nemhauser Programowanie całkowitoliczbowe PWN, 1978.
[3] M.M. Sysło, M. Deo, J.S. Kowalik Algorytmy optymalizacji dyskretnej z programami w j ęzyku PASCAL PWN, 1993.
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 1/7
Metoda podziału i ogranicze ń Zagadnienie plecakowe ZP
Sformułomanie zagadnienie w postaci PLC
c1x1 + · · · + cnxn → max
przy ograniczeniach:
a1x1 + · · · + anxn ≤ b,
xi ∈ {0, 1} dla i = 1, . . . , n.
Rozwiązanie nast ępującego problemu LP dostarcza nam górnego ograniczenia wartości funkcji celu w ZP.
c1x1 + · · · + cnxn → max
przy ograniczeniach:
a1x1 + · · · + anxn ≤ b,
0 ≤ xi ≤ 1 dla i = 1, . . . , n.
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 2/7
Metoda podziału i ogranicze ń
Jak efektywnie rozwi ˛
aza ´
n problem LP?
Uporządkuj przedmioty w nierosnącym porządku wzgl ędem stosunków ci , c1 ≥ · · · ≥ cn .
a
a
a
i
1
n
Włóż do plecaka przedmiot o najwi ększym stosunku.
(najbardziej atrakcyjny).
Powtarzaj proces dopóki plecak nie jest pełny.
Otrzymujemy rozwiązanie
x1 = · · · = xr = 1, xr+1 = · · · = xn = 0, dla którego
a1x1 + · · · + arxr ≤ b i a1x1 + · · · + ar+1xr+1 > b.
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 3/7
Metoda podziału i ogranicze ń 1
x∗1 = · · · = x∗r = 1, x∗r+1 =
(b−a1−· · ·−ar), x∗r
a
+2 = · · · = x∗
n = 0,
r+1
jest rozwiązanie optymalnym problem LP
c1x1 + · · · + cnxn → max
a1x1 + · · · + anxn ≤ b,
0 ≤ xi ≤ 1 dla i = 1, . . . , n.
Jest oczywiste, że x∗ jest rozwiązaniem dopuszczalnym.
Aby pokazać x∗ jest rozwiązaniem optymalnym, wystarczy wyznaczyć rozwiązanie dualne y∗, dla którego c1x∗1 + · · · + cnx∗n = b1y∗1 + y∗2 + · · · + y∗n+1.
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 4/7
Metoda podziału i ogranicze ń Model dualny jest postaci
b1y1 + y2 + · · · + yn+1 → min
a1y1 + y2 ≥ c1
...
any1 + yn+1 ≥ cn
y1, . . . , yn+1 ≥ 0.
Rozwiązanie
c
y∗ = cr+1 , y∗ = c
r+1
k = 2, . . . , r + 1,
1
a
k
k
a
r+1
−1 − ak−1 r+1
y∗ = 0 k = r + 2, . . . , n + 1
k
jest dopuszczalne przy założeniu c1 ≥ · · · ≥ cn i spełnia a
a
1
n
c1x∗1 + · · · + cnx∗n = b1y∗1 + y∗2 + · · · + y∗n+1.
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 5/7
Metoda podziału i ogranicze ń Przykład 2
5x1 + 3x2 + 6x3 + 6x4 + 2x5 → max
przy ograniczeniach:
5x1 + 2x2 + 7x3 + 6x4 + 2x5 ≤ 15,
xi ∈ {0, 1} dla i = 1, . . . , 5.
ranking
przedmiot
ci/ai
(1=najlepszy, 5=najgorszy)
1
1
1
2
0.75
5
3
0.86
4
4
1
1
5
1
1
Wkładamy do plecaka przedmioty 1, 4, 5. Jeżeli dołożymy 3, to nastąpi przepełnienie. Zatem
2
5
x1 = 1, x2 = 0, x3 =
, x4 = 1, x5 = 1, z = 14 .
7
7
Metoda oszacowa ń i podziału dla zagadnienia plecakowego – p. 6/7
o
1
gewok
4
4
=
ac
1
1
4
lep
=
=
x
ian
´
ie
n
n
z
z
sprzeczne
da
1
g
2
5
1
2
az
=
la
=
=
d
1
łu
1
4
ia
x
zd
x
x
o
icze
1
pi
3
4
ń
1
1
=
3
a
n
5
7
w
1
o
4
c
=
=
3
a
x
1
z
=
s
3
4
oa
x
=
d
ra
x
z
=
toe
z
=
1
1
4
M
g
x
0
3
0
2
7
=
=
o
x
=
2
=
4
1
4
x
i
4
x
3
x
1
2
1
1
1
x
41
=
=
=
1
m
z
z
5
=
łu
=
1
u
x
z
1
5
0
m
1
1
2
u
=
=
tim
x
=
=
p
5
3
=
=
=
2
o
tim
x
x
zia
3
x
2
p
4
x
2
o
x
=
=
x
x
=
d
4
1
=
4
x
x
o
1
x
1
=
x
=
=
p
3
5
1
x
x
x
a
=
3
4
d
1
x
=
=
z
1
0
x
1
eto
=
=
2
x
5
M
x
=
4
x
=
1
x