Busy beaver — различия между версиями
AReunov (обсуждение | вклад) |
AReunov (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | + | '''Поиск усердных бобров''' (англ. ''busy beaver'') {{---}} известная задача в теории вычислимости. Под усердным бобром в теории вычислимости понимают [[Машина Тьюринга | машину Тьюринга]] с заданным числом состояний конечного автомата, которая будучи запущенной на пустой ленте, записывает на нее максимальное количество ненулевых символов и останавливается. | |
| − | '''Поиск усердных бобров'''(англ. ''busy beaver'') {{---}} известная задача в теории вычислимости. Под усердным бобром в теории вычислимости понимают машину Тьюринга с заданным числом состояний конечного автомата, которая будучи запущенной на пустой ленте, записывает на нее максимальное количество ненулевых символов и останавливается. | ||
В данном конспекте будет рассмотрена функция, которая используется в этой задаче для подсчета числа шагов для завершения программы при определенном числе состояний. | В данном конспекте будет рассмотрена функция, которая используется в этой задаче для подсчета числа шагов для завершения программы при определенном числе состояний. | ||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
| − | <b><tex>BB(n)</tex></b> | + | <b><tex>BB(n)</tex></b> {{---}} функция от натурального аргумента <tex>n</tex>, равная максимальному числу шагов, которое может совершить программа длиной <tex>n</tex> символов и затем остановиться. |
}} | }} | ||
| Строка 14: | Строка 13: | ||
Пусть <tex>f(n)</tex> представлена своим кодом. | Пусть <tex>f(n)</tex> представлена своим кодом. | ||
Для каждого <tex>n</tex> определим программы вида: | Для каждого <tex>n</tex> определим программы вида: | ||
| − | <tex> | + | <tex>p_n</tex>: |
| − | k = | + | k = десятичная запись числа n |
| − | f = | + | f = BB(k) |
for i = 1 to f + 1 do | for i = 1 to f + 1 do | ||
| − | /* шаг программы */ | + | /* шаг программы */ |
Каждая такая программа делает как минимум <tex>f(n) + 1</tex> шагов. | Каждая такая программа делает как минимум <tex>f(n) + 1</tex> шагов. | ||
| Строка 27: | Строка 26: | ||
== См. также == | == См. также == | ||
| − | * [ | + | * [[Вычислимые функции]] |
| − | * [ | + | * [[Машина Тьюринга]] |
==Источники информации== | ==Источники информации== | ||
* ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.) | * ''Хопкрофт Д., Мотвани Р., Ульман Д.'' — '''Введение в теорию автоматов, языков и вычислений''', 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.) | ||
| − | * [http://en.wikipedia.org/wiki/Busy_beaver#The_busy_beaver_function Английская Википедия {{---}} | + | * [http://en.wikipedia.org/wiki/Busy_beaver#The_busy_beaver_function Английская Википедия {{---}} Busy beaver] |
* [http://is.ifmo.ru/works/_bobri.pdf Федотов П.В., Царев Ф.Н., Шалыто А.А. {{---}} Задача поиска усердных бобров и ее решения] | * [http://is.ifmo.ru/works/_bobri.pdf Федотов П.В., Царев Ф.Н., Шалыто А.А. {{---}} Задача поиска усердных бобров и ее решения] | ||
| + | |||
| + | [[Категория: Теория формальных языков]] | ||
| + | [[Категория: Теория вычислимости]] | ||
| + | [[Категория: Разрешимые и перечислимые языки]] | ||
Версия 16:41, 14 января 2016
Поиск усердных бобров (англ. busy beaver) — известная задача в теории вычислимости. Под усердным бобром в теории вычислимости понимают машину Тьюринга с заданным числом состояний конечного автомата, которая будучи запущенной на пустой ленте, записывает на нее максимальное количество ненулевых символов и останавливается.
В данном конспекте будет рассмотрена функция, которая используется в этой задаче для подсчета числа шагов для завершения программы при определенном числе состояний.
| Определение: |
| — функция от натурального аргумента , равная максимальному числу шагов, которое может совершить программа длиной символов и затем остановиться. |
| Утверждение: |
растет быстрее любой всюду определенной неубывающей вычислимой функции , то есть для всех кроме конечного числа выполнено |
|
Пусть представлена своим кодом. Для каждого определим программы вида: :
k = десятичная запись числа n
f = BB(k)
for i = 1 to f + 1 do
/* шаг программы */
Каждая такая программа делает как минимум шагов. Длина будет равна , где — длина кода без десятичной записи . Пусть — решение уравнения . Тогда для всех натуральных , в силу неубывания , будет выполнено: . Так как конечно, то утверждение доказано. |
Вывод: доказав предыдущее утверждение, мы проверили, что максимальное число шагов, которое может совершить программа и при этом остановиться, на самом деле растет с большей скоростью, чем любая вычислимая функция. Отсюда следует, что невычислима.
См. также
Источники информации
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)
- Английская Википедия — Busy beaver
- Федотов П.В., Царев Ф.Н., Шалыто А.А. — Задача поиска усердных бобров и ее решения