Теорема Левина
Версия от 13:07, 5 июня 2012; Kirelagin (обсуждение | вклад)
Теорема (Левин): |
Для любого языка и соответствующего ему (из определения ) отношения существует «оптимальная» (работающая «не сильно дольше», чем любая другая) программа , сопоставляющая словам из их сертификаты, то есть:
|
Доказательство: |
Построим «оптимальную» программу .Пронумеруем все программы . Подадим им на вход слово и будем исполнять по одной инструкции в следующем порядке: на шаге с номером запустим программу , где таково, что делится на и не делится на . Таким образом, программа будет исполняться на каждом -м шаге начиная с -го. Следовательно, если завершит работу за инструкций, то к этому времени нами будет сделано шагов.Как только Таким образом, если некоторая программа , выдав некоторое значение, завершит работу, будем на соответствующих шагах запускать проверку сертификата слова , используя вывод в качестве сертификата. Если результат проверки положителен, искомый сертификат найден, иначе — продолжим работу, ничего не делая на тех шагах, когда должна была исполняться . генерирует верные сертификаты, то наша программа завершит работу не более, чем за шагов. и из определения , значит это равно . |