2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 вопрос по вычислимости
Сообщение11.05.2018, 19:08 


10/11/11
81
существует ли алгоритм, который выписывает все алгоритмы, которые не останавливаются?

- такой вопрос я встретил в книжке Китаев, Шень, Вялый "Классическите и квантовые вычисления", и что-то он меня ввел в раздумья.

Понятно, что все входные данные алгоритма можно зашить в самом алгоритме.
Понятно, что все алгоритмы можно некоторым образом занумеровать.

Казалось бы, этот алгоритм (назовем его алгоритм A) (если он существует) генерирует множество не останавливающихся алгоритмов; к нему можно получить дополнение (назовем его алгоритм B), и мы будем для каждого алгоритма знать останавливается он или нет, а как известно, такой алгоритмической процедуры не существует.

Но как алгоритмически посчитать дополнение к этому бесконечному множеству?

Если этот алгоритм A выписывает алгоритмы, которые не останавливаются, в некотором заранее известном порядке (например в котором мы занумеровали все алгоритмы), то посчитать такое дополнение не составит труда: после того, как этот алгоритм A выдал очередной номер МТ, которая не останавливается, алгоритм B выдает номера всех МТ, которые находятся между предпоследним и последним номерами, выданными алгоритмом A.

А как быть, если алгоритм A выписывает алгоритмы в некотором заранее НЕизвестном порядке?
В этом случае у меня не получается придумать алгоритм B.
Может ли такой алгоритм A существовать?

В принципе, вопрос задан без уточнения, какой из случаев имеет место быть :-), по этому и во втором случае должно быть так же как и в первом, но как это доказать?

 Профиль  
                  
 
 Re: вопрос по вычислимости
Сообщение11.05.2018, 19:32 
Заслуженный участник
Аватара пользователя


16/07/14
8603
Цюрих
FeelUs в сообщении #1311758 писал(а):
Но как алгоритмически посчитать дополнение к этому бесконечному множеству?
В общем случае никак: дополнение перечислимого множества не обязано быть перечислимым.
Но для данного конкретного случая - попробуйте просто придумать алгоритм, перечисляющий все останавливающиеся программы.
(просто более-менее явно сказать, что он делает - даже без опоры на предположение о перечислимости множества неостанавливающихся программ)

 Профиль  
                  
 
 Re: вопрос по вычислимости
Сообщение11.05.2018, 20:06 


10/11/11
81
аааа, точно. Чтобы определить, останавливается программа или нет, надо параллельно запустить ее и алгоритм, который перечисляет неостанавливающиеся программы и сравнивает с данной.
Если программа останавливается, то она останавливается, и ее поиск среди неостанавливающихся можно будет сразу прекратить.
А если программа не останавливается, то она будет найдена среди неостанавливающихся, и после этого выполнение самой программы можно будет прекратить.

Спасибо

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group