Участник:Shersh/Теорема о рекурсии — различия между версиями
Shersh (обсуждение | вклад)  (неразрешимость универсального языка)  | 
				Shersh (обсуждение | вклад)   (набросок теоремы Успенского-Райса)  | 
				||
| Строка 24: | Строка 24: | ||
}}  | }}  | ||
== Теорема Успенского-Райса ==  | == Теорема Успенского-Райса ==  | ||
| + | <tex> A </tex> {{---}} разрешимое семейство языков.  | ||
| + | |||
| + | <tex> L_A </tex> {{---}} язык свойства языков. Допустим, что он разрешим. Тогда напишем такую программу  | ||
| + | |||
| + | <code>  | ||
| + |   p(x):  | ||
| + |     '''if''' p <tex> \in ~ L_A </tex>  | ||
| + |       '''return''' z(x)  | ||
| + |     '''else'''  | ||
| + |       '''while''' ''true''  | ||
| + | </code>  | ||
== Колмогоровская сложность ==  | == Колмогоровская сложность ==  | ||
{{Определение  | {{Определение  | ||
| Строка 48: | Строка 59: | ||
   p(<tex>\varepsilon</tex>):  |    p(<tex>\varepsilon</tex>):  | ||
     '''foreach''' x <tex>\in ~ \Sigma^* </tex> // перебираем слова по возрастанию длины  |      '''foreach''' x <tex>\in ~ \Sigma^* </tex> // перебираем слова по возрастанию длины  | ||
| − |        '''if''' <tex> K(x) > |p|</tex>  | + |        '''if''' <tex> K(x) > |p|</tex> // теорема о рекурсии используется здесь  | 
         print(x)  |          print(x)  | ||
         exit        |          exit        | ||
Версия 16:30, 28 декабря 2013
Содержание
Неразрешимость универсального языка
Считаем, что язык программ над тем же алфавитом, что и язык входных данных. Если это не так, то можно просто взять объединение алфавитов, это ничто не испортит.
Универсальная программа: .
Универсальный язык:
| Утверждение: | 
Универсальный язык неразрешим  | 
|  
 Напишем такую программу:
  p(x):
   if u(p, x) // можем так написать, потому что по теореме о рекурсии программа может знать свой код
     return 0
   else
     return 1
 Если , тогда программа на входе возвращает , но по условию она должна вернуть 0, а следовательно, не принадлежит универсальному языку. Если же , то мы пойдём во вторую ветку условного оператора и вернём , значит, пара принадлежит универсальному языку, но , значит, пара не принадлежит. Опять получили противоречие. | 
Теорема Успенского-Райса
— разрешимое семейство языков.
— язык свойства языков. Допустим, что он разрешим. Тогда напишем такую программу
 p(x):
   if p 
     return z(x)
   else
     while true
Колмогоровская сложность
| Определение: | 
| Колмогоровской сложностью строки называется функция , которая равна минимальной длине программы . | 
Пример
Колмогоровская сложность программы, выводящей  нулей . Просто программа, в которой записано  нулей. Но можно записать и более короткую программу для больших , например вот такую:
 ():
   for i = 1..n
     print(0)
| Теорема (Невычислимость Колмогоровской сложности): | 
Колмогоровская сложность — невычислимая функция.  | 
| Доказательство: | 
| 
 , если только или — невычислима. Допустим, что  вычислима, тогда напишем такую программу:
 p(): foreach x // перебираем слова по возрастанию длины if // теорема о рекурсии используется здесь print(x) exit Начиная с , .  |