You are on page 1of 22

OBLICZENIA RÓWNOLEGLE

Temat 1: Algorytm, zlozonosc - przypomnienie

Prowadz acy: dr inz. Zbigniew TARAPATA


pok.225A, tel.: 83-94-13

e-mail: Zbigniew.Tarapata@wat.edu.pl

http:// tarapata.strefa
tarapata.strefa.pl
.pl//p_obliczenia_rownolegle /

PLAN REFERATU

n Zloz ono
onosc
sc algorytmu a zlozonosc problemu (zadania);

n Optymalno sc algorytmu ze wzgledu na dok


Optymalnosc doklladno
adnosc
sc,
a optymalnosc ze wzgledu na z loz ono
onosc
sc;

n Zlozonosc pesymistyczna
pesymistyczna, zlozonosc oczekiwana ,
wrazzliwo
wra liwosc
sc algorytmów;

n Problem decyzyjny a optymalizacyjny;

n Klasy zl
zloz ono
onossci obliczeniowej problemów;

n Dowodzenie przynalez
przynalez no
nossci problemu do klasy zl
zloz ono
onossci
ci;

n Metody badania zlozonosci, dokladnosci algorytmów;


Z.Tarapata, Obliczenia równolegle, wyklad nr 1 2

1
ALGORYTM - przypomnienie podstawowych pojec

n Algorytmika jest dziedzina wiedzy zajmujaca sie badaniem


algorytmó
algorytm ó w;
n W informatyce jest ona nieodlacznie zwiazana z algorytmami
przetwarzania struktur danych
danych;
n Potocznie algorytm jest rozumiany jako pewien przepis na
wykonanie jakiegos zestawu czynnosci, prowadzacych do
osi agniecia oczekiwanego i z góry okreslonego celu;
n Mówi si e równiez, ze:
n - algorytm jest pewna scisle okreslona procedura obliczeniowa,
która dla zestawu wlasciwych danych wejsciowych wytwarza
zadane dane wyjsciowe;
n - algorytm jest to zbiór regul postepowania umozliwiajacych
rozwiazanie okreslonego zadania w skonczonej liczbie kroków
i w skonczonym czasie.
Termin algorytm wywodzi si e od zlatynizowanej formy
(Algorismus
Algorismus,, Algorithmus
Algorithmus)) nazwiska matematyka arabskiego
z IX w., Al - Chuwarizmiego
Chuwarizmiego..
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 3

ZLOZONOSC ALGORYTMU
A ZLOZONOSC PROBLEMU (ZADANIA)

n Zloz ono
onosc
sc algorytmu – liczba kroków algorytmu
(czas) potrzebna na rozwiazanie danego
problemu dla najgorszego przypadku danych
ustalonego rozmiaru;

n Zlozonosc problemu (zadania) - zlozonosc


najlepszego algorytmu rozwiazujacego ten
problem;

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 4

2
OPTYMALNOSC W SENSIE ZLOZONOSCI,
OPTYMALNOSC W SENSIE DOKLADNOSCI

n Algorytm nazywamy optymalnym ze wzgle wzgle du na zl


zloz ono
onosc
sc
jezeli nie istnieje inny algorytm (dla tego samego problemu)
o zlozonosci lepszej;

n Algorytm nazywamy optymalnym ze wzgle


wzgle du na dokl
dokladno
adnosc
sc
(dla danego problemu, przy posiadanej informacji) jezeli blad
tego algorytmu jest najmniejszy sposród bledów wszystkich
algorytmów rozwiazujacych dany problem;

n Algorytm A nazywamy ε-aproksymacyjnym (εε- przybli


przyblizz onym
onym)
(εε>1
>1) jezeli zachodzi nastepujaca zaleznosc:

S(A(Z)) ≤ ε ⋅ S(Z)
gdzie S(A(Z)) – wartosc rozwiazania problemu Z przez algorytm
A, S(Z) – wartosc optymalnego rozwiazania problemu Z;
UWAGA!
Optymalnosc algorytmu ze wzgledu na dokladnosc oraz zlozonosc
nie musi sie pokrywac !!!
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 5

PESYMISTYCZNA ZLOZONOSC
OBLICZENIOWA

Niech:
Dn - zbiór danych rozmiaru n dla rozwazanego
problemu;
t( I ) - liczba operacji podstawowych wykonanych
przez algorytm na danych I∈Dn;

Pesymistyczna zlozonosc obliczeniowa W(n)


definiowana jest jako :

W (n ) = max {t ( I ) : I ∈ Dn }

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 6

3
OCZEKIWANA ZLOZONOSC
OBLICZENIOWA
Niech:
p( I ) -prawdopodobienstwo wystepowania danych I∈Dn;
X n- zmienna losowa o wartosciach t ( I ) i rozkladzie p(I );

Oczekiwana zlozonosc obliczeniowa A(n) definiowana


jest jako :

A(n ) = ∑ p ( I ) t (I ) = E ( X n )
I ∈Dn

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 7

WRAZLIWOSC PESYMISTYCZNA
I OCZEKIWANA ALGORYTMÓW

Wrazliwosc pesymistyczna:

∆ (n ) = max{t( I1 ) − t (I 2 ) : I1 , I 2 ∈ Dn }

Wrazliwosc oczekiwana:

δ (n ) = Var( X n ) = ∑ p (I ) ⋅ (t ( I ) − E( X ))
2
n
I ∈Dn

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 8

4
DEFINICJE RZEDÓW ZLOZONOSCI
OBLICZENIOWEJ

Niech R* =R +∪{0}.
Mówimy, ze funkcja f(x):R*→R* jest rzedu O(g(x) g(x)))
(g(x):R*→R*), jesli istnieje taka stala c>0 oraz x0∈R*,
ze dla kazdego x≥x0 zachodzi f(x)≤c⋅g(x) (f nie rosnie
szybciej niz g).
y

f(x)=O(g(x))
cg(x)
f(x)

x
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 x0 9

DEFINICJE RZEDÓW ZLOZONOSCI


OBLICZENIOWEJ, c.d.

Niech R* =R +∪{0}.
Mówimy, ze funkcja f(x):R*→R* jest rzedu Ω (g(x) g(x)))
(g(x):R*→R*), jesli istnieje taka stala c>0 oraz x0∈R*,
ze dla kazdego x≥x0 zachodzi g(x)≤c⋅f(x) (f nie rosnie
wolniej niz g).
y
f(x)=Ω (g(x)
(x)=Ω g(x)))

cf(x)
g(x)

x
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 x0 10

5
DEFINICJE RZEDÓW ZLOZONOSCI
OBLICZENIOWEJ, c.d.
Niech R* =R +∪{0}.
Mówimy, ze funkcja f(x):R*→R* jest rzedu Θ (g(x) g(x)))
(g(x):R*→R*), jesli istnieja takie stale c1, c2>0 oraz
x0∈R*, ze dla kazdego x≥x0 zachodzi
c1 g(x)≤f(x)≤c2g(x) (f rosnie tak samo jak g).
y

f(x)=Θ (g(x)
(x)=Θ g(x))) c2g(x)

f(x)

c 1g(x)

x
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 x0 11

KLASY I TYPY FUNKCJI ZLOZONOSCI


OBLICZENIOWEJ

Klasa funkcji Typ funkcji Przyklady


stala Θ(e sin 2 n ) , Θ(1 / n )
−n

subliniowa
polilogarytmiczna Θ(log log n ) , Θ (log 2 n )
liniowa Θ(n ) , Θ(n(1+ 1 / n )n )
quasi-liniowa Θ (nlog n ) , Θ(n log log n )
wielomianowa   n 
kwadratowa ( )
Θ n 2 ,Θ  
  2 
superwielomianowa ( ) , Θ(e )
Θ n lg n
n

niewielomianowa wykladnicza Θ (2 ) ,Θ(n 3 )


n 2 n

superwykladnicza Θ(2 ) , Θ (n )
n n n

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 12

6
Wplyw wzrostu predkosci komputera na
maksymalny rozmiar zagadnienia, które
mozna rozwiazac w jednostce czasu
Algorytm Maksymalny rozmiar zagadnienia
przed wzrostem po 100-krotnym
Symbol Zlozonosc
predkosci wzroscie predkosci
A5 Θ(n ) N5 100N 5
A4 ( )
Θn 2
N4 10 N4
Θ(n ) 3
A3 N3 4.64 N3
A2 Θ(n ) 5
N2 3.5 N2
A1 Θ(2 ) n
N1 6.64+N 1
A0 Θ (n log n ) N0 100N 0 dla N 0 >> 1

N42 = 1h , c4 N 4 ( )2
= 1h ⋅ 100 ⇒ c4 = 100 = 10

2 N1 = 1h , 2 N1 +c1 = 1h ⋅100 ⇒ 2c1 = 100 ⇒ c1=log2100=6.64


Z.Tarapata, Obliczenia równolegle, wyklad nr 1 13

Zwiazek pomiedzy rz edem zlozonosci, stala


proporcjonalnosci, rozmiarem danych i
rzeczywistym czasem obliczen na minikomputerze
i superkomputerze
n Cray-1 PENTIUM IV 1.6 GHz
3
3n [ns] 195000n [ns]
10 3 µs 300 µs
100 3 ms 3 ms
1 000 3s 30 ms
10 000 49 min. 300 ms
1000 000 95 lat 3s

Mimo ze algorytm szescienny „wystartowal” z wiekszym impetem,


drugi algorytm (liniowy), majacy zlozonosc o 2 rzedy nizsza
(O(n) w stosunku do O(n3)),
„dogonil go” i okazal sie szybszy dla n > 100 .

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 14

7
SZACOWANIE ZLOZONOSCI
OBLICZENIOWEJ
Metody szacowania zlozonosci algorytmów
Aby oszacowac zlozonosc algorytmu zlicza sie tzw. operacje
podstawowe dla badanego problemu lub klasy rozwazanych
algorytmów, tj. takie, które sa najczesciej wykonywane
(ignorujac pozostale operacje pomocnicze, takie jak
instrukcje inicjalizacji, instrukcje organizacji petli itp.).
Tabela 1 Przyklady operacji podstawowych dla typowych
problemów obliczeniowych
Lp. Problem Operacja Zalety zliczania operacji
1. Znalezienie x na liscie Porównanie x z pozycja na podstawowych:
nazwisk. liscie.
- Uniezale znienie sie od
2. Mnozenie dwóch macierzy Mnozenie dwóch macierzy rodzaju i liczby
liczb rzeczywistych. liczb typu real (lub mnozenie procesorów ;
i dodawanie). - Mozliwosc przewidywania
zachowania sie algorytmu
3. Porzadkowanie liczb. Porównanie dwóch liczb
dla róznych danych;
(lub porównanie i zamiana).
- Swoboda wyboru operacji
4. Wyznaczanie drogi Operacja na wskazniku listy. podstawowej;
najkrótszej w grafie zadanym
w postaci
Z.Tarapata, listyrównolegle,
Obliczenia sasiadów. wyklad nr 1 15

SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ


Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 4

Przyklad 4: Prosta petla

for (i=sum=0; i<n; i++) sum+=a[i];

Powyzsza petla powtarza sie n razy, podczas kazdego jej przebiegu


realizuje dwa przypisania: aktualizujace zmienna „sum” i zmiane wartosci
zmiennej „i”. Mamy zatem 2 n przypisan podczas calego wykonania petli;
jej asymptotyczna zl
zlozono
onosc
sc wynosi O(n
O( n).

Czy moz
mozemy zapisac
zapisac, ró wniezz Ω (n) ?
r ó wnie TAK

Zatem mozemy zapisac Θ(n).


Z.Tarapata, Obliczenia równolegle, wyklad nr 1 16

8
SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ
Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 5

Przyklad 5: Petla zagniezdzona

for (i=0; i<n; i++) {


for (j=1, sum=a[0]; j<=i; j++)
sum+=a[j]; }

Na samym poczatku zmiennej „i” nadawana jest wartosc poczatkowa. Petla


zewnetrzna powtarza sie n razy, a w kazdej jej iteracji wykonuje sie wewnetrzna
petla oraz instrukcja przypisania wartosci zmiennym „i”, „ j”, „ sum”. Petla
wewnetrzna wykonuje sie „i” razy dla kazdego i e {1,...,n-1}, a na kazda iteracje
przypadaja dwa przypisania:jedno dla „sum”, jedno dla „j”. Mamy zatem
1 + 3n + 2(1+2+...+n-1) = 1 + 3n + n (n-1) = O(n) + O(n2) = O(n2)
przypisan wykonywanych w calym programie. Jej asymptotyczna zl zl oz ono
onosc
sc wynosi
O(n2). Czy moz
mozemy zapisac wniezz Ω (n2 ), Θ(n2 )?
zapisac r ó wnie
TAK
Pe tle zagniez
zagnie z dz one maja
maja zwykle wie
wi eksz
kszaa zl oz ono
onosc
sc ni
nizz pojedyncze, jednak nie musi
tak byc
by c zawsze.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 17

SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ


Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 6

Analiza tych dwóch przypadk ów byla stosunkowo prosta poniewaz liczba


iteracji nie zalezala od wartosci elementów tablicy.
Wyznaczenie zlozonosci asymptotycznej jest trudniejsze jezeli liczba iteracji
nie jest zawsze jednakowa.
Przyklad 6: Znajdz najdluzsza podtablice zawierajaca
liczby uporzadkowane rosnaco.

for (i=0; len=1; i<n-1; i++) {


for (i1=i2=k=i; k<n-1 && a[k]<a[k+1]; k++,i2++);
if(len < i2-i1+1) len=i2-i1+1; }

=> Jesli liczby w tablicy sa uporzadkowane malejaco, to petla zewnetrzna


wykonuje sie n-1 razy, a w kazdym jej przebiegu petla wewnetrzna
wykona sie tylko raz. Zlozonosc algorytmu wynosi wi ec wtedy O(n).

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 18

9
SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ
Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 6, c.d.

Analiza tych dwóch przypadk ów byla stosunkowo prosta poniewaz liczba


iteracji nie zalezala od wartosci elementów tablicy.
Wyznaczenie zlozonosci asymptotycznej jest trudniejsze jezeli liczba iteracji
nie jest zawsze jednakowa.
Przyklad 6: Znajdz najdluzsza podtablice zawierajaca
liczby uporzadkowane rosnaco.

for (i=0; len=1; i<n-1; i++) {


for (i1=i2=k=i; k<n-1 && a[k]<a[k+1]; k++,i2++);
if(len < i2-i1+1) len=i2-i1+1; }

=> Jesli liczby w tablicy sa uporzadkowane rosnaco, to petla zewnetrzna


wykonuje sie n-1 razy, a w kazdym jej przebiegu petla wewnetrzna
wykona sie i razy dla i ∈{1,...,n-1}.
Zl ozonosc algorytmu wynosi wi ec wtedy O(n2 ).
Poniewazz zlo zono
Poniewa onosc
sc algorytmu jest mierzona dla przypadku
„ najgorszych danych”
danych” zatem zl
zlo zono sc algorytmu wynosi O(n2 ).
onosc
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 19

SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ


Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 6, c.d.

Analiza tych dwóch przypadk ów byla stosunkowo prosta poniewaz liczba


iteracji nie zalezala od wartosci elementów tablicy.
Wyznaczenie zlozonosci asymptotycznej jest trudniejsze jezeli liczba iteracji
nie jest zawsze jednakowa.
Przyklad 6: Znajdz najdluzsza podtablice zawierajaca
liczby uporzadkowane rosnaco.

for (i=0; len=1; i<n-1; i++) {


for (i1=i2=k=i; k<n-1 && a[k]<a[k+1]; k++,i2++);
if(len < i2-i1+1) len=i2-i1+1; }

=> Z reguly dane nie sa uporzadkowane i ocena zlozonosci algorytmu jest


rzecza nielatwa, ale bardzo istotna. Staramy sie wyznaczy zlozonosc
w „ przypadku optymistycznym”, „ przypadku pesymistycznym” oraz
„ przypadku srednim”. Czesto poslugujemy sie wtedy przyblizeniami
opartymi o notacje „ duze O, Ω i Θ”.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 20

10
SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ
Przykllady praktyczne mierzenia z lozono
Przyk onos
s ci obliczeniowej – Przyk lad 7

Przyklad 7: Przyklad dzialania algorytmu


Algorytm sortowania
Insertion-Sort(A) 5 2 4 6 1 3
1. for j:=2 to length[A] 2 5 4 6 1 3
2. do key:=A[j] 2 4 5 6 1 3
/* Wstaw A [i] w posortowany 2 4 5 6 1 3
ciag A[1..j-1].*/ 1 2 4 5 6 3
3. i:= j-1 1 2 3 4 5 6
4. while i>0 i A[i] > key
5. do A[i+1] := A[i]
6. i:= i-1
7. A[i+1] := key

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 21

SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ


Przyk lady praktyczne mierzenia zl
z lozono
onos
s ci obliczeniowej – Przyk lad 7, c.d.

Insertion-Sort(A)
koszt liczba wykonan
wykona n
1. for j:=2 to length[A] c1 n
2. do key:=A[i] c2 n-1
3. i:= j-1 c3 n-1
n
4. while i>0 i A[i] > key c4 ∑t j
j =2
n
5. do A[i+1] := A[i] c5
∑ (t j −1)
j =2

6. i:= i-1 c6 n
∑ (t j −1)
j =2
7. A[i+1] := key c7 n-1

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 22

11
SZACOWANIE ZLOZONOSCI OBLICZENIOWEJ
Przyk lady praktyczne mierzenia zl
z lozono
onos
s ci obliczeniowej – Przyk lad 7, c.d.

n n n
T ( n) = c1n + c2 ( n − 1) + c3 ( n − 1) + c4 ∑ t j + c5 ∑ (t j − 1) + c6 ∑ (t j − 1) + c7 ( n − 1)
j= 2 j =2 j= 2

n n(n + 1) n n(n − 1)
∑j= −1 ∑ ( j − 1) =
j= 2 2 j= 2 2

n(n + 1)  n( n − 1)   n( n − 1)  + c (n − 1) =
T (n ) = c1n + c2 ( n − 1) + c3 ( n − 1) + c4  − 1 + c5   + c6   7
 2   2   2 

c c c   c c c 
=  4 + 5 + 6 n 2 +  c1 + c2 + c3 + 4 − 5 − 6 + c 7 n − (c2 + c3 + c4 + c7 )
 2 2 2   2 2 2 

T ( n) = an 2 + bn + c = O( n 2 )
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 23

SPOSOBY BADANIA OPTYMALNOSCI


ALGORYTMÓW

n Istnieje pewna granica zwana wewnetrzna


zlozonoscia problemu (ang. inherent problem
complexity), tzn. minimalna ilosc pracy niezbednej
do wykonania w celu rozwiazania zadania, której
nie mozna przekroczyc, poprawiajac zlozonosc
algorytmu;

n Aby pokazac, ze algorytm jest optymalny ze


wzgleedu na zl
wzgl z lozono
onosc
sc najczesciej dowodzi sie, ze
istnieje pewne dolne oszacowanie liczby operacji
podstawowych potrzebnych do rozwiazania
problemu.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 24

12
SPOSOBY BADANIA OPTYMALNOSCI
ALGORYTMÓW

Aby zbadac, czy algorytm jest optymalny nalezy:

1. Zaprojektowac mozliwie najlepszy algorytm,


powiedzmy A. Nastepnie przeanalizowac algorytm
A, otrzymujac zlozonosc najgorszego przypadku W.

2. Dla pewnej funkcji F udowodnic twierdzenie


mówiace, ze dla dowolnego algorytmu w rozwaz
rozwazanej
klasie istnieja
istnieja dane rozmiaru n takie, ze algorytm
musi wykonac
wykonac przynajmniej F(n
F(n)) krok
krokóów.

3. Jesli funkcje W i F sa równe, to algorytm A jest


optymalny (dla najgorszego przypadku).

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 25

SPOSOBY BADANIA OPTYMALNOSCI


ALGORYTMÓW

Przyklad

Problem: Znajdowanie najwiekszej wsród n liczb.


Klasa algorytmów: Algorytmy, które porównuja
liczby i przepisuja je.
Operacja podstawowa: Porównanie dwóch
wielkosci.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 26

13
SPOSOBY BADANIA OPTYMALNOSCI
ALGORYTMÓW, PRZYKLAD C.D.
Algorytm_2
Oszacowanie dolne: Przypuscmy, ze nie
Dane: L, n, gdzie L jest tablica ma dwóch jednakowych liczb w L.
n-elementowa . Zalozenie takie jest dopuszczalne,
Wyniki: max, najwiekszy element poniewaz dolne oszacowanie w tym
szczególnym przypadku jest równiez
w L.
dolnym oszacowaniem w przypadku
begin ogólnym. Gdy mamy n róznych liczb, to
1. max:= L[1]; n-1 z nich nie sa najwiekszymi. Ale zeby
stwierdzi c, ze jakis element nie jest
2. for index:= 2 to n do maksymalny, trzeba go porównac z
3. if max < L[index] then przynajmniej jednym z pozostalych.
max:= L[index] Zatem n-1 elementów musi byc
wyeliminowanych droga porównania z
end; pozostalymi. Poniewaz w kazdym
porównaniu biora udzial tylko 2
elementy, wiec trzeba wykonac
Oszacowanie gó
g órne
rne: Przypuscmy, ze przynajmniej n-1 porównan. Zatem
liczby zapisane s a w tablicy L. Poró wnania s a F(n)=n-1 jest poszukiwanym dolnym
realizowane w linii 3, która jest wykonywana n-1 oszacowaniem i na tej podstawie
razy. Zatem n-1 jest g órna granica liczby wnioskujemy, ze algorytm_2 jest
porównan koniecznych do znalezienia optymalny.
maksimum w najgorszym przypadku danych.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 27

SPOSOBY BADANIA OPTYMALNOSCI


ALGORYTMÓW, PRZYKLAD

Przyklad
Problem: Dane sa dwie macierze A =  aij  B = bij 
rozmiaru n × n . Obliczyc macierz C = A × B.
Klasa algorytmów: Algorytmy wykonujace
dodawania, odejmowania, mnozenia i dzielenia na
elementach macierzy.
Operacja podstawowa: Mnozenie.
Oszacowanie górne: Jak wiadomo, zwykly algorytm
wykonuje n3 mnozen, zatem n3 jest oszacowaniem
z góry.
Oszacowanie dolne: Jak wiadomo, zlozonosc
pamieciowa wynosi 2n2 , wiec Ω n 2 mnozen jest ( )
niezbednych.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 28

14
SPOSOBY BADANIA OPTYMALNOSCI
ALGORYTMÓW, PRZYKLAD C.D.

n Wniosek: Nie ma mozliwosci stwierdzenia na tej


podstawie, czy algorytm klasyczny jest
optymalny, czy nie. Dlatego wlozono wiele
wysilku w poprawienie oszacowania dolnego, jak
dotad bezskutecznie. Z drugiej strony szuka sie
nowych, lepszych algorytmów.
n Obecnie najlepszy znany algorytm mnoz mnozenia
dwó
dw óch macierzy kwadratowych wykonuje okol
okolo
n 2,376 mnozzen.
mno
n Czy jest to algorytm optymalny? Nie wiadomo,
ciagle bowiem oszacowanie górne przewyzsza
oszacowanie dolne.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 29

PRZYKLAD POSTEPU, JAKI DOKONAL SIE


W DZIEDZINIE PROJEKTOWANIA ALGORYTM ÓW
BADAJACYCH PLANARNOSC GRAFU
Czas obliczen Rozmiar
dla analizowanego
Algorytm c = 10 ms grafu
n = 100 w przypadku
udostepniania
komputera na okres
Symbol Autor [rok] Zlozonosc minuty godziny
Kuratowski
A1
[1930] cn 6 325 lat 4 8
Goldstein
A2
[1963] cn 3 2.8 godzin 18 71
Lempel et al.
A3
[1967] cn 2 100 sekund 77 6 000
Hopcroft-
A4 Tarjan
cn log 2 n 7 sekund 643 24 673
[1971]
Hopcroft-
A5 Tarjan cn 1 sekunda 6 000 36 ⋅ 10 4
[1974]
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 30

15
PROBLEM DECYZYJNY
A PROBLEM OPTYMALIZACYJNY
Problem decyzyjny – taki, dla którego odpowiedz brzmi „tak” albo „nie”.
Problem optymalizacyjny – polega na wyznaczaniu takiego elementu
zbioru rozwiazan dopuszczalnych, dla którego funkcja celu osiaga
ekstremum na tym zbiorze.
Przyklad
Optymalizacyjny problem zaladunku mozna
sformulowac nastepujaco:
{
wyznaczyc x* ∈ S ⊂ Bn = x ∈ En : x j ∈ {0,1}, j = 1, n } Zwiazany z tym problemem problem decyzyjny
taki, ze
sformulujemy w postaci
(c, x ) = max (c, x ) = m ax ∑ c
n
*
j xj
x ∈S x∈S
j =1 b) czy istnieje x∈ Bn spelniajacy ograniczenia
gdzie
(c,x ) ≥ y, x ∈S
 n 
S =  x ∈ B n : ∑ a jx j ≤ d 
 j= 1 
oraz
c j - wartosc towaru typu j , j = 1, n ,
a j - objetosc towaru typu j , j = 1, n ,
d - pojemnosc srodka transportu.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 31

WIELOMIANOWA
TRANSFORMOWALNOSC
(SPROWADZALNOSC) PROBLEMÓW

Definicja
Problem decyzyjny Π 1 jest wielomianowo transformowalny
(sprowadzalny, redukowalny) do problemu decyzyjnego Π2
(co zapisujemy Π 1 α Π2 ) jesli dla dowolnego lancucha danych x
problemu Π 1 mozna w wielomianowym czasie (wielomian zalezy
od x ) zbudowac lancuch y danych problemu Π 2 taki, ze x jest
lancuchem danych konkretnego problemu Π 1 z odpowiedzia „tak”
wtedy i tylko wtedy, gdy y jest lancuchem danych konkretnego
problemu Π2 z odpowiedzia „tak”.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 32

16
KLASY ZLOZONOSCI OBLICZENIOWEJ
PROBLEMÓW
Definicja
Klasa P nazywamy klase wszystkich problemów decyzyjnych, których zlozonosc
obliczeniowa jest wielomianowa tzn. takich, które DTM rozwiazuje w czasie
ograniczonym od góry przez wielomian.

Definicja
Klasa NP nazywamy klase wszystkich problemów de cyzyjnych, które sa
rozwiazywalne w czasie wielomianowym przez NDTM.
lub równowaznie
Definicja P ⊂ NP
Mówimy, ze problem decyzyjny Π nalezy do NP jesli istnieje wielomian p(n) od
rozmiaru tego problemu oraz algorytm α (algorytm weryfikacji potwierdzenia)
takie, ze dla kazdego konkretnego problemu z ∈ D? z odpowiedzia „tak”
i lancuchem danych x(z) istnieje lancuch (potwierdzenie) c(x) symboli alfabetu
wejsciowego Σ taki, ze:
- c ( x( z ) ) ≤ p ( x (z )),
- algorytm α po otrzymaniu na wejsciu sekwencji x (z )# c(x (z )) (# oznacza koniec
danych i poczatek potwierdzenia) dochodzi do odpowiedzi „tak” po nie wiecej
niz p(x (z )) krokach.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 33

KLASY ZLOZONOSCI OBLICZENIOWEJ


PROBLEMÓW, PRZYKLAD 1
Przyklad
Klika k-elementowa: dla danego grafu G o zbiorze wierzcholków
V zbadac czy istnieje podgraf pelny o licznosci zbioru
wierzcholków równej k.
Dla rozwiazania tego zadania nalezaloby przejrzec  V 
k
podzbiorów zbioru V.
Nie jest znany algorytm wielomianowy dla tego zadania.
Istnieje natomiast dla konkretnego zadania z odpowiedzia „tak”
„potwierdzenie” w postaci kodu zbioru C elementów kliki o
licznosci k, które mozna zweryfikowac w czasie wielomianowym
przy pomocy pewnego algorytmu α sprawdzajacego:
- czy zbiór C ma licznosc k,
- czy podgraf zawierajacy wierzcholki ze zbioru C jest pelny.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 34

17
KLASY ZLOZONOSCI OBLICZENIOWEJ
PROBLEMÓW, PRZYKLAD 2
Przyklad
Zadanie komiwojazera: dla sieci o n = V wierzcholkach
i odleglosciach miedzy wierzcholkami zadanymi
calkowitoliczbowa macierza d = (dij )n x n zbadac czy istnieje cykl
Hamiltona o dlugosci mniejszej lub równej zadanej liczbie L
(calkowitej).
Dla konkretnego zadania z odpowiedzia „tak” wystarczajacym
potwierdzeniem bedzie kod cyklu Hamiltona spelniajacy
wymagana dlugosc.
Przy pomocy algorytmu wielomianowego α mozna sprawdzic czy:
- n, L, d = (d ij ) poprawne dane,
- kod przedstawia cykl Hamiltona,
- dlugosc cyklu Hamiltona jest mniejsza lub równa L.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 35

KLASY ZLOZONOSCI OBLICZENIOWEJ


PROBLEMÓW, PRZYKLAD 3

Przyklad
Problem SPELNIALNOSCI: czy istnieje wektor x ∈ B n , dla
którego formula alternatywno – koniunkcyjna jest równa 1.
Dla konkretnego zadania z odpowiedzia „tak” dobrym
potwierdzeniem jest wlasnie kod wektora x, dla którego ta
formula przyjmuje wartosc 1.
Algorytm α w czasie wielomianowym sprawdza czy:
- formula zawiera n zmiennych,
- wyrazenie jest w poprawnej formie,
- formula przyjmuje wartosc 1.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 36

18
KLASY ZLOZONOSCI OBLICZENIOWEJ
PROBLEMÓW, PROBLEMY NP-ZUPELNE
Wazna podklasa problemów w NP jest klasa problemów
NP – zupelnych, które maja miedzy innymi taka wlasnosc, ze jeesli
kktórrykoollwiieek zz nicch miiaalbbyy w wiielloommiiannow
wyy ((nna D DT
TMM) aalgoorryttm
m
rroozw i az an ia, t o
wi z n , to istni lb is tni alb y w iel om ia n
l ma w ag row y a lg or y tm d
dl k zdego
l a k az de g
pproobbllemu nnaalleezzacceegoo doo NNPP.

Definicja
Problem ? ∈ NP nazywamy NP – zupelnym jesli dla kazdego
? ′ ∈ NP zachodzi ? ′ ∝ ? .

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 37

KLASY ZLOZONOSCI OBLICZENIOWEJ


PROBLEMÓW, PROBLEMY NP-ZUPELNE
Twierdzenie (Cook, 1971)
Problem SPELNIALNOSCI jest NP – zupelny.

Dysponujac takim jednym problemem NP – zupelnym mozna


latwiej wykazac NP – zupelnosc innych problemów.

Przyklady problemów NP – zupelnych :


♦ klika k-elementowa,
♦ cykl (droga) Hamiltona,
♦ zadanie komiwojazera.
Znanych jest okolo kilku tysiecy problemów NP – zupelnych.

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 38

19
DOWODZENIE NP-ZUPELNOSCI
PROBLEMÓW
Glówna technika dowodzenia NP-zupelnosci problemów jest technika
ograniczania.
W celu wykazania, ze rozpatrywany problem ? 1 ∈ NP jest
NP-zupelny nalezy zgodnie z ta technika udowodnic, ze zawiera on w
sobie znany NP-zupelny problem Π2 jako przypadek szczególny
problemu Π 1 .
Przyklad (najdluzsza droga w grafie)
Dany jest graf G = (V, E ) i liczba naturalna k < V .
Problem Π 1 : czy graf G zawiera droge prosta (kazdy wierzcholek
tylko raz moze wystapic) zawierajaca nie mniej niz k galezi.
Przyjmujac k = V − 1 otrzymujemy jako przypadek szczególny
problem Π2 w postaci drogi Hamiltona, który jest NP-zupelny.
Zauwazmy ponadto, ze ? 1 ∈ NP gdyz sprawdzalnym wielomianowo
potwierdzeniem moze byc kod takiej drogi.
Zachodzi równiez ? 2 ∝ ? 1 co uzyskujemy ograniczajac problem Π 1 do
tych z ∈ D? 1 dla których k = V − 1.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 39

DOWODZENIE NP-ZUPELNOSCI
PROBLEMÓW, c.d.
Przyklad (konstrukcja niezawodnej sieci )
Dane sa dwie symetryczne macierze
d = (d ij )nxn - macierz odleglosci miedzy wierzcholkami,
r = (rij ) - macierz wielokrotnosci polaczen miedzy
nxn

wierzcholkami .
Problem Π1: czy istnieje siec zawi erajaca n-wierzcholków, w
której suma odleglosci jest nie wieksza od L, taka ze miedzy i-tym
oraz j-tym wierzcholkiem istnieje nie mniej niz rij rozlacznych
wierzcholkowo dróg.
Przyjmujac L = n, d ij = 1, rij = 2 dla wszystkich r ≠ j , jedynym grafem z n
wierzcholkami, w którym miedzy dwoma dowolnymi wierzcholkami
istnieja dwie nie majace wspólnych wierzcholków drogi, jest cykl z n
wierzcholkami. Zatem szczególny przypadek problemu Π1 jest problemem
Π2 sprowadzajacym sie do pytania o istnienie cyklu Hamiltona w sieci
n-wierzcholkowej z d ij = 1, rij = 2 . Problem Π2 jest NP-zupelny. Ponadto
? 1 ∈ NP oraz ? 2 ∝ ? 1.
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 40

20
DOWODZENIE NP-ZUPELNOSCI
PROBLEMÓW, c.d.
Wsród problemów NP-zupelnych mozemy zaobserwowac takie,
których szczególne przypadki staja sie problemami „latwymi”
i takie, które pozostaja „trudne” równiez dla szczególnych
przypadków.

1 0. Przypadki „latwe”
Przyklad
Maksymalna klika w grafie planarnym moze miec nie wiecej niz 4
wierzcholki. W takim szczególnym grafie mozna podac algorytm
wyznaczania kliki maksymalnej o zlozonosci O V 4 czyli ( )
„planarna klika” nalezy do P.
Do klasy P nalezy równiez zadanie tzw.”2-SPELNIALNOSCI”
tzn. zadanie, w którym kazdy czynnik zawiera tylko 2 literaly
(x i lub x i ) .
WNIOSEK: problemó problemów nie nalez nale zy formul
formulowa
owac c zbyt ogó
og ólnie, gdyz
gdyz wtedy jest
szansa, ze zadanie moz moze miec
mie c wielomianowy algorytm rozwia
rozwiazania, mimo
ze jego
Z.Tarapata, uog
uogó
Obliczenia ó lnienie
równolegle, wyklad nr 1nalez
nale zy do klasy NP-
NP - zupe
zupellnych. 41

OGÓLNY SCHEMAT ROZWIAZYWANIA


PROBLEM ÓW OPTYMALIZACYJNYCH
Problem optymalizacyjny X
wersja decyzyjna Xd

Zbuduj efektywny
Xd ∈ P? ↔ Xd ∈ NPC
NPC??
algorytm dla X

Zbuduj dla X algorytm


Xd ∈ PseudoP
PseudoP?? ↔ Xd ∈ NPC! ?
pseudowielomianowy

Wielomianowe algorytmy:
Tak
• przybli
przyblizzone Zadowalajaa nas przybliz
Zadowalaj przybli zenia?
• schematy aproksymacyjne Nie
Brak
Okre s l satysfakcjonuja
Okres satysfakcjonujaca
• Ma
Malle dane: szukanie wyczerpuja
wyczerpujace (branch
(branch & bound
bound)) restrykcjee zagadnienia X
restrykcj
• Heurystyki: tabu search
search,, algorytmy genetyczne, ...
Z.Tarapata, Obliczenia równolegle, wyklad nr 1 42

21
Dziekuje za uwage

Z.Tarapata, Obliczenia równolegle, wyklad nr 1 43

22

You might also like