• Nie Znaleziono Wyników

Klasa NP i NP-trudność

N/A
N/A
Protected

Academic year: 2021

Share "Klasa NP i NP-trudność"

Copied!
59
0
0

Pełen tekst

(1)

Klasa NP i NP-trudność

Marcin Pilipczuk

Algorytmika @ Uniwersytet Warszawski

6 kwietnia 2020

(2)

W poprzednim odcinku

3-kolorowanie

zbiór niezależny

klika pokrycie wierzchołkowe 3-CNF-SAT

ścieżka Hamiltona

Powyższe redukcje wielomianowe 3-kolorowanie trudne, bo tak

Marcin Pilipczuk Klasa NP i NP-trudność 2/17

(3)

W poprzednim odcinku

3-kolorowanie

zbiór niezależny

klika pokrycie wierzchołkowe 3-CNF-SAT

ścieżka Hamiltona

(4)

Skąd prowadzą te strzałki?

Meta-twierdzenie Z każdego problemu

typu X

istnieje wielomianowa redukcja do spełnialności formuł 3-CNF-SAT / 3-kolorowania.

Chcemy meta-twierdzenie o redukcji.

Nie da rady dla każdego problemu.

To jak określić jakąś naturalną klasę problemów, dla których się da?

Marcin Pilipczuk Klasa NP i NP-trudność 3/17

(5)

Skąd prowadzą te strzałki?

Meta-twierdzenie Z każdego problemu

typu X

istnieje wielomianowa redukcja do spełnialności formuł 3-CNF-SAT / 3-kolorowania.

Chcemy meta-twierdzenie o redukcji.

Nie da rady dla każdego problemu.

To jak określić jakąś naturalną klasę problemów, dla których się da?

(6)

Skąd prowadzą te strzałki?

Meta-twierdzenie

Z każdego problemutypu X istnieje wielomianowa redukcja do spełnialności formuł 3-CNF-SAT / 3-kolorowania.

Chcemy meta-twierdzenie o redukcji.

Nie da rady dla każdego problemu.

To jak określić jakąś naturalną klasę problemów, dla których się da?

Marcin Pilipczuk Klasa NP i NP-trudność 3/17

(7)

Przykłady

3-kolorowanie

Wejście: graf nieskierowany G , n := |V (G )|

Wyjście: Czy istnieje 3-kolorowanie G , tj. funkcja

f : V (G ) → {red ,green,blue} taka, że dla każdej uv ∈ E (G ) mamy f (u) 6= f (v )?

Uogólniony hex

Wejście: Graf G , dwa wierzchołki s, t ∈ V (G ) pomalowane na niebiesko.

Zasady: Dwóch graczy na przemian koloruje po jednym wierzchołku na niebiesko i czerwono. Niebieski gracz wygrywa, jeśli połączy s i t, a czerwony, jeśli temu przeszkodzi.

Wyjście: Kto ma strategię wygrywającą?

(8)

Przykłady c.d.

3-kolorowanie 3-CNF-SAT zbiór niezależny klika

pokrycie wierzchołkowe ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

f : {x1, . . . , xn} → {>, ⊥}

A ⊆ V (G ), E (G [A]) = ∅ A ⊆ V (G ), E (G [A]) = A2 B ⊆ V (G ), E (G − B) = ∅ ścieżka s = v1, v2, . . . , vn= t

Wszędzie łatwo uzasadnić, że odpowiedź jest TAK. Ale niekoniecznie łatwo uzasadnić, że odpowiedź jest NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 5/17

(9)

Przykłady c.d.

3-kolorowanie 3-CNF-SAT zbiór niezależny klika

pokrycie wierzchołkowe ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

f : {x1, . . . , xn} → {>, ⊥}

A ⊆ V (G ), E (G [A]) = ∅ A ⊆ V (G ), E (G [A]) = A2 B ⊆ V (G ), E (G − B) = ∅ ścieżka s = v1, v2, . . . , vn= t

Wszędzie łatwo uzasadnić, że odpowiedź jest TAK.

Ale niekoniecznie łatwo uzasadnić, że odpowiedź jest NIE.

(10)

Przykłady c.d.

3-kolorowanie 3-CNF-SAT zbiór niezależny klika

pokrycie wierzchołkowe ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

f : {x1, . . . , xn} → {>, ⊥}

A ⊆ V (G ), E (G [A]) = ∅ A ⊆ V (G ), E (G [A]) = A2 B ⊆ V (G ), E (G − B) = ∅ ścieżka s = v1, v2, . . . , vn= t

Wszędzie łatwo uzasadnić, że odpowiedź jest TAK.

Ale niekoniecznie łatwo uzasadnić, że odpowiedź jest NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 5/17

(11)

Co formalizujemy?

Chcemy objąć deficją:

Różne problemy: grafowe, tekstowe, logiczne, . . . .

Co to n, wielkość instancji.

Co to jest dowód, że odpowiedź jest TAK. Co to znaczy, że łatwo uzasadnić.

(12)

Co formalizujemy?

Chcemy objąć deficją:

Różne problemy: grafowe, tekstowe, logiczne, . . . . Co to n, wielkość instancji.

Co to jest dowód, że odpowiedź jest TAK. Co to znaczy, że łatwo uzasadnić.

Marcin Pilipczuk Klasa NP i NP-trudność 6/17

(13)

Co formalizujemy?

Chcemy objąć deficją:

Różne problemy: grafowe, tekstowe, logiczne, . . . . Co to n, wielkość instancji.

Co to jest dowód, że odpowiedź jest TAK.

Co to znaczy, że łatwo uzasadnić.

(14)

Co formalizujemy?

Chcemy objąć deficją:

Różne problemy: grafowe, tekstowe, logiczne, . . . . Co to n, wielkość instancji.

Co to jest dowód, że odpowiedź jest TAK.

Co to znaczy, że łatwo uzasadnić.

Marcin Pilipczuk Klasa NP i NP-trudność 6/17

(15)

Formalizujemy problem

Egzemplarz to słowo x ∈ {0, 1}.

Wielkość egzemplarza, |x |, to liczba znaków słowa x . Język to podzbiór L ⊆ {0, 1}.

x ∈ L ⇔ x ma odpowiedź TAK. x /∈ L ⇔ x ma odpowiedź NIE.

Algorytm A rozstrzyga L w czasie f jeśli dla każdego x ∈ {0, 1}, wykonanie A(x ) poprawnie stwierdza czy x ∈ L w czasie nie większym niż f (|x |).

Język L jest rozstrzygalny w czasie wielomianowym jeśli istnieje algorytm A i wielomian f , że A rozstrzyga L w czasie f .

(16)

Formalizujemy problem

Egzemplarz to słowo x ∈ {0, 1}.

Wielkość egzemplarza, |x |, to liczba znaków słowa x .

Język to podzbiór L ⊆ {0, 1}. x ∈ L ⇔ x ma odpowiedź TAK. x /∈ L ⇔ x ma odpowiedź NIE.

Algorytm A rozstrzyga L w czasie f jeśli dla każdego x ∈ {0, 1}, wykonanie A(x ) poprawnie stwierdza czy x ∈ L w czasie nie większym niż f (|x |).

Język L jest rozstrzygalny w czasie wielomianowym jeśli istnieje algorytm A i wielomian f , że A rozstrzyga L w czasie f .

Marcin Pilipczuk Klasa NP i NP-trudność 7/17

(17)

Formalizujemy problem

Egzemplarz to słowo x ∈ {0, 1}.

Wielkość egzemplarza, |x |, to liczba znaków słowa x . Język to podzbiór L ⊆ {0, 1}.

x ∈ L ⇔ x ma odpowiedź TAK.

x /∈ L ⇔ x ma odpowiedź NIE.

Algorytm A rozstrzyga L w czasie f jeśli dla każdego x ∈ {0, 1}, wykonanie A(x ) poprawnie stwierdza czy x ∈ L w czasie nie większym niż f (|x |).

Język L jest rozstrzygalny w czasie wielomianowym jeśli istnieje algorytm A i wielomian f , że A rozstrzyga L w czasie f .

(18)

Formalizujemy problem

Egzemplarz to słowo x ∈ {0, 1}.

Wielkość egzemplarza, |x |, to liczba znaków słowa x . Język to podzbiór L ⊆ {0, 1}.

x ∈ L ⇔ x ma odpowiedź TAK.

x /∈ L ⇔ x ma odpowiedź NIE.

Algorytm A rozstrzyga L w czasie f jeśli dla każdego x ∈ {0, 1}, wykonanie A(x ) poprawnie stwierdza czy x ∈ L w czasie nie większym niż f (|x |).

Język L jest rozstrzygalny w czasie wielomianowym jeśli istnieje algorytm A i wielomian f , że A rozstrzyga L w czasie f .

Marcin Pilipczuk Klasa NP i NP-trudność 7/17

(19)

Formalizujemy problem

Egzemplarz to słowo x ∈ {0, 1}.

Wielkość egzemplarza, |x |, to liczba znaków słowa x . Język to podzbiór L ⊆ {0, 1}.

x ∈ L ⇔ x ma odpowiedź TAK.

x /∈ L ⇔ x ma odpowiedź NIE.

Algorytm A rozstrzyga L w czasie f jeśli dla każdego x ∈ {0, 1}, wykonanie A(x ) poprawnie stwierdza czy x ∈ L w czasie nie większym niż f (|x |).

Język L jest rozstrzygalny w czasie wielomianowym jeśli istnieje algorytm A i wielomian f , że A rozstrzyga L w czasie f .

(20)

3-kolorowanie formalnie

A jak to się ma do 3-kolorowania?

Wejście to graf. Trzeba ustalić jakieś kodowanie grafów w {0, 1}. x ∈ L ⇔ x koduje graf, który jest 3-kolorowalny.

Słowa, które nie odpowiadają kodowaniom grafów, mają odpowiedź NIE. Powinno być trywialne.

Różne kodowania dają różne wielkości |x |! Listy sąsiadów: |x | = O(n + m log n). Macierz sąsiedztwa: |x | = O(n2).

Nie ma znaczenia dla pytania, czy 3-kolorowanie jest rozwiązywalny w czasie wielomianowym.

Na potrzeby trudności:

Grafy kodujemy jako macierze sąsiedztwa.

Formuły to listy klauzul, a klauzula to lista literałów.

Marcin Pilipczuk Klasa NP i NP-trudność 8/17

(21)

3-kolorowanie formalnie

A jak to się ma do 3-kolorowania?

Wejście to graf. Trzeba ustalić jakieś kodowanie grafów w {0, 1}. x ∈ L ⇔ x koduje graf, który jest 3-kolorowalny.

Słowa, które nie odpowiadają kodowaniom grafów, mają odpowiedź NIE. Powinno być trywialne.

Różne kodowania dają różne wielkości |x |!

Listy sąsiadów: |x | = O(n + m log n).

Macierz sąsiedztwa: |x | = O(n2).

Nie ma znaczenia dla pytania, czy 3-kolorowanie jest rozwiązywalny w czasie wielomianowym.

Na potrzeby trudności:

Grafy kodujemy jako macierze sąsiedztwa.

Formuły to listy klauzul, a klauzula to lista literałów.

(22)

3-kolorowanie formalnie

A jak to się ma do 3-kolorowania?

Wejście to graf. Trzeba ustalić jakieś kodowanie grafów w {0, 1}. x ∈ L ⇔ x koduje graf, który jest 3-kolorowalny.

Słowa, które nie odpowiadają kodowaniom grafów, mają odpowiedź NIE. Powinno być trywialne.

Różne kodowania dają różne wielkości |x |!

Listy sąsiadów: |x | = O(n + m log n).

Macierz sąsiedztwa: |x | = O(n2).

Nie ma znaczenia dla pytania, czy 3-kolorowanie jest rozwiązywalny w czasie wielomianowym.

Na potrzeby trudności:

Grafy kodujemy jako macierze sąsiedztwa.

Formuły to listy klauzul, a klauzula to lista literałów.

Marcin Pilipczuk Klasa NP i NP-trudność 8/17

(23)

3-kolorowanie formalnie

A jak to się ma do 3-kolorowania?

Wejście to graf. Trzeba ustalić jakieś kodowanie grafów w {0, 1}. x ∈ L ⇔ x koduje graf, który jest 3-kolorowalny.

Słowa, które nie odpowiadają kodowaniom grafów, mają odpowiedź NIE. Powinno być trywialne.

Różne kodowania dają różne wielkości |x |!

Listy sąsiadów: |x | = O(n + m log n).

Macierz sąsiedztwa: |x | = O(n2).

Nie ma znaczenia dla pytania, czy 3-kolorowanie jest rozwiązywalny w czasie wielomianowym.

Na potrzeby trudności:

Grafy kodujemy jako macierze sąsiedztwa.

(24)

Redukcja wielomianowa

Redukcja wielomianowa

Redukcja wielomianowa między językami L1i L2 to algorytm A dla którego istnieje wielomian f taki, że, mając na wejściu słowo x ∈ {0, 1}, oblicza słowo A(x ) takie, że:

x ∈ L1⇔ A(x) ∈ L2;

|A(x)| ¬ f (|x|).

Algorytm A(x ) działa w czasie co najwyżej f (|x |).

L1to problem, który chce rozwiązać Bob, a L2to problem, w który umie Alicja.

Powyższa definicja obejmuje jedno pytanie do Alicji. I której odpowiedź jest odpowiedzią na problem Boba.

Dodaje do zeszłego tygodnia: trzeba rozkodować instancję Boba i zakodować instancję dla Alicji.

Marcin Pilipczuk Klasa NP i NP-trudność 9/17

(25)

Redukcja wielomianowa

Redukcja wielomianowa

Redukcja wielomianowa między językami L1i L2 to algorytm A dla którego istnieje wielomian f taki, że, mając na wejściu słowo x ∈ {0, 1}, oblicza słowo A(x ) takie, że:

x ∈ L1⇔ A(x) ∈ L2;

|A(x)| ¬ f (|x|).

Algorytm A(x ) działa w czasie co najwyżej f (|x |).

L1to problem, który chce rozwiązać Bob, a L2to problem, w który umie Alicja.

Powyższa definicja obejmuje jedno pytanie do Alicji.

I której odpowiedź jest odpowiedzią na problem Boba.

Dodaje do zeszłego tygodnia: trzeba rozkodować instancję Boba i zakodować instancję dla Alicji.

(26)

Redukcja wielomianowa

Redukcja wielomianowa

Redukcja wielomianowa między językami L1i L2 to algorytm A dla którego istnieje wielomian f taki, że, mając na wejściu słowo x ∈ {0, 1}, oblicza słowo A(x ) takie, że:

x ∈ L1⇔ A(x) ∈ L2;

|A(x)| ¬ f (|x|).

Algorytm A(x ) działa w czasie co najwyżej f (|x |).

L1to problem, który chce rozwiązać Bob, a L2to problem, w który umie Alicja.

Powyższa definicja obejmuje jedno pytanie do Alicji.

I której odpowiedź jest odpowiedzią na problem Boba.

Dodaje do zeszłego tygodnia: trzeba rozkodować instancję Boba i zakodować instancję dla Alicji.

Marcin Pilipczuk Klasa NP i NP-trudność 9/17

(27)

Redukcja wielomianowa

Redukcja wielomianowa

Redukcja wielomianowa między językami L1i L2 to algorytm A dla którego istnieje wielomian f taki, że, mając na wejściu słowo x ∈ {0, 1}, oblicza słowo A(x ) takie, że:

x ∈ L1⇔ A(x) ∈ L2;

|A(x)| ¬ f (|x|).

Algorytm A(x ) działa w czasie co najwyżej f (|x |).

L1to problem, który chce rozwiązać Bob, a L2to problem, w który umie Alicja.

Powyższa definicja obejmuje jedno pytanie do Alicji.

I której odpowiedź jest odpowiedzią na problem Boba.

(28)

Świadkowie: przykłady

3-kolorowanie 3-CNF-SAT zbiór niezależny klika

pokrycie wierzchołkowe ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

f : {x1, . . . , xn} → {>, ⊥}

A ⊆ V (G ), E (G [A]) = ∅ A ⊆ V (G ), E (G [A]) = A2 B ⊆ V (G ), E (G − B) = ∅ ścieżka s = v1, v2, . . . , vn= t

Wszędzie łatwo uzasadnić, że odpowiedź jest TAK.

Ale niekoniecznie łatwo uzasadnić, że odpowiedź jest NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 10/17

(29)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

(30)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(31)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że

dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

(32)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(33)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że

B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

(34)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(35)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L,

i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

(36)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1},

B(x, y ) mówi NIE.

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(37)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

(38)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

3-kolorowanie f : V (G ) → {red ,green,blue}

B sprawdza, czy f to 3-kolorowanie

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(39)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

3-CNF-SAT f : {x1, . . . , xn} → {>, ⊥}

(40)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

zbiór niezależny A ⊆ V (G ), E (G [A]) = ∅ B sprawdza, czy G [A] niezależny

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(41)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

klika A ⊆ V (G ), E (G [A]) = A2

(42)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

pokrycie wierzchołkowe B ⊆ V (G ), E (G − B) = ∅ B sprawdza, czy G − B niezależny

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(43)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

ścieżka Hamiltona ścieżka s = v1, v2, . . . , vn= t

(44)

Świadkowie

Definiujemy klasę NP języków.

Intuicja: te języki, dla których łatwo uzasadnić, że odpowiedź jest tak.

Język L jest w NP jeśli:

Istnieje wielomianowy algorytm B i wielomian f takie, że dla każdego TAK-egzemplarza x ∈ L,

istnieje y ∈ {0, 1}długości co najwyżej f (|x |) taki, że B(x, y ) mówi TAK;

a dla każdego NIE-egzemplarza x /∈ L, i dla każdego świadka y ∈ {0, 1}, B(x, y ) mówi NIE.

doskonałe skojarzenie M ⊆ E (G )

B sprawdza, czy M to skojarzenie wielkości |V (G )|/2

Marcin Pilipczuk Klasa NP i NP-trudność 11/17

(45)

Klasy złożoności P i NP

L ∈ P ⇔ istnieje algorytm wielomianowy rozstrzygający L.

L ∈ NP ⇔ istnieje wielomianowy algorytm weryfikujący dla L.

Twierdzenie P ⊆ NP

Dowód.

Niech B(x , y ) = A(x ).

Czyli olewamy świadka, rozstrzygamy czy x ∈ L i raportujemy. Dla każdego x ∈ L, y =  to dobry świadek.

doskonałe skojarzenie świadek pusty

B sprawdza, czy G ma doskonałe skojarzenie

(46)

Klasy złożoności P i NP

L ∈ P ⇔ istnieje algorytm wielomianowy rozstrzygający L.

L ∈ NP ⇔ istnieje wielomianowy algorytm weryfikujący dla L.

Twierdzenie P ⊆ NP

Dowód.

Niech B(x , y ) = A(x ).

Czyli olewamy świadka, rozstrzygamy czy x ∈ L i raportujemy. Dla każdego x ∈ L, y =  to dobry świadek.

doskonałe skojarzenie świadek pusty

B sprawdza, czy G ma doskonałe skojarzenie

Marcin Pilipczuk Klasa NP i NP-trudność 12/17

(47)

Klasy złożoności P i NP

L ∈ P ⇔ istnieje algorytm wielomianowy rozstrzygający L.

L ∈ NP ⇔ istnieje wielomianowy algorytm weryfikujący dla L.

Twierdzenie P ⊆ NP

Dowód.

Niech B(x , y ) = A(x ).

Czyli olewamy świadka, rozstrzygamy czy x ∈ L i raportujemy.

Dla każdego x ∈ L, y =  to dobry świadek.

doskonałe skojarzenie świadek pusty

B sprawdza, czy G ma doskonałe skojarzenie

(48)

Klasy złożoności P i NP

L ∈ P ⇔ istnieje algorytm wielomianowy rozstrzygający L.

L ∈ NP ⇔ istnieje wielomianowy algorytm weryfikujący dla L.

Twierdzenie P ⊆ NP

Dowód.

Niech B(x , y ) = A(x ).

Czyli olewamy świadka, rozstrzygamy czy x ∈ L i raportujemy.

Dla każdego x ∈ L, y =  to dobry świadek.

doskonałe skojarzenie świadek pusty

B sprawdza, czy G ma doskonałe skojarzenie

Marcin Pilipczuk Klasa NP i NP-trudność 12/17

(49)

Klasy złożoności P i NP

L ∈ P ⇔ istnieje algorytm wielomianowy rozstrzygający L.

L ∈ NP ⇔ istnieje wielomianowy algorytm weryfikujący dla L.

Twierdzenie P ⊆ NP

Dowód.

Niech B(x , y ) = A(x ).

Czyli olewamy świadka, rozstrzygamy czy x ∈ L i raportujemy.

Dla każdego x ∈ L, y =  to dobry świadek.

doskonałe skojarzenie świadek pusty

B sprawdza, czy G ma doskonałe

(50)

Świadkowie: przykłady

3-kolorowanie

3-CNF-SAT

zbiór niezależny

klika

pokrycie wierzchołkowe

ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

B sprawdza, czy f to 3-kolorowanie f : {x1, . . . , xn} → {>, ⊥}

B sprawdza spełnienie klauzul A ⊆ V (G ), E (G [A]) = ∅ B sprawdza, czy G [A] niezależny A ⊆ V (G ), E (G [A]) = A2 B sprawdza, czy G [A] to klika B ⊆ V (G ), E (G − B) = ∅ B sprawdza, czy G − B niezależny ścieżka s = v1, v2, . . . , vn= t B sprawdza, czy to ścieżka Hamiltona

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona ∈ NP.

Marcin Pilipczuk Klasa NP i NP-trudność 13/17

(51)

Świadkowie: przykłady

3-kolorowanie

3-CNF-SAT

zbiór niezależny

klika

pokrycie wierzchołkowe

ścieżka Hamiltona

f : V (G ) → {red ,green,blue}

B sprawdza, czy f to 3-kolorowanie f : {x1, . . . , xn} → {>, ⊥}

B sprawdza spełnienie klauzul A ⊆ V (G ), E (G [A]) = ∅ B sprawdza, czy G [A] niezależny A ⊆ V (G ), E (G [A]) = A2 B sprawdza, czy G [A] to klika B ⊆ V (G ), E (G − B) = ∅ B sprawdza, czy G − B niezależny ścieżka s = v1, v2, . . . , vn= t B sprawdza, czy to ścieżka Hamiltona

(52)

Twierdzenie Cooka-Levina

3-kolorowanie

zbiór niezależny

klika pokrycie wierzchołkowe 3-CNF-SAT

ścieżka Hamiltona

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do (3-)CNF-SAT.

Marcin Pilipczuk Klasa NP i NP-trudność 14/17

(53)

Twierdzenie Cooka-Levina

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do 3-CNF-SAT.

L jest NP-trudny jeśli dla każdego L0∈ NP istnieje redukcja wielomianowa z L0 do L.

L jest NP-zupełny jeśli L jest NP-trudny i L ∈ NP.

Wniosek

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona są NP-zupełne.

By udowodnić NP-trudność L, wystarczy udowodnić redukcję z L0 do L dla dowolnego NP-trudnego L0.

Reszta wykładu: Dowód twierdzenia Cooka-Levina.

(54)

Twierdzenie Cooka-Levina

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do 3-CNF-SAT.

L jest NP-trudny jeśli dla każdego L0∈ NP istnieje redukcja wielomianowa z L0 do L.

L jest NP-zupełny jeśli L jest NP-trudny i L ∈ NP.

Wniosek

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona są NP-zupełne.

By udowodnić NP-trudność L, wystarczy udowodnić redukcję z L0 do L dla dowolnego NP-trudnego L0.

Reszta wykładu: Dowód twierdzenia Cooka-Levina.

Marcin Pilipczuk Klasa NP i NP-trudność 15/17

(55)

Twierdzenie Cooka-Levina

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do 3-CNF-SAT.

L jest NP-trudny jeśli dla każdego L0∈ NP istnieje redukcja wielomianowa z L0 do L.

L jest NP-zupełny jeśli L jest NP-trudny i L ∈ NP.

Wniosek

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona są NP-zupełne.

By udowodnić NP-trudność L, wystarczy udowodnić redukcję z L0 do L dla dowolnego NP-trudnego L0.

Reszta wykładu: Dowód twierdzenia Cooka-Levina.

(56)

Twierdzenie Cooka-Levina

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do 3-CNF-SAT.

L jest NP-trudny jeśli dla każdego L0∈ NP istnieje redukcja wielomianowa z L0 do L.

L jest NP-zupełny jeśli L jest NP-trudny i L ∈ NP.

Wniosek

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona są NP-zupełne.

By udowodnić NP-trudność L, wystarczy udowodnić redukcję z L0 do L dla dowolnego NP-trudnego L0.

Reszta wykładu: Dowód twierdzenia Cooka-Levina.

Marcin Pilipczuk Klasa NP i NP-trudność 15/17

(57)

Twierdzenie Cooka-Levina

Twierdzenie (Cook-Levin, 1971-1973)

Dla każdego języka L ∈ NP, istnieje redukcja wielomianowa z L do 3-CNF-SAT.

L jest NP-trudny jeśli dla każdego L0∈ NP istnieje redukcja wielomianowa z L0 do L.

L jest NP-zupełny jeśli L jest NP-trudny i L ∈ NP.

Wniosek

3-kolorowanie, 3-CNF-SAT, zbiór niezależny, klika, pokrycie wierzchołkowe, ścieżka Hamiltona są NP-zupełne.

By udowodnić NP-trudność L, wystarczy udowodnić redukcję z L0 do L

(58)

Dowód twierdzenia Cooka-Levina

na marginesie

Marcin Pilipczuk Klasa NP i NP-trudność 16/17

(59)

Podsumowanie

3-kolorowanie

zbiór niezależny

klika pokrycie wierzchołkowe 3-CNF-SAT

ścieżka Hamiltona

Cytaty

Powiązane dokumenty

void write(char[] cbuf, int off, int len) – metoda, która czyta z tablicy cbuf od indeksu off liczbę len znaków i zapisuje do pliku 5) Część łańcucha można zapisać

Twierdzenie powyższe w (trochę bardziej zaawansowanym pojęciowo) języku algebry orzeka, że ciało liczb zespolonych jest algebraicznie domknięte, tzn., że każdy wielomian stopnia n,

Je±li pewna pochodna funkcji zeruje si¦ na pewnym przedziale, to wszystkie jej pochodne wy»szych rz¦dów równie» s¡ stale równe zero na tym przedziale... St¡d wynika, »e R

Uczeń zdolny potrzebuje indywidualizacji w procesie nauczania. WaŜnym zadaniem nauczyciela jest tworzenie programów, projektów i propozycji ciekawych zajęć,

(wtorek) na adres e- mail: edyta.glowacka30@wp.pl. W temacie wpisując: Imię i Nazwisko

[r]

[r]

Dziś chcę Wam pokazać jak napisać litery z kreską lub ogonkiem czyli np.. Jak napisać literki: ą, ę, ś, ź, ł, ż,