Złożoność obliczeniowa Jakub Michaliszyn 26 kwietnia 2017
Są problemy rozstrzygalne i nierozstrzygalne
Są problemy rozstrzygalne i nierozstrzygalne Jak rozwiązywać te, które są rozstrzygalne?
Są problemy rozstrzygalne i nierozstrzygalne Jak rozwiązywać te, które są rozstrzygalne? Załóżmy, że mamy algorytm działający w czasie 2 2n cykli procesora- jak szybko on policzy coś dla mojego nazwiska?
Są problemy rozstrzygalne i nierozstrzygalne Jak rozwiązywać te, które są rozstrzygalne? Załóżmy, że mamy algorytm działający w czasie 2 2n cykli procesora- jak szybko on policzy coś dla mojego nazwiska? 2 2 Michaliszyn = 2 2048
Są problemy rozstrzygalne i nierozstrzygalne Jak rozwiązywać te, które są rozstrzygalne? Załóżmy, że mamy algorytm działający w czasie 2 2n cykli procesora- jak szybko on policzy coś dla mojego nazwiska? 2 2 Michaliszyn = 2 2048
Wiemy, jak liczyć złożoność algorytmu. Ale jak liczyć złożoność problemu?
Czemu redukcje REK były fajne?
Czemu redukcje REK były fajne? Zwrotne, przechodnie stanowiły praporządek.
Czemu redukcje REK były fajne? Zwrotne, przechodnie stanowiły praporządek. Dzięki nim, mogliśmy rozważać klasy problemów. Było ich kilka.
Wymyślmy redukcję dla złożoności obliczeniowej.
Wymyślmy redukcję dla złożoności obliczeniowej. Przypomnienie: A REK B wtedy i tylko wtedy, gdy istnieje dobra funkcja f taka, że f (x) B wtedy i tylko wtedy, gdy x A.
A P B wtedy i tylko wtedy, gdy istnieje obliczalna w czasie wielomianowym funkcja f taka, że f (x) B wtedy i tylko wtedy, gdy x A.
A P B wtedy i tylko wtedy, gdy istnieje obliczalna w czasie wielomianowym funkcja f taka, że f (x) B wtedy i tylko wtedy, gdy x A. P jest zwrotna i przechodnia
Olbrzymi świat, wiele ciekawych, otwartych problemów...
3SAT P 3COL
3SAT Zmienne boolowskie: p, q, r...
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana.
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów.
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów. Formuła w CNF: koniunkcja klauzul.
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów. Formuła w CNF: koniunkcja klauzul. Formuła w 3CNF: koniunkcja klauzul zawierający dokładnie trzy literały.
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów. Formuła w CNF: koniunkcja klauzul. Formuła w 3CNF: koniunkcja klauzul zawierający dokładnie trzy literały. 3SAT: czy dana formuła w 3CNF jest spełnialna?
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów. Formuła w CNF: koniunkcja klauzul. Formuła w 3CNF: koniunkcja klauzul zawierający dokładnie trzy literały. 3SAT: czy dana formuła w 3CNF jest spełnialna? Jak trudny jest 3SAT?
3SAT Zmienne boolowskie: p, q, r... Literały: zmienna lub zmienna zanegowana. Klauzula: alternatywa literałów. Formuła w CNF: koniunkcja klauzul. Formuła w 3CNF: koniunkcja klauzul zawierający dokładnie trzy literały. 3SAT: czy dana formuła w 3CNF jest spełnialna? Jak trudny jest 3SAT? O(1.439 n )
3COL Wejście: graf nieskierowany.
3COL Wejście: graf nieskierowany. Pytanie: czy można pokolorować jego wierzchołki tak, by każdy miał kolor czerwony, niebieski lub zielony, ale żadna krawędź nie łączyła dwóch wierzchołków tego samego koloru?
3SAT P 3COL
3COL P 3SAT
Kim są mieszkańcy naszego nowego wspaniałego świata? P
Kim są mieszkańcy naszego nowego wspaniałego świata? P NP
Kim są mieszkańcy naszego nowego wspaniałego świata? P NP PSPACE (=NPSPACE)
Kim są mieszkańcy naszego nowego wspaniałego świata? P NP PSPACE (=NPSPACE) EXPTIME
Kim są mieszkańcy naszego nowego wspaniałego świata? P NP PSPACE (=NPSPACE) EXPTIME NEXPTIME
Kim są mieszkańcy naszego nowego wspaniałego świata? P NP PSPACE (=NPSPACE) EXPTIME NEXPTIME EXPSPACE (generalnie tragedia)
3SAT jest NP-zupełny
Sat Solvery1
Jak wybrać właściwy? Różne możliwości Różne licencje Konkursy
DPLL (m.in. Chaff, GRASP, Glusoce) sat_solve() if preprocess() = CONFLICT then return UNSAT; while TRUE do if not decide-next-branch() then return SAT; while deduce() = CONFLICT do blevel := analyze-conflict(); if blevel=0 then return UNSAT; backtrack(blevel); done; done;
Jak reprezentuje się wejście? c Example CNF format c typ problemu zmienne klauzule p cnf 4 3 1 3-4 0-3 0 3 0
Stochastic local search algorithms, WalkSAT sat_solve(n) s := initial_valuation(); repeat n times if s satisfies the formula return SAT; s := flip(s); done; return UNSAT; done;
Demonstracja