4. Âîïðîñ
Âîïðîñ
Âñå çíàþò, ÷òî
• Ïîëèíîìèàëüíûå àëãîðèòìû ýôôåêòèâíû;
• Íåèçâåñòíî ýôôåêòèâíîãî àëãîðèòìà ðàçëîæåíèÿ
íàòóðàëüíîãî ÷èñëà íà ìíîæèòåëè.
Ðàññìîòðèì ñëåäóþùèé àëãîðèòì ðàçëîæåíèÿ ÷èñëà n íà
ìíîæèòåëè:
√
• Ïåðåáèðàåì âñå 2 ≤ k ≤ n;
• Åñëè n äåëèòñÿ íà k , òî n = k · k .
n
√
Ñëîæíîñòü àëãîðèòìà íå ïðåâîñõîäèò n · n ≤ n2 , ò.å.
ïîëèíîìèàëüíà îò n.
 ÷åì ïðîáëåìà?
4 / 41
5. Îòâåò
Îòâåò
Ñëîæíîñòü àëãîðèòìà èçìåðÿåòñÿ êàê ôóíêöèÿ îò äëèíû
çàïèñè âõîäíûõ äàííûõ. ×èñëî n çàïèñûâàåòñÿ l = log10 n
çíàêàìè. n2 = 102 log10 n = 102l ýêñïîíåíòà îò l .
Îïðåäåëåíèå
Ñëîæíîñòü àëãîðèòìà â õóäøåì ñëó÷àå, êàê ôóíêöèÿ îò äëèíû
âõîäà n ýòî ìàêñèìóì âðåìåíè ðàáîòû ïî âñåì âõîäàì
äëèíû n.
Ñëîæíîñòü àëãîðèòìîâ îáû÷íî èçìåðÿþò àñèìïòîòè÷åñêè:
• Îïåðàöèè èñïîëíÿþòñÿ ðàçëè÷íîå âðåìÿ è òî÷íîé
êîíñòàíòû íèêòî íå çíàåò
Õîðîøèé ëè àëãîðèòì, åñëè åãî ñëîæíîñòü n + C ?
• Äà, îí ëèíåéíûé!
• À åñëè C îïåðàöèé âûïîëíÿåòñÿ 1000 ëåò?
5 / 41
6. O , o , Ω, Θ
Îáîçíà÷åíèÿ
Ôóíêöèè f , g : N → R+
• f (n) = O(g (n)), åñëè ∃c 0∃n0 ∀n n0 , f (n) cg (n);
f (n)
• f (n) = o(g (n)), åñëè lim = 0;
n→∞ g (n)
• f (n) = Ω(g (n)), åñëè ∃c 0∃n0 ∀n n0 , f (n) cg (n);
• f (n) = Θ(g (n)), åñëè
∃c1 , c2 0∃n0 ∀n n0 , c1 g (n) f (n) c2 g (n);
f (n) = O(g (n))
f (n) = Θ(g (n)) ⇐⇒
g (n) = O(f (n))
6 / 41
7. Ïîëåçíî çíàòü
• f (n), g (n) ìíîãî÷ëåíû, deg f = deg g =⇒ f = Θ(g );
• f (n), g (n) ìíîãî÷ëåíû, deg f deg g =⇒ f = o(g );
• log2 n = o(nk );
• log2 n = Θ(loga n) = Θ( êîëè÷åñòâî öèôð â ÷èñëå n);
• nk = o(2n );
• nk = o(nlog n ).
7 / 41
9. Òåîðåìà î ðåêóððåíòíûõ îöåíêàõ
Òåîðåìà
d, n=1
T (n) = n
aT ( ) + Θ(nα ), n 1
b
1 Åñëè α logb a, òî T (n) = Θ(nlogb a );
2 Åñëè α = logb a, òî T (n) = Θ(nlogb a log n);
3 Åñëè α logb a, òî T (n) = Θ(nα ).
Ïðèìåðû
1 T (n) = 9T ( n
3 ) + n: log3 9 = 2, T (n) = Θ(n2 );
2 T (n) = 2T ( n
2 ) + cn: log2 2 = 1, T (n) = Θ(n log n);
3 3
3 T (n) = 2T ( n
2 ) + cn 2 : log2 2 = 1, T (n) = Θ(n 2 ).
9 / 41
10. Èäåÿ äîêàçàòåëüñòâà
Äëÿ ïðîñòîòû ñ÷èòàåì, ÷òî n = b k , T (n) = aT ( b ) + cnα .
n
n α = a(aT ( n ) + c( n )α ) + cnα
T (n) = aT ( b ) + cn b2 b
= c(n α + a nα + a2 nα + · · · + ak nα )
b α b 2α b kα
= cnα (1 + ( ba ) + ( ba )2 + · · · + ( ba )k )
α α α
1 α logb a ⇐⇒ a b α ⇐⇒ ba 1. α
T (n) = Θ(nα ( ba )k ) = Θ(ak ) = Θ(alogb n ) = Θ(alogb a·loga n ) =
α
Θ(nlogb a );
2 α = logb a ⇐⇒ a = b α ⇐⇒ ba = 1.
α
T (n) = Θ(nα k) = Θ(nα logb n) = Θ(nlogb a log n);
3 α logb a ⇐⇒ a b α ⇐⇒ a
bα 1.
T (n) = Θ(nα ).
10 / 41
23. Ýëåìåíòû òåîðèè âû÷èñëèìîñòè
• Ìàøèíó Òüþðèíãà ìîæíî çàïèñàòü: àëôàâèò, ñîñòîÿíèÿ,
ïðàâèëà... Êàæäîé ÌÒ ñîîòâåòñòâóåò ñòðî÷êà â íåêîòîðîì
àëôàâèòå.
• Ìàøèí Òüþðèíãà ñ÷åòíîå ÷èñëî.
• Óíèâåðñàëüíàÿ ìàøèíà Òüþðèíãà. Ñóùåñòâóåò òàêàÿ
ìàøèíà Òüþðèíãà U , êîòîðàÿ ïî çàïèñè ìàøèíû
Òüþðèíãà M è âõîäó x ìîäåëèðóåò ïîâåäåíèå ìàøèíû M
íà âõîäå x . Ïðè ýòîì ñëîæíîñòíûå ïàðàìåòðû ìàøèíû U
íå áîëåå, ÷åì â ïîëèíîì îò çàïèñè M è |x| õóæå.
23 / 41
24. Ðàçðåøèìûå è ïåðå÷èñëèìûå ÿçûêè
Σ àëôàâèò, L ⊂ Σ∗ ÿçûê.
ßçûê L íàçûâàåòñÿ àëãîðèòìè÷åñêè ðàçðåøèìûì, åñëè
ñóùåñòâóåò òàêàÿ ìàøèíà Òüþðèíãà M , ÷òî
x ∈ L ⇐⇒ M(x) îñòàíàâëèâàåòñÿ â ñîñòîÿíèè qyes
x ∈ L ⇐⇒ M(x) îñòàíàâëèâàåòñÿ â ñîñòîÿíèè qno
ßçûê L íàçûâàåòñÿ ïåðå÷èñëèìûì, åñëè ñóùåñòâóåò òàêàÿ
ìàøèíà Òüþðèíãà M , ÷òî
x ∈ L ⇐⇒ M(x) îñòàíàâëèâàåòñÿ â ñîñòîÿíèè qyes
x ∈ L ⇐⇒ M(x) íå îñòàíàâëèâàåòñÿ
24 / 41
25. Ïðîñòåéøèå ñâîéñòâà
Ëåììà 1
Ëþáîé ðàçðåøèìûé ÿçûê ÿâëÿåòñÿ ïåðå÷èñëèìûì.
Äîñòàòî÷íî ñîñòîÿíèå qno çàìåíèòü íà q∞ è äîáàâèòü ïðàâèëà
(q∞ , ∗) → (q∞ , ∗, →)
Ëåììà 2
ßçûê L ïåðå÷èñëèì ⇐⇒ ñóùåñòâóåò ÌÒ M , êîòîðàÿ,
ðàáîòàÿ íà ïóñòîì âõîäå, ðàíî èëè ïîçäíî íàïå÷àòàåò ëþáîé
ýëåìåíò ÿçûêà L áåç ïîâòîðåíèé. (Ìàøèíà M ìîæåò ðàáîòàòü
áåñêîíå÷íî äîëãî).
⇐ Ìàøèíà M áóäåò æäàòü, ïîêà M íàïå÷àòàåò ñëîâî x .
⇒ M ìîäåëèðóåò M : 1 øàã íà ïåðâîì âõîäå, 2 øàãà íà
ïåðâîì, 2 øàãà íà âòîðîì, 3 øàãà íà ïåðâîì, âòîðîì, òðåòüåì,
4 øàãà...
25 / 41
27. Ïðèìåð íåïåðå÷èñëèìîãî ÿçûêà
• Âñå çàïèñè ìàøèí Òüþðèíãà ìîæíî ïåðåíóìåðîâàòü ñ
ïîìîùüþ àëãîðèòìà.
• Çàïèñü n îáîçíà÷àåò ÌÒ ñ íîìåðîì n.
• Ðàññìîòðèì ÿçûê
L = {n| n íå îñòàíàâëèâàåòñÿ íà âõîäå n}
• Ïóñòü L ïåðå÷èñëèì àëãîðèòìîì ñ íîìåðîì k .
• Åñëè k ∈ L, òî k íå îñòàíàâëèâàåòñÿ íà k =⇒ k
íå ïåðå÷èñëÿåò L.
• Åñëè k ∈ L, òî k îñòàíàâëèâàåòñÿ íà k =⇒ k íå
ïåðå÷èñëÿåò L.
• Ïðîòèâîðå÷èå. Çíà÷èò L íå ïåðå÷èñëÿåòñÿ íèêàêèì
àëãîðèòìîì.
• L àëãîðèòìè÷åñêè íåðàçðåøèì.
27 / 41
28. Ïðèìåð ïåðå÷èñëèìîãî, íî íå
ðàçðåøèìîãî ÿçûêà
• L = {n| n îñòàíàâëèâàåòñÿ íà âõîäå n};
• L íåðàçðåøèì, òàê êàê èíà÷å è ÿçûê L áûë áû
ðàçðåøèìûì;
• L ïåðå÷èñëèì: ìîäåëèðóåì ìàøèíó n íà âõîäå n è
æäåì, ïîêà îíà îñòàíîâèòñÿ.
28 / 41
29. Êîììåíòàðèé
• Çàäà÷à îñòàíîâêè ÌÒ: ïî ÌÒ è åå âõîäó îïðåäåëèòü,
îñòàíîâèòñÿ îíà èëè íåò. Ýòà çàäà÷à àëãîðèòìè÷åñêè
íåðàçðåøèìà;
• Ìåòîä äîêàçàòåëüñòâà: äèàãîíàëèçàöèÿ;
• Âñå ðåçóëüòàòû îá àëãîðèòìè÷åñêîé íåðàçðåøèìîñòè
èñïîëüçóþò íåðàçðåøèìîñòü çàäà÷è îñòàíîâêè ÌÒ.
Âåëèêàÿ òåîðåìà Ôåðìà
Åñëè áû çàäà÷à îñòàíîâêè áûëà áû ðàçðåøèìà, òî ìîæíî áûëî
áû äîêàçàòü Âåëèêóþ òåîðåìó Ôåðìà òàê:
1 Ìàøèíà M íà ïóñòîì âõîäå ïåðåáèðàåò âñå
x, y , z, n ∈ N, n 2 è îñòàíàâëèâàåòñÿ, åñëè x n + y n = z n .
2 Óçíàåì, îñòàíàâëèâàåòñÿ ëè ìàøèíà M íà ïóñòîì âõîäå.
29 / 41