• Nie Znaleziono Wyników

Struktury danych

N/A
N/A
Protected

Academic year: 2021

Share "Struktury danych"

Copied!
50
0
0

Pełen tekst

(1)

Struktury danych

i złożoność obliczeniowa Wykład 3

Prof. dr hab. inż. Jan Magott

(2)

Problemy „łatwe” i „trudne”

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

Problemy „trudne” to takie, których prawie na

pewno nie można tak rozwiązać.

(3)

W teorii złożoności obliczeniowej fundamentalnym pojęciem jest problem decyzyjny.

Problem decyzyjny Dane:

….

Pytanie:

Pytanie, na które odpowiedź brzmi „tak” lub

„nie”.

(4)
(5)
(6)
(7)
(8)

W praktyce ważna jest optymalizacja.

Teoria złożoności obliczeniowej jest zbudowana na pojęciu problemu decyzyjnego.

Twierdzenie

Z każdym problemem optymalizacyjnym można

związać odpowiadający mu problem decyzyjny.

(9)

Złożoność problemu decyzyjnego

a złożoność problemu optymalizacyjnego

Jeśli problem optymalizacyjny jest „łatwy”, to problem decyzyjny też jest „łatwy” .

Jeśli problem decyzyjny jest „trudny” (NP-zupełny),

to odpowiadający mu problem optymalizacyjny jest „trudny”.

Zatem:

W celu wykazania „łatwości” problemu decyzyjnego wystarczy wykazać łatwość odpowiadającego mu problemu optymalizacyjnego.

Dla wykazania „trudności” problemu optymalizacyjnego wystarczy wykazać trudność związanego z nim problemu decyzyjnego.

(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)

Przykłady problemów optymalizacyjnych

Problem programowania liniowego Problem plecakowy

Problem komiwojażera

(20)
(21)

Algorytmy rozwiązujące problem programowania liniowego

• Algorytm simplex (niewielomianowy)

• Algorytm Khachiana (wielomianowy) 1979

• Algorytm Karmarkara (wielomianowy) 1984

W praktyce, często dla tych samych danych, Algorytm Khachiana wykonywany jest dłużej niż algorytm simplex.

W praktyce, często algorytmy inspirowane algorytmem

Karmarkara mają podobną złożoność jak algorytm simplex.

(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)

ponadwielomianowym.

(31)

W praktyce korzystnie jest wyznaczyć rozmiar

problemu za pomocą jednego, dwu, rzadko kiedy

większej liczby parametrów określających liczbę

elementów zbioru istotnego dla danego problemu.

(32)

Złożoność czasowa a złożoność pamięciowa algorytmów.

Częsty konflikt między kierunkami minimalizacji

obu powyższych złożoności.

(33)

Pojęcia teorii złożoności obliczeniowej są formułowane za pomocą maszyn Turinga:

• deterministycznej,

• niedeterministycznej,

które są modelami formalnymi obliczeń.

(34)

Alan Turing (1912-1954)

Brytyjski matematyk, filozof i kryptolog.

Twórca modelu formalnego komputera zwanego maszyną Turinga.

„Ojciec informatyki”

Twórca testu sprawdzającego czy maszyna jest inteligentna.

Test Turinga

Arbiter rozmawia w języku naturalnym z bytem, o którym nie wie czy jest człowiekiem czy maszyną. Jeśli o bycie, który jest maszyną nie potrafi powiedzieć czy jest człowiekiem czy maszyną, to maszyna przeszła test.

(35)

Deterministyczna jednotaśmowa maszyna Turinga (DMT)

Sterowanie

Głowica

odczytująco-zapisująca

Taśma nieskończonej długości

-4 -3 -2 -1 0 1 2 3 4

(36)
(37)

Sterowanie

Głowica

odczytująco-zapisująca

Taśma nieskończonej długości

-4 -3 -2 -1 0 1 2 3 4

1 0 0 1

(38)
(39)
(40)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(41)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(42)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(43)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(44)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(45)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(46)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(47)

<s,s’,+1>

<1,1,+1>

<0,0,+1>

<1,1,+1>

<0,0,+1>

1 0 0 1

(48)

Sterowanie

-4 -3 -2 -1 0 1 2 3 4

(49)
(50)

Cytaty

Powiązane dokumenty

Dzięki podziałowi przestrzeni stanu na regiony i wyznaczeniu prawa sterowania obowiązującego w poszczególnych regionach, problem wyznaczenia sterowania sprowadza się do

Tym razem Bartek, aby uzyskać chwilę spokoju, przykazał jej (twierdząc, że jest w tym jakiś głębszy sens) umieścić w tabelce 21 × 10 liczby od 1 do 210 w taki sposób, aby

Skoro aktualna wartość każdej liczby to max(minimum, t[i]), więc suma aktualnych wartości wynosi minimum · pos (sumujemy pos najmniejszych liczb) plus suma k − pos

Ćw3 Podstawowe struktury danych: kolejki, listy, stosy, kopce 3 Ćw4 Struktury drzewiaste: BST, AVL, B-R, B-drzewo 5 Ćw5 Algorytmy sortowania np.. Insertion-,

Czas wykonania elementarnej operacji zależy liniowo od długości łańcucha danych kodujących liczby, a zatem od logarytmów liczb. Analiza teoretyczna z użyciem DMT prowadzona jest

(3) przestawiamy wskaźnik next w węźle wskazywanym przez pred (lub wskaźnik head gdy pred jest pusty) oraz wskaźnik prev w węźle wskazywanym przez succ (lub wskaźnik tail gdy

Problem należy do klasy złożoności czasowej NP, gdy istnieje NDTM rozwiązująca ten problem w czasie wielomianowym względem rozmiaru danych wejściowych.. Intuicja: problem

czyli takie drzewo binarne (prawie) peªne, w którym warto±¢ rodzica jest zawsze nie mniejsza (nie wi¦ksza) od obu potomków (w przypadku ele- mentu bn/2c i nieparzystej liczby