Участник: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 Начиная с , . |