Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(n k ) rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(k n.

Podobne prezentacje


Prezentacja na temat: "NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(n k ) rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(k n."— Zapis prezentacji:

1 NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(n k ) rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(k n )) nierozwiązywalne NP-zupełne (status nieznany; rozwiązywalne, ale nie wiadomo, czy w czasie wielomianowym)

2 Problemy abstrakcyjne Problem abstrakcyjny Q - relacja dwuargumentowa na zbiorze I egzemplarzy problemy i zbiorze S rozwiązań problemu. Problem optymalizacyjny - pewną wielkość trzeba zminimalizować albo zmaksymalizować. Problem decyzyjny - funkcja odwzorowująca zbiór egzemplarzy problemu I w zbiór rozwiązań {0,1} - rozwiązanie stanowi odpowiedź tak/nie.

3 Podejście oparte na teorii języków formalnych Alfabet  - skończony zbiór symboli; język L nad  - dowolny zbiór słów złożonych z symboli alfabetu . Na przykład:  = {0,1}, L = {10, 11, 101, 111, 1011, 1101, 10001,...} Tu L - język binarnych reprezentacji liczb pierwszych. Język złożony z wszystkich słów nad alfabetem  oznacza się przez  *. Algorytm A akceptuje słowo x  {0,1} *, jeśli oblicza A(x)=1. Algorytm A odrzuca słowo x, jeśli A(x)=0. Język akceptowany przez algorytm A to zbiór L = {x  {0,1} * : A(x)=1}. Język jest rozstrzygalny przez algorytm A, jeśli każdy ciąg binarny jest albo akseptowany, albo odrzucany przez A. Język jest rozstrzygalny w czasie wielomianowym za pomocą algorytmu A, jeśli dla dowolnego słowa x  {0,1} * długości n algorytm rozstrzyga przynależność x do L w czasie O(n k ).

4 Złożoność i weryfikacja Klasa złożoności P: P = {L  {0,1} * : istnieje algorytm A rozstrzygający o L w czasie wielomianowym} Algorytm weryfikacji: algorytm o dwóch parametrach - wejściowy ciąg x i świadectwo y. Język weryfikowany przez algorytm A to: L = {x  {0,1} * : istnieje y  {0,1} * takie, że A(x, y) = 1} Klasa złożoności NP: L należy do NP, jeśli istnieje algorytm A L = {x  {0,1} * : istnieje takie świadectwo y, gdzie |y|=O(|x| c ), że A(x,y) = 1}

5 Redukowalność Język L 1 jest redukowalny w czasie wielomianowym do języka L 2 ( L 1  P L 2 ), jeśli istnieje obliczalna w czasie wielomianowym funkcja f: {0,1} *  {0,1} * taka, że dla każdego x  {0,1} * : x  L 1 wtedy i tylko wtedy, gdy f(x)  L 2 {0,1} * L1L1 L2L2 f

6 NP-zupełność Język L  {0, 1} * jest NP-zupełny (NPC), jeśli 1. L  NP oraz 2. L’  P L dla każdego L’  NP Jeśli język L spełnia własność (2), ale niekoniecznie (1), to L jest NP- trudny. Najprawdopodobniej zależność między P, NP i NPC wygląda następujące NP NPC P

7 Czy P = NP? Twierdzenie Jeśli jakikolwiek problem NP-zupełny jest rozwiązywalny w czasie wielomianowym, to P = NP. Jeśli jakikolwiek problem w NP nie jest rozwiązywalny w czasie wielomianowym, to żaden problem NP- zupełny nie jest rozwiązywalny w czasie wielomianowym.

8 Przykłady problemów NP- zupełnych Spełnialność układów logicznych Spełnialność formuł logicznych Problem kliki w grafie Problem pokrycia wierzchołkowego Problem sumy podzbioru Problem cyklu Hamiltona Problem komiwojażera

9 Przykład algorytmu aproksymacyjnego Problem komiwojażera z nierównością trójkąta Approx-TSP-Tour(G, c) 1 wybierz wierzchołek r  V[G] na „korzeń” 2 zbuduj minimalne drzewo rozpinające T dla G o korzeniu r 3 niech L będzie listą wierzchołków drzewa T w kolejności preorder 4 return cykl Hamiltona H odwiedzający wierzchołki w takiej kolejności jak w L


Pobierz ppt "NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(n k ) rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(k n."

Podobne prezentacje


Reklamy Google