Участник:Shersh/Теорема о рекурсии — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(начата Колмогоровская сложность)
(набросок док-ва Колмогоровской сложности)
Строка 7: Строка 7:
 
}}
 
}}
 
=== Пример ===
 
=== Пример ===
Колмогоровская сложность программы, выводящей <tex> n </tex> нулей <tex> K(0^n) \leqslant \log{n} + c </tex>. Просто программа, в которой записано <tex> n </tex> нулей. Но можно записать и более короткую программу, например вот такую:
+
Колмогоровская сложность программы, выводящей <tex> n </tex> нулей <tex> K(0^n) \leqslant \log{n} + c </tex>. Просто программа, в которой записано <tex> n </tex> нулей. Но можно записать и более короткую программу для больших <tex> n </tex>, например вот такую:
 
<code>
 
<code>
 
   <tex>p_n</tex>():
 
   <tex>p_n</tex>():
 
     '''for''' i = 1..n
 
     '''for''' i = 1..n
       print 0
+
       print(0)
 
</code>
 
</code>
  
Строка 19: Строка 19:
 
|statement=Колмогоровская сложность {{---}} невычислимая функция.
 
|statement=Колмогоровская сложность {{---}} невычислимая функция.
 
|proof=
 
|proof=
 +
<tex> \forall x > x_0: K(x) > f(x)</tex>, если только <tex>f \leqslant const </tex> или <tex> f </tex> {{---}} невычислима.
  
 +
Допустим, что <tex> K </tex> вычислима, тогда напишем такую программу:
 +
<code>
 +
  p(<tex>\varepsilon</tex>):
 +
    '''foreach''' x <tex>\in ~ \Sigma^* </tex> // перебираем слова по возрастанию длины
 +
      '''if''' <tex> K(x) > |p|</tex>
 +
        print(x)
 +
        exit   
 +
</code>
 +
 +
Начиная с <tex> x_0 </tex>, <tex> f(x) > |p| </tex>.
 
}}
 
}}
 
== Busy beaver ==
 
== Busy beaver ==

Версия 16:10, 28 декабря 2013

Неразрешимость универсального языка

Теорема Успенского-Райса

Колмогоровская сложность

Определение:
Колмогоровской сложностью строки [math] x [/math] называется функция [math] K(x) [/math], которая равна минимальной длине программы [math] p : p(\varepsilon) = x [/math].

Пример

Колмогоровская сложность программы, выводящей [math] n [/math] нулей [math] K(0^n) \leqslant \log{n} + c [/math]. Просто программа, в которой записано [math] n [/math] нулей. Но можно записать и более короткую программу для больших [math] n [/math], например вот такую:

 [math]p_n[/math]():
   for i = 1..n
     print(0)

Теорема (Невычислимость Колмогоровской сложности):
Колмогоровская сложность — невычислимая функция.
Доказательство:
[math]\triangleright[/math]

[math] \forall x \gt x_0: K(x) \gt f(x)[/math], если только [math]f \leqslant const [/math] или [math] f [/math] — невычислима.

Допустим, что [math] K [/math] вычислима, тогда напишем такую программу:

 p([math]\varepsilon[/math]):
   foreach x [math]\in ~ \Sigma^* [/math] // перебираем слова по возрастанию длины
     if [math] K(x) \gt  |p|[/math]
       print(x)
       exit     

Начиная с [math] x_0 [/math], [math] f(x) \gt |p| [/math].
[math]\triangleleft[/math]

Busy beaver

Аналог I теоремы Гёделя о неполноте

Аналог II теоремы Гёделя о неполноте

Теорема о неподвижной точке