• Nie Znaleziono Wyników

Efektywność Procedur Obliczeniowych

N/A
N/A
Protected

Academic year: 2021

Share "Efektywność Procedur Obliczeniowych"

Copied!
62
0
0

Pełen tekst

(1)

Efektywność Procedur

Obliczeniowych

wykład 3

(2)

Teoria złożoności obliczeniowej

Kodowanie danych

Alfabet, słowo, język

Reguła kodowania

Podział i rodzaje problemów

decyzyjne

optymalizacyjne

Deterministyczna Maszyna Turinga (?)

(3)

Kodowanie danych (1)

Definicja 1

Alfabetem nazywamy dowolny skończony zbiór symboli.

Alfabet oznaczamy symbolem ∑.

(4)

Kodowanie danych (2)

Przykłady:

 ∑ = {a, b, c, …, #}

, gdzie a, b, c, … są symbolami alfabetu, a # jest separatorem.

(5)

Kodowanie danych (3)

Przykłady:

∑ = {a, b, c, …, #}, gdzie a, b, c, … są symbolami alfabetu, a # jest separatorem.

 ∑ = {0, 1, …, 9, #} – alfabet dziesiętny

(6)

Kodowanie danych (4)

Przykłady:

∑ = {a, b, c, …, #}, gdzie a, b, c, … są symbolami alfabetu, a # jest separatorem.

∑ = {0, 1, …, 9, #} – alfabet dziesiętny

 ∑ = {0, 1, #} – alfabet binarny

(7)

Kodowanie danych (5)

Przykłady:

∑ = {a, b, c, …, #}, gdzie a, b, c, … są symbolami alfabetu, a # jest separatorem.

∑ = {0, 1, …, 9, #} – alfabet dziesiętny

∑ = {0, 1, #} – alfabet binarny

 ∑ = {1, #} – alfabet jedynkowy

(8)

Kodowanie danych (6)

Definicja 2

Słowem alfabetu ∑ nazywamy

każdy skończony ciąg symboli

alfabetu ∑ \{#}.

(9)

Kodowanie danych (7)

Przykłady:

 małpa, klowa, kora, uil, kjsdhjweoo

(10)

Kodowanie danych (8)

Przykłady:

małpa, klowa, kora, uil, kjsdhjwefncfoo

 0, 123, 345, 8948756, 5745784570

słowa dziesiętne

(11)

Kodowanie danych (9)

Przykłady:

małpa, klowa, kora, uil, kjsdhjwefncfoo

0, 123, 345, 8948756, 5745784570

 0, 1, 01, 11, 10, 1010, 001010010010

słowa binarne

(12)

Kodowanie danych (10)

Przykłady:

małpa, klowa, kora, uil, kjsdhjwefncfoo

0, 123, 345, 8948756, 5745784570

0, 1, 01, 11, 10, 1010, 001010010010

 1, 11, 111, 1111, 11111111111

(słowa… ?)

(13)

Kodowanie danych (11)

Definicja 3

Językiem L alfabetu ∑ nazywamy skończony ciąg słów danego

alfabetu oddzielonych

separatorami #.

(14)

Kodowanie danych (12)

Przykłady:

 dom # klowy#pje#koroniggg#ew

język ?

(15)

Kodowanie danych (13)

Przykłady:

dom#klowy#pje#koroniggg#ew

 4#54#456#467567567#54#98675

język dziesiętny

(16)

Kodowanie danych (14)

Przykłady:

dom#klowy#pje#koroniggg#ew

4#54#456#467567567#54#98675

 1#01#110#10101110#0#1101#01

język binarny

(17)

Kodowanie danych (15)

Przykłady:

dom#klowy#pje#koroniggg#ew

4#54#456#467567567#54#98675

1#01#110#10101110#0#1101#01

 1#11#111#1#111

język… (?)

(18)

Kodowanie danych (16)

Definicja 4

Słownikiem alfabetu ∑

nazywamy zbiór wszystkich słów

alfabetu ∑ \{#}.

(19)

Kodowanie danych (17)

Przykłady:

 a, b, c,…, aa, ab, …, zzzzzzzzz

słownik (?)

(20)

Kodowanie danych (18)

Przykłady:

a, b, c,…, aa, ab, …, zzzzzzzzz

 0, 1, 2,…, 11, 12, …, 9999999

słownik dziesiętny

(21)

Kodowanie danych (19)

Przykłady:

a, b, c,…, aa, ab, …, zzzzzzzzz

0, 1, 2,…, 11, 12, …, 9999999

 0, 1, 01,…, 1000, 1001, …, 1111111111

słownik dwójkowy

(22)

Kodowanie danych (20)

Przykłady:

a, b, c,…, aa, ab, …, zzzzzzzzz

0, 1, 2,…, 11, 12, …, 9999999

0, 1, 01,…, 1000, 1001, …, 1111111111

 1, 11, 111,…, 1111111, …, 11111111111

słownik jedynkowy

(23)

Reguła kodowania danych (1)

1. Każdą daną problemu reprezentujemy jednym słowem języka L alfabetu ∑

2. Kolejność danych musi być określona 3. Kolejne dane oddzielone są

separatorami #

4. Dane o równych wartościach

kodowane są tym samym słowem

(24)

Reguła kodowania danych (2)

Twierdzenie 1

Dane każdej instancji I problemu Π można przedstawić za pomocą pewnego języka L danego

alfabetu ∑ korzystając z reguły

kodowania.

(25)

Reguła kodowania danych (3)

Przykłady:

 3#7#2 – kodowanie dziesiętne

 11#111#01

kodowanie binarne

 111#1111111#11

kodowanie jedynkowe

Jakiego problemu dotyczą? Jak może wyglądać instancja tego problemu?

(26)

Reguła kodowania danych (4)

Przykład – problem podziału

X = {x1, …, xi, …, xn} = {5, 12, 14, 23, 9}

B = 63, 5𝑖=1 𝑥𝑖 = 2B Pytanie:

Czy istnieje podzbiór X1 X takie, że 𝑥 𝑥𝑖

𝑖∈𝑋1 = B

(27)

Reguła kodowania danych (5)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie dziesiętne

………

Długość łańcucha kodującego wynosi N10(I) = ………

(28)

Reguła kodowania danych (6)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie dziesiętne 5#12#14#23#9#64

Długość łańcucha kodującego wynosi N10(I) = ………

(29)

Reguła kodowania danych (7)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie dziesiętne 5#12#14#23#9#64

Długość łańcucha kodującego wynosi N10(I) = 15

(30)

Reguła kodowania danych (5)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie binarne

………

Długość łańcucha kodującego wynosi N2(I) = ………

(31)

Reguła kodowania danych (6)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie binarne

101#1100#1110#10111#1001#100000

Długość łańcucha kodującego wynosi N2(I) = ………

(32)

Reguła kodowania danych (7)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie binarne

101#1100#1110#10111#1001#100000

Długość łańcucha kodującego wynosi N2(I) = 31

(33)

Reguła kodowania danych (5)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie jedynkowe

………

Długość łańcucha kodującego wynosi N1(I) = ………

(34)

Reguła kodowania danych (6)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie jedynkowe

11111#111111111111#...#1111111111111…111111 Długość łańcucha kodującego wynosi N1(I) = ………

(35)

Reguła kodowania danych (7)

Kodowanie instancji I x1#x2#x3#x4#x5#B

Kodowanie jedynkowe

11111#111111111111#...#1111111111111…111111 Długość łańcucha kodującego wynosi N2(I) = 132

(36)

Kodowanie danych – przykład (1)

Przykład – problem podziału (raz jeszcze)

X = {x1, …, xi, …, xn} – zbiór n elementów xi  N+,

gdzie N+ = {1, 2, …}

𝑥𝑖

5𝑖=1 = 2B

Pytanie:

Czy istnieje podzbiór X1 X takie, że 𝑥 𝑥𝑖

𝑖∈𝑋1 = B

(37)

Kodowanie danych – przykład (2)

Kodowanie instancji I x1#x2#...xn#B

N10(I)=logx1+1+logx2+1+…+logxn+1+logB =

logxi+n+logB

𝑛𝑖=1 (n+1)∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {logxi+1,

logB}

= O(𝑛 ∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {logxi+1, logB})

x - najmniejsza liczba całkowita nie mniejsza niż x

(38)

Kodowanie danych – przykład (3)

Kodowanie instancji I x1#x2#...xn#B

N2(I)= log2x1+1+log2x2+1+…+log2xn+1+log2B =

log2xi+n+log2B

𝑛𝑖=1 (n +1)∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {log2xi+1,

log2B}

= O(𝑛 ∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {log2xi+1, log2B})

(39)

Kodowanie danych – przykład (4)

Kodowanie instancji I x1#x2#...xn#B

N1(I)=x1+1+x2+1+…+xn+1+B = xi+n+B

𝑛𝑖=1  (n+1)∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {xi+1, B}

= O(𝑛 ∙ 𝑚𝑎𝑥𝑗𝜖 1,𝑛 {xi, B})

(40)

„Rozsądna” reguła kodowania (1)

„Rozsądna” reguła kodowania nie powoduje wykładniczego wzrostu rozmiaru danych

wejściowych kodowanej instancji w stosunku do innych reguł kodowania.

Czyli…

(41)

„Rozsądna” reguła kodowania (2)

Niech dwie reguły kodowania instancji I dające łańcuchy kodowania o długościach Nn(I) oraz Nm(I) spełniają relację:

Nn(I)≥ 𝑘𝑁𝑚(𝐼) dla pewnej stałej k>1.

Wtedy (pierwsza) Nn(I) jest „nierozsądna”, ponieważ powoduje wykładniczy wzrost

rozmiaru danych wejściowych.

(42)

„Rozsądna” reguła kodowania (3)

Jeżeli oznaczymy przez MAX(I)największą wartość w danej instancji, to dla systemu o podstawie b otrzymamy:

Nb(I)=O(nlogb(MAX(I)))

(43)

„Rozsądna” reguła kodowania (4)

Oznaczmy przez N1(I) długość łańcucha

kodowania jedynkowego oraz Nb(I) długość

łańcucha kodowania w systemie o podstawie b≥2 N1(I)=O(nMAX(I))=O(n𝑏𝑙𝑜𝑔𝑏𝑀𝐴𝑋(𝐼))

Nb(I)=O(nlogb(MAX(I))) Z powyższego wynika, że…

(44)

„Rozsądna” reguła kodowania (5)

… kodowanie jedynkowe daje wykładniczy wzrost rozmiaru problemu w stosunku do kodowania w systemie o podstawie b≥2.

Zatem, odrzucamy kodowanie jedynkowe danych wejściowych ze względu na jego nieefektywność – zgodnie z „rozsądną” regułą kodowania.

(45)

Reguła kodowania danych (pwt)

1. Każdą daną problemu reprezentujemy jednym słowem języka L alfabetu ∑

2. Kolejność danych musi być określona 3. Kolejne dane oddzielone są

separatorami #

4. Dane o równych wartościach

kodowane są tym samym słowem

(46)

„Rozsądna” reguła kodowania (pwt)

Niech dwie reguły kodowania instancji I dające łańcuchy kodowania o długościach Nn(I) oraz Nm(I) spełniają relację:

Nn(I)≥ 𝑘𝑁𝑚(𝐼) dla pewnej stałej k>1.

Wtedy (pierwsza) Nn(I) jest „nierozsądna”, ponieważ powoduje wykładniczy wzrost

rozmiaru danych wejściowych.

(47)

Rodzaje i podział problemów (1)

Czy dana liczba naturalna n jest liczbą pierwszą ? Czy istnieje podzbiór X1 X takie, że 𝑥 𝑥𝑖

𝑖∈𝑋1 = B ? Jaka jest najkrótsza droga w TSP ?

Jakich odpowiedzi można udzielić na ww. postawione pytania?

Co należy zrobić, aby odpowiedzieć na ww. pytania?

(48)

Rodzaje i podział problemów (2)

Problem, w którym mamy za zadanie znaleźć ekstremum funkcji nazywamy problemem

optymalizacyjnym.

Problem, w którym mamy za zadanie udzielić odpowiedzi „tak” lub „nie”, nazywamy

problemem decyzyjnym.

(49)

Rodzaje i podział problemów (3)

Teoria złożoności obliczeniowej odnosi się bezpośrednio do problemów decyzyjnych, a pośrednio do problemów optymalizacyjnych.

jak?

(50)

Rodzaje i podział problemów (4)

Twierdzenie 2

Z każdym problemem

optymalizacyjnym można

związać odpowiadający mu

problem decyzyjny.

(51)

Rodzaje i podział problemów (5)

Uwaga do Twierdzenia 2

Twierdzenie odwrotne nie jest

prawdziwe !!!

(52)

Rodzaje i podział problemów (6)

Przykłady problemów decyzyjnych:

Problem podziału

Problem spełnialności formuł logicznych (SAT) Przykłady problemów optymalizacyjnych:

Problem plecakowy

Problem komiwojażera (TSP)

(53)

Problemy „łatwe” i „trudne” (1)

Problemy „łatwe” to problemy rozwiązywalne w czasie wielomianowym.

Problemy „trudne” to problemy, których prawie na pewno nie można tak rozwiązać.

a wracając do Twierdzenia 2…

(54)

Problemy „łatwe” i „trudne” (2)

Twierdzenie 2

Z każdym problemem optymalizacyjnym można związać odpowiadający mu problem decyzyjny.

Jeżeli mamy parę problemów Po i Pd, to

jeżeli Pd jest „łatwy”, to Po również jest „łatwy”

Jeżeli Pd jest „trudny”, to Po również jest „trudny”

(55)

Problemy „łatwe” i „trudne” (3)

Dany jest zbiór n elementów N={1,…,n}. Dla każdego elementu jJ określony jest jego

rozmiar aj>0 oraz wartość wj>0. Dodatkowo dana jest pojemność plecaka B>0.

Znaleźć podzbiór X ⊆ N taki, że 𝑎𝑗 ≤ 𝐵

𝑗∈𝑋 oraz 𝑗∈𝑋 𝑤𝑗 → 𝑚𝑎𝑥

Problem plecakowy – wersja… (?)

(56)

Problemy „łatwe” i „trudne” (4)

Dany jest zbiór n elementów N={1,…,n}. Dla każdego elementu jJ określony jest jego

rozmiar aj>0 oraz wartość wj>0. Dodatkowo

dana jest pojemność plecaka B>0 oraz stałą y≥0.

Czy istnieje podzbiór X ⊆ N taki, że 𝑎𝑗 ≤ 𝐵

𝑗∈𝑋 oraz 𝑗∈𝑋 𝑤𝑗 ≤ 𝑦?

Problem plecakowy – wersja… (?)

(57)

Problemy „łatwe” i „trudne” (5)

Jeżeli mamy problem maksymalizacji maxxXf(x), to odpowiadająca mu wersja decyzyjna wygląda następująco:

Czy istnieje x*X takie, że f(x*)y ?

Jeżeli mamy problem minimalizacji minxXf(x), to odpowiadająca mu wersja decyzyjna wygląda następująco:

Czy istnieje x*X takie, że f(x*)≤y ?

(58)

Złożoność obliczeniowa (1)

Funkcją czasowej złożoności obliczeniowej algorytmu A rozwiązującego problem  jest funkcja przyporządkowująca każdej wartości

rozmiaru N(I) instancji ID maksymalną liczbą elementarnych operacji komputera potrzebną do rozwiązania instancji o tym samym rozmiarze za pomocą algorytmu A.

(59)

Złożoność obliczeniowa (2)

Algorytmem wielomianowym nazywamy algorytm, którego złożoność obliczeniowa jest O(p(k)),

gdzie p jest pewnym wielomianem, a k rozmiarem rozwiązywanej instancji.

Każdy algorytm, którego złożoność nie może być tak ograniczona nazywamy algorytmem

wykładniczym.

(60)

Złożoność obliczeniowa (3)

W praktyce korzystnie jest wyznaczyć rozmiar problemu za pomocą jednego lub dwu

parametrów określających liczbę elementów zbioru istotnego dla danego problemu.

(61)

Złożoność obliczeniowa (4)

Pojęcia teorii złożoności obliczeniowej

formułowane są za pomocą maszyn Turinga, deterministycznej i niedeterministycznej,

które są modelami formalnymi obliczeń.

(62)

Złożoność obliczeniowa (5)

Ale to już opowieść na kolejne spotkanie…

Cytaty

Powiązane dokumenty

Zaczął się tymczasem okres kończenia grantów z pierwszych konkursów i do obowiązków Sekcji należy ocena produktów.. Ona to właśnie na ostatnim posiedzeniu Sekcji

Określenie niewłaściwej grupy klasyfikacyjnej wobec skazanego odbywającego zastępczą karę pozbawienia wolności za nie uiszczoną grzywnę samoistną jest sprzeczne

Close ties between anthropogenic activities (e.g. agriculture, energy production and road transport) and nitrous oxide emissions make the research of its circulation significant

Deze groep kan ook gebruikt worden om een zwak reflecterende rand te definiëren waar geen golven het domein binnenkomen, in dat geval (type 0) moet alleen de verwachtte frequentie

Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry

Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry

Jeśli dla pewnego problemu NP–zupełnego istnieje wielomianowy algorytm rozwiązania, to wszystkie problemy NP–zupełne są rozwiązywalne w czasie wielomianowym. Klasa

Systematycznie zbierane w Polsce dane zdrowotne dotyczą liczby pierwszorazo- wych hospitalizacji z powodu psychoz alkoholowych, uzależnienia od alkoholu i liczby zgonów