Przykªady problemów optymalizacji kombinatorycznej Problem Komiwoja»era (PK)
Dane:
n liczba miast, n ∈
Z
+,cji, i, j ∈ {1, . . . , n}, i 6= j odlegªo±¢ mi¦dzy miastem i a miastem j, cji = cij, cji ∈
R
+.Zadanie:
Znale¹¢ permutacj¦ miast π∗, dla której T C(π∗) =
n−1 X
j=1
cπ∗(j)π∗(j+1) + cπ∗(n)π∗(1) −→ min .
n, cij (i, j ∈ {1, . . . , n}) parametry PK;
permutacja π rozwi¡zanie PK (π∗ rozwi¡zanie optymalne);
T C funkcja celu.
1
4 5
3 2 c
12(= c
21) = 9
c
34= 6
c
45= 10
c
25= 10 c
13= 7
c
35= 8 c
23= 4
n = 5
Przykładowa instancja PK
c
14= 6
1
4 5
3 2 c
12= 9
c
45= 10
c
25= 10 c
13= 7
c
35= 8 c
23= 4
Przykładowe rozwiązanie π
1instancji PK
TC(π
1) = 9 + 10 + 10 + 6 + 7 = 42 π
1= < 1, 2, 5, 4, 3 >
c
14= 6 c
34= 6
1
4 5
3 2 c
12= 9
c
45= 10
c
25= 10 c
13= 7
c
35= 8 c
23= 4
Rozwiązanie π
2TC(π
2) = 37 < TC(π
1) = 42 π
2= < 1, 3, 2, 5, 4 >
c
14= 6 c
34= 6
Problem Plecakowy (PP) Dane:
A = {a1, a2, . . . , an} zbiór n przedmiotów, n ∈
Z
+, sj, j = 1, . . . , n rozmiar przedmiotu aj, sj ∈Z
+, wj, j = 1, . . . , n warto±¢ przedmiotu aj, wj ∈Z
+, B rozmiar plecaka.Zadanie: Znale¹¢ podzbiór A0 ⊆ A zbioru przedmiotów taki, »e T S = X
j∈A0
sj ≤ B oraz
T W = X
j∈A0
wj −→ max .
n, A, sj, wj (j = 1, . . . , n) parametry PP;
podzbiór A0 rozwi¡zanie PP;
T W funkcja celu (T S dodatkowe ograniczenie).
Przykªadowa instancja PP n = 5, A = {a1, a2, a3, a4, a5},
j 1 2 3 4 5
sj 5 3 2 4 5 wj 3 4 2 6 1 B = 10.
Rozwi¡zanie (dopuszczalne) optymalne: A0 = {a2, a3, a4},
P
j∈A0 sj = 9 ≤ B = 10,
P
j∈A0 wj = 12.
Problem szeregowania zada«
1|r
j|C
max Dane:J = {J1, J2, . . . , Jn} zbiór n zada«, n ∈
Z
+,pojedynczy procesor maj¡cy zrealizowa¢ wszystkie zadania J1, . . . , Jn, pj, j = 1, . . . , n czas wykonywania (dªugo±¢) zadania Jj, pj ∈
R
+, rj, j = 1, . . . , n termin dost¦pno±ci zadania Jj, rj ∈R
+ ∪ {0},Zadanie: Znale¹¢ permutacj¦ zada« π∗, dla której
C
max = maxj∈J {Cπ∗(j)} −→ min,
gdzie Cπ∗(j) = Sπ∗(j) + pπ∗(j) jest czasem zako«czenia wykonywania zadania zajmuj¡cego j-t¡ pozycj¦ w π∗; Sπ∗(j) = max{Cπ∗(j−1), rπ∗(j)} czas rozpocz¦cia wykonywania zadania π∗(j), Cπ∗(0) = 0, j = 1, . . . , n.
Na czym polega trudno±¢ rozwi¡zania problemów optymalizacji kom- binatorycznej?
Liczno±¢ zbioru rozwi¡za«
X
wi¦kszo±ci realnie istniej¡cych problemów jest tak du»a, »e:(a) procedura polegaj¡ca na sprawdzeniu wszystkich mo»liwych rozwi¡za«
problemu (tzw. przegl¡d zupeªny), i wyznaczenie w±ród nich rozwi¡za- nia optymalnego, wymaga nieakceptowalnie dªugiego czasu (np. milio- nów lat);
(b) skonstruowanie algorytmów wyznaczaj¡cych optymalne (b¡d¹ chocia»
bliskie optymalnym) rozwi¡zania tych problemów w sensownym czasie jest zadaniem nietrywialnym.
Funkcja zªo»ono±ci obliczeniowej algorytmu
A
fA(N (I)) = max{t : t ilo±¢ operacji (jednostek czasu) potrzebnych do rozwi¡zania dowolnej instancji I problemu o roz- miarze N(I) przez algorytm A}
(N (I) = n)
W praktyce wa»ny jest tylko ksztaªt funkcji fA(N (I)) (tzn. jej zachow- nie dla rosn¡cych warto±ci rozmiaru problemu N(I)), a nie konkretny czas (konkretne warto±ci funkcji fA).
Notacja
O(·)
funkcja f(n) jest rz¦du O(g(n)) je±li_
c,N
^
n≥N
0 ≤ f (n) ≤ c · g(n), czyli
f (n)
g(n) −→ c dla n → ∞,
(tzn. dla n → ∞ funkcje f(n) i g(n) zachowuj¡ si¦ podobnie).
Przykªady:
f
(n
)O
(g
(n
))n2 − 2n + 5 O(n2)
1
2n · π log n2 O(n log n)
1
2nπ log n2 O(nlog n)
23n−8 O(2n)
n! − 100n25 + 0, 3n0,3 O(n!)
Czasy dziaªania algorytmów o okre±lonych funkcjach zªo»ono±ci oblicze- niowej, przy zaªo»eniu, »e jedna operacja matematyczna zajmuje
1µs
.f
A(n) n
10 20 30 40 50 60
O(n)
0,00001 s 0,00002 s 0,00003 s 0,00004 s 0,00005 s 0,00006 sO(n
2)
0,0001 s 0,0004 s 0,0009 s 0,0016 s 0,0025 s 0,0036 sO(n
5)
0,1 s 3,2 s 24,3 s 1,7 min 5,2 min 13 minO(n
10)
2,7 h 118,5 dni 18,7 lat 3,3 30,9 192wieków wieków wieki
O(2
n)
0,001 s 1,0 s 17,9 min 12,7 dni 35,7 lat 366wieków
O(3
n)
0,59 s 58 min 6,5 roku 3855 2 *10
8 1,3 * 1013 wieków wieków wiekówO(n!)
3,6 s 770 8,4 *1016 2,5 * 1032 9,6 * 1048 2,6 * 1966 wieków wieków wieków wieków wiekówWpªyw wzrostu szybko±ci komputerów na czasy dziaªania algorytmów o okre±lonych funkcjach zªo»ono±ci obliczeniowej.
f
A(n)
Rozmiar instancji rozwi¡zywany Rozmiar instancji rozwi¡zywany w okre±lonym czasie przez w tym samym czasie przezwolny komputer komputer 1000 razy szybszy
O(n)
n1 1000·n1O(n
2)
n2 31, 62·n2O(n
5)
n3 3, 98·n3O(n
10)
n4 1, 99·n4O(2
n)
n5 n5+10O(3
n)
n6 n6+6n7+3 dla n7 ≤ 10
O(n!)
n7 n7+2 dla 10 < n7 ≤ 30n7+1 dla 30 < n7 ≤ 1000
Rodzaje algorytmów ze wzgl¦du na zªo»ono±¢ obliczeniow¡:
Algorytmy wielomianowe algorytmy, których funkcja zªo»ono±ci obli- czeniowej f(n) jest rz¦du O(p(n)), gdzie p(n) jest pewnym wielomianem zale»nym od rozmiaru problemu n, np. O(n), O(n2), O(n log n) (algo- rytmy efektywne obliczeniowo).
Algorytmy wykªadnicze (ponadwielomianowe) algorytmy, których funk- cji zªo»ono±ci obliczeniowej f(n) nie da si¦ ograniczy¢ »adnym wielo- mianem p(n), np. O(2n), O(nlog n), O(n!) (algorytmy nieefektywne obliczeniowo).
Klasy zªo»ono±ci algorytmów:
1. Klasa P zawiera wszystkie problemy, dla których skonstruowano wielomianowe algorytmy optymalne.
2. Klasa NP zawiera wszystkie problemy, dla których skonstruowano wykªadnicze algorytmy optymalne.
P ⊂ N P
, poniewa» je±li dla pewnego problemu mamy alg. wielomia- nowy, zawsze mo»emy skonstruowa¢ alg. mniej efektywny (wykªadni- czy), np. przegl¡d zupeªny.3. Klasa problemów NP-trudnych podklasa NP problemów wielomia- nowo ekwiwalentnych, dla których (najprawdopodobniej) nie mo»na skon- struowa¢ algorytmów wielomianowych.
N P −
trudne⊂ N P
, aleP ∩N P −
trudne= ∅
.4. Klasa problemów silnie NP-trudnych podklasa problemów NP- trudnych, których nie mo»na rozwi¡za¢ optymalnie w czasie pseudo- wielomianowym.
Dokªadne okre±lenie przynale»no±ci danego problemu do klasy zªo»ono±ci pozwala skonstruowa¢ najodpowiedniejsze algorytmy jego rozwi¡zania.
W tym celu:
(i) albo szukamy dla danego problemu optymalnego algorytmu wielomiano- wego (klasa P),
(ii) albo udowadniamy jego (siln¡) NP-trudno±¢,
przy czym nie ma reguªy, od którego z punktów nale»y zacz¡¢ analiz¦.
Problemy, dla których nie skonstruowano algorytmów wielomianowych (i) ani nie udowodniono (silnej) NP-trudno±ci (ii), tworz¡ klas¦ tymczasow¡
(tzw. problemów otwartych).
W praktyce:
9% istniej¡cych problemów nale»y do klasy P,
84% nale»y do klasy problemów NP-trudnych,
z czego 79% nale»y do klasy problemów silnie NP-trudnych,
7% to problemy otwarte.
probl. silnie NP-trudne probl. NP-trudne
klasa P
probl. „otwarte”
klasa NP
Rodzaje algorytmów (metod) optymalnych:
• Wielomianowe algorytmy dokªadne (dedykowane) tylko dla problemów z klasy P.
• Programowanie dynamiczne gªównie dla problemów NP-trudnych w zwykªym sensie (tzn. nie silnie NP-trudnych).
• Programowanie caªkowitoliczbowe.
• Metoda podziaªu i ogranicze« gªównie dla problemów (silnie) NP- trudnych.
• Przegl¡d zupeªny.
Rodzaje algorytmów (metod) przybli»onych:
• Algorytmy konstrukcyjne i zachªanne gªównie dla problemów NP- trudnych.
• Algorytmy typu popraw gªównie dla problemów (silnie) NP-trudnych:
lokalnego poszukiwania (np. poszukiwanie zst¦puj¡ce, poszukiwanie losowe),
metaheurystyczne (np. poszukiwanie z zabronieniami (tabu se- arch), symulowane wy»arzanie, poszukiwanie genetyczne (ewolucyjne), poszukiwanie mrówkowe).
• Wielomianowe i w peªni wielomianowe schematy aproksymacyjne gªównie dla problemów NP-trudnych.