inz_prez.odp

Download Report

Transcript inz_prez.odp

Wybrane problemy
alokacji zasobów
Kacper Dominik Tomżyński
opiekun naukowy: dr inż. Krzysztof Pieńkosz
Problem plecakowy
źródło: wikipedia
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Problem plecakowy: przykład 2
źródło: US National Institute of Standards and Technology [ http://nist.gov ]
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Sformułowanie problemu
Dyskretny problem plecakowy (0-1, lub KP01),
parametry:
●
●
●
N – liczba elementów
c – maksymalna pojemność plecaka (zasobu do
rozlokowania)
pi – profit z włożenia i-tego elementu do plecaka
(przydzielenia zasobu i-temu podmiotowi)
●
wi – waga (objętość) i-tego elementu
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Sformułowanie problemu, cd.
Dyskretny problem plecakowy (0-1, lub KP01),
zmienne:
●
xi – zmienna decyzyjna określająca wybór i-tego
elementu do umieszczenia w plecaku
(przydzielenia wi zasobu i-temu podmiotowi)
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Sformułowanie problemu, cd.
Dyskretny problem plecakowy (0-1, lub KP01),
model
cel:
max
∑
i ∈1,2, .. , N
x i pi
przy ograniczeniach:
∑
i ∈1,2, .. , N
x i w i c
0x i 1 dla każdego x
i
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Metody rozwiązywania
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Proste metody rozwiązywania I
Przegląd
N=5
c = 15
j 1 2 3 4 5
p 4 2 1 10 2
w 12 2 1 4 1
dopuszczalne
z=7
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Metody rozwiązywania I
Przegląd
N=5
c = 15
j 1 2 3 4 5
p 4 2 1 10 2
w 12 2 1 4 1
niedopuszczalne
12 + 2 + 4 < c = 16
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Metody rozwiązywania 1
Przegląd
N=5
c = 15
j 1 2 3 4 5
p 4 2 1 10 2
w 12 2 1 4 1
dopuszczalne
z = 13
itd...
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Metody rozwiązywania I – przegląd
●
Sprawdzenie wszystkich możliwych wektorów
binarnych x, wybranie z nich dopuszczalnych –
a z nich optymalnego. Zatem możliwości jest 2N
●
Założenie: 1 000 000 000 000 sprawdzeń / sek.
●
Dla N = 60, czas obliczeń równy: 30 lat
●
Dla N = 61, czas obliczeń: >60 lat
●
Dla N = 65, czas obliczeń: 1000 lat!, itp...
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Inne algorytmy
●
W związku z NP-trudnością problemu, a
ponieważ jest on typowym (a więc i dość często
występującym) problemem optymalizacyjnym –
powstało wiele algorytmów dokładnych i
aproksymacyjnych, m. in.
–
Programowanie dynamiczne
–
Ulepszone algorytmy przeglądu (branch&bound)
–
Różne heurystyki
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Modyfikacja KP01
A Maximum Cardinality Upper Bound
cel:
max
przy ograniczeniach:
∑
i ∈1,2, .. , N
∑
i ∈1,2, .. , N
∑
x i pi
x i w i c
i ∈1,2, .. , N
x i K
0x i 1 dla każdego x
i
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
●
●
●
Autorstwo: Martello-Toth, 1995
Znajdowanie górnego ograniczenia dla problemu
zrelaksowanego (xi ciągłe)
Na podstawie rozwiązania zrelaksowanego
obliczane jest rozwiązanie dokładne
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Oznaczenia: 'opłacalność' i-tego elementu
pi
●
Niech v i =
●
na przykład:
c = 48
wi
dla każdego i
j 1 2 3
p 15 16 19
w 10 12 15
v 1,5 1,33 1,27
4
17
14
1,21
5 6
19 23
17 21
1,12 1,1
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Oznaczenia: element krytyczny
xs
●
Element, który przy pakowaniu plecaka wg
algorytmu zachłannego, jako pierwszy nie mieści
się cały
s −1
s
∑ j =1 w j c ∑ j =1 w j
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Oznaczenia: element krytyczny
s −1
s
∑ j =1 w j c ∑ j =1 w j
c = 48
j 1 2 3
p 15 16 19
w 10 12 15
v 1,5 1,33 1,27
4
17
14
1,21
5 6
19 23
17 21
1,12 1,1
s=4
10 + 12 +15 = 37 < 48 < 37 + 14 =51
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Oznaczenie: liczność rozwiązania
C x =∑i ∈1..N x i
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Mnożnik Lagrange'a
dualizacja ograniczenia
na składnik funkcji celu
∑
i ∈1,2, .. , N
x i K
N
N
U1 =max ∑i =1 p j x j K −∑i =1 x j 
N
U1 =K max ∑i =1 pj x j
pj =p j −
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Sformułowanie nowego zadania
funkcja celu
∗
z =U1  =min 0 {U1 }
przy ograniczeniach:
∑
i ∈1,2, .. , N
x i w i c
0x i 1 dla każdego x
i
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
funkcja celu
∗
zalety?
–
z =U1  =min 0 {U1 }
łatwo znaleźć, dla zadanej wielkości λ rozwiązanie
zrelaksowanego problemu KP01 (czyli U1(λ)) –
wystarczy: - posortować elementy wg malejącej
wartości vj
- znaleźć element krytyczny s(λ)
- umieścić przemioty 1,...,s-1 w plecaku i dopełnić go
elementem krytycznym
–
wartości λ są ściśle ograniczone i należą do policzalnego
zbioru
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
N
N
U1 =max ∑i =1 p j x j K −∑i =1 x j 
zatem...
–
K =C
minimum U1(λ) dla warunku
N
x , =∑i =1 x j
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
c = 48
C(x,λ) = K
jak zmienia się C(x, λ) w zależności od λ ?
j 1
2
3
p 15 16 19
w 10 12 15
v 1,500 1,333 1,267
p^ 15 16 19
v^ 1,500 1,333 1,267
4
17
14
5
19
17
6
23
21
λ
0
1,214 1,118 1,095
17
19
23
1,214 1,118 1,095
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
bardziej formalnie...
–
mamy λ' < λ'' oraz 2 elementy o indeksach a i b, takie że
oraz
stąd
–
va '  vb ' 
va ' ' vb ' ' 
w b w A
wraz ze wzrostem λ bardziej wartościowe są elementy
o większych wagach
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
na przykład...
λ=0
–
pa = 10, wa = 2
va = 5
–
pb = 20, wb = 5
vb = 4
a dla λ = 5
_
– p = 10-5 = 5, w = 2
a
a
_
– p = 20-5 = 15, w = 5
b
b
–
_
va = 2,5
_
vb = 3
_ _
v a > vb
_ _
v a < vb
jeszcze raz: wraz ze wzrostem λ bardziej 'wartościowe'
są elementy o większych wagach
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
bardziej formalnie...
–
mamy λ' < λ'' oraz 2 elementy o indeksach a i b, takie że
va '  vb ' 
λ
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Wnioski
–
wraz ze wzrostem λ bardziej 'wartościowe' są elementy
o większych wagach
–
czyli... elementy te znajdą się w rozwiązaniu
–
czyli... mniej elementów 'zmieści' się w plecaku
–
czyli...
C(x,λ) nie rośnie wraz ze wzrostem λ
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1

x
C  x , s 
C  x , s 
s
C  x ,
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Rozwiązanie, dla danego λ :
–
C (x, λ) < K : λ – za duża, za mało elementów w
plecaku
–
C (x, λ) > K : λ – za mała, za dużo elementów w
plecaku
–
C (x, λ) = K : λ – optymalna
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Poszukiwanie właściwej λ
–
binarnie: λ1 = 0, λ1 = K-ta największa wartość pi
–
λ = ½ (λ1 +λ2)
–
–
sprawdzamy warunek C (x, λ) = K i później
przypisujemy albo λ := λ1 albo λ := λ2
koniec, gdy λ1 = λ2
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
Redukcja obliczeń
–
startujemy z λ = 0, załóżmy że C(x,λ) > K – więc zwiększamy λ
–
za każdym razem możemy wyznaczyć element krytyczny s(λ)
–
kiedy nastąpi zmiana zawartości plecaka?
gdy element krytyczny s stanie się tak samo 'wartościowy'
jak któryś z elementów spoza niego, tj. gdy zajdzie warunek
vj(λ) = vs(λ)
–
zatem przeszukujemy skończoną liczbę punktów
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Algorytm 1
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Podsumowanie 1
Zasada działania algorytmu
–
przechodzimy między punktami przecięcia funkcji prostej
opłacalności elementu krytycznego z funkcjami elementów
mogących potencjalnie 'wyjść' albo 'wejść' do plecaka
–
poszukujemy dopóki nie znajdziemy optymalnej wartości
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Podsumowanie
Zalety algorytmu Martello-Totha
–
pozwala obliczyć w szybkim czasie: O(n log n) rozwiązanie
problemu plecakowego z ograniczoną liczbą elementów
–
jest łatwy w implementacji
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Materiały
http://home.elka.pw.edu.pl/~ktomzyns/inz/
wybrane problemy alokacji zasobów, Kacper D. Tomżyński
Dziękuję za uwagę
wybrane problemy alokacji zasobów, Kacper D. Tomżyński