Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418

Проблема останова. В чём противоречие?

18.11.2021, 08:29. Показов 8936. Ответов 176
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Расскажите пожалуйста, в чём суть проблемы останова и как Тьюринг определяет и доказывает отсутствие оракула?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2021, 08:29
Ответы с готовыми решениями:

Проблема применимости и проблема останова
Привет! Как бы я не бился - никак не могу понять проблему останова и применимости алгоритмов в целом. Хочу попросить прям полное объяснение...

Проблема с отладкой и точками останова
Здравствуйте С крайне прозаичной и глупой проблемой столкнулся. Переделывал старый проект, в процессе замены кода натолкнулся на то, что...

Выдает ошибку, а я не могу понять в чем проблема. В чем проблема, скажите пожалуйста!
dx=0.0005; epsillon=0.00002; i=0; for x= 0:0.0005:3 i=i+1; if x<1 y (i)=-1; elseif x<2 S=0; ...

176
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
01.05.2022, 11:30
Студворк — интернет-сервис помощи студентам
Тут дело не в веришь - не веришь. Пока вы не смогли описать правила построения какой-либо цепочки. Все объяснения путаные, на уточняющих вопросах рассыпаются.

Добавлено через 3 минуты
Цитата Сообщение от Aycon Посмотреть сообщение
если вам покажут работающего Оракула, даже если это будет лично Тьюринг, вы скажете, что он ошибся
вы пытаетесь свести математическую проблему к вере в авторитеты.
Вы в восьмом классе в теорему Пифагора верили или разобрались с доказательством?
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
01.05.2022, 11:44  [ТС]
Sindbad_M, генерация невозможна только бесконечных строк. Бесконечных программ не бывает, как оаз это не имеет прикладного значения, а не моя функция, которая позволяет упорядочить все остальные листинги кода в упорядоченный одномерный массив

Добавлено через 1 минуту
Sindbad_M, задайте конкретный вопрос. Я дам конкретный ответ. Не о моей вере и попытках, а о моей функции.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
01.05.2022, 16:03
Aycon, я задал много вопросов. И, по сути, не получил ответов. Вы так и не можете внятно сказать, что за таинственные строки генерирует ваша программа. Даже не можете определится, есть среди них бесконечные или нет. Вот сейчас опять

Цитата Сообщение от Aycon Посмотреть сообщение
генерация невозможна только бесконечных строк.
но ведь раньше было

Цитата Сообщение от Aycon Посмотреть сообщение
Конечные по длинне листинги программы будут возвращаться за конечное количество итераций функции, бесконечные листинги только за бесконечные.
вы постоянно бросаете нить рассуждений и вновь и вновь декларируете какие-то новые тезисы. И совершенно непонятно, то ли вы уже отказались от предыдущих утверждений, то ли просто раздумывете над ответом.

Ок. Пусть есть некоторая функция, которая возвращает текст программы на некотором алгоритмической языке. Дальше что? Эта функция умеет определять завершится та или иная из сгенерированных ей программ за конечное время?
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
01.05.2022, 16:36
Цитата Сообщение от Aycon Посмотреть сообщение
генерация невозможна только бесконечных строк. Бесконечных программ не бывает
То есть иррациональные числа бывают, а программ нет.
Давайте представим, что программа задана таким вот иррациональным числом - и выполняется в памяти по частям, по мере генерации.

Примеры попроще есть:

https://ru.wikipedia.org/wiki/... стое_число
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
01.05.2022, 16:49  [ТС]
Sindbad_M, эта функция может упорядочить множество всех программ. С помощью неё можно сгенерировать последовательность символов, которой нет ни в одной из существующих программ, с помощью циклического сдвига каждого символа программы.Засовываете эту последовательность в оракула и он может определить своё присутствие в любом аргументе. Причём многократное. Таким образом это чистая функция и она может вернуть true, если найдёт себя во входных данных. Мы с вами об этом говорили, разве вы не помните? Или это издевательство надо мной?

Добавлено через 8 минут
vantfiles, без контекста и бабка с яйцами бывает, простите. Sindbad_M написал:
, 22:07[В закладки] [Окно ответа] 39 (permalink)

Честно, не вижу смысла в написании какой-либо функции на каком-либо языке. Вполне можно мысленно представить или описать на естественном языке цепочку строк, которые будут генерироваться условной функцией. А учитывая то обстоятельство, что генерация некоторые строк с помощью вашей функции все равно практически не достижима, функция не имеет прикладного значения.
На что я ему ответил, что на практике не существует бесконечных программ. Ещё ни одна бесконечная по количеству символов программа ни была написана и не будет. Можно написать метод, который генерирует такую программу, но нельзя написать её, потому что у вас нет бесконечного количества памяти в реальности. Число пи есть, но никто его никогда не записал ещё целиком. С прикладной точки зрения бесконечных программ не существует. Я очень устал объяснять одно и то же, у меня истерика, я прошу вас, закройте этот вопрос и я больше никогда не напишу в этот раздел. Я не могу больше вывозить это, я хочу вскрыть себе вены.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
02.05.2022, 11:47
Цитата Сообщение от vantfiles Посмотреть сообщение
То есть иррациональные числа бывают, а программ нет.
Именно. Существование иррациональных чисел никак не обосновывает существование бесконечных программ.
Цитата Сообщение от vantfiles Посмотреть сообщение
Примеры попроще есть:
Все "незаконные" числа по ссылке - натуральные, а не иррациональные.
Цитата Сообщение от Aycon Посмотреть сообщение
на практике не существует бесконечных программ
Более того, их не существует и в теории. Под алгоритмом понимают конечный набор инструкций.
Цитата Сообщение от Aycon Посмотреть сообщение
эта функция может упорядочить множество всех программ
Ок. Будем считать программы упорядоченными в том порядке, в котором функция их возвращает при последовательных вызовах.
Цитата Сообщение от Aycon Посмотреть сообщение
С помощью неё можно сгенерировать последовательность символов, которой нет ни в одной из существующих программ,
Тут уже что-то странное начинает происходить. С помощью функции можно генерировать программу за программой и ничего более.
Цитата Сообщение от Aycon Посмотреть сообщение
, с помощью циклического сдвига каждого символа программы
Ок. Мы можем выбрать произвольную программу, созданную с помощью функции и выполнить указанное преобразование её текста. Но это все-таки создание строки не "с помощью функции", а "с помощью циклического сдвига". И вот тут возникают вопросы
1. Почему мы можем утверждать, что после циклического сдвига не будет создана другая программа, которая также генерируется функцией?
2. Зачем нам модифицировать какую-то строку, являющуюся программой, чтобы получить новую строку не являющуюся программой? Ведь произвольную строку не являющуюся программой можно просто придумать.
Цитата Сообщение от Aycon Посмотреть сообщение
Засовываете эту последовательность в оракула и он может определить своё присутствие в любом аргументе.
Расскажите подробнее про этого вашего оракула. Я думал, что под оракулом вы понимаете Анализатор, т.е. функцию, которая получив на входе алгоритм, возвращает ответ, завершится ли этот алгоритм за конечное время или нет.
Но в Анализатор не имеет смысла передавать что-то не являющееся алгоритмом. А в оракула вы предлагаете передать некоторую строку не имеющую смысла.
Цитата Сообщение от Aycon Посмотреть сообщение
это чистая функция и она может вернуть true, если найдёт себя во входных данных.
Вообще ничего непонятно в этой фразе. Как интерпретируется это true и какое отношение оно имеет к вопросу завершится ли та или другая программа?
Цитата Сообщение от Aycon Посмотреть сообщение
Мы с вами об этом говорили, разве вы не помните?
Мы много о чем говорили. После предложения сформулировать теорию с чистого листа были "последнее натуральное число" и "бесконечные листинги", но "оракула определяющего свое присутствие в любом аргументе" точно не было.
Цитата Сообщение от Aycon Посмотреть сообщение
Я очень устал объяснять одно и то же
Ровно потому, что ваши объяснения часто противоречат сами себе. Каждый раз, когда вы не смогли ответить на вопрос или опровергнуть утверждение следует считать, что вся(!) ваша теория признана несостоятельной. Да, вы строите новую теорию на основе старой. Но пишете только какой-то фрагмент. В результате получается какая-то каша из путанных пояснений. Намного продуктивнее будет каждый раз описывать ваш метод опровержения <что вы там хотите опровергнуть> c самого начала и до конца. С определениями, описанием, что такое в вашем понимании "оракул", "генерирующая функция", "программа" и т.д. Впрочем, при таком тщательном подходе вы самостоятельно будете находить ошибки в рассуждениях и на этом все завершится.
2
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
02.05.2022, 13:22
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Под алгоритмом понимают конечный набор инструкций.
Алгоритм вывода всех натуральных чисел без использования цикла или рекурсии.
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
02.05.2022, 13:55
Цитата Сообщение от vantfiles Посмотреть сообщение
Алгоритм вывода всех натуральных чисел без использования цикла или рекурсии.
И? Что это за алгоритм?
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
02.05.2022, 14:18
Цитата Сообщение от Sindbad_M Посмотреть сообщение
Что это за алгоритм?
Распечатать число 1
Распечатать число 2
Распечатать число 3
...
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
02.05.2022, 14:57
Этот алгоритм выводит только три первых натуральных числа
2
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
02.05.2022, 16:06  [ТС]
Sindbad_M,
Расскажите подробнее про этого вашего оракула. Я думал, что под оракулом вы понимаете Анализатор, т.е. функцию, которая получив на входе алгоритм, возвращает ответ, завершится ли этот алгоритм за конечное время или нет.
Но в Анализатор не имеет смысла передавать что-то не являющееся алгоритмом. А в оракула вы предлагаете передать некоторую строку не имеющую смысла.
Покажу как я это вижу. Программа Оракул, она же анализатор. Принимает на вход любое конечное множество символов языка brain****, который полон по Тьюрингу, если запущен на правильном интерпретаторе. Оракул - это функциия с одним аргументом (листингом программы) и возвращает истину (true), если в результате анализа выясняет, что программа в его аргументе остановится. И возвращает ложь, если программа не остановится. Предполагается, что на вход ей передаётся всегда корректная с точки зрения синтаксиса brain**** программа. Проблему останова можно описать с помощью псевдокода:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//Oracle definition
bool Oracle(string programmListing)
{
   //Something return true or false
}
 
// Call the Oracle
string testListing = ">>>+++[>>]";
void Main()
{
   WrireResult(Oracle(testListing));
}
 
//BadExample (brain**** implementation only)
void OracleCracker()
{
   If(Oracle(OracleCrackerSourceCode))
   {
       //Infinite loop
       while(true) {}
   }
   else
   {
        return;
   }
}
По определению, Оракул всегда останавливается и всегда даёт верный результат. Если Оракулу на вход подать исходный код функции Oracle Cracker, то он не сможет дать верный ответ. Его результат не определён. Оракул должен быть Чистой функцией без Побочных эффектов. Я полагаю, что без побочных эффектов Оракул может идентифицировать наличие вызова себя в функции OracleCracker и изменить возвращаемое значение таким образом, чтобы остановить функцию OracleCracker и вернуть истину (и не соврать в этом конкретном случае). Для этого я должен найти способ отличить исходный код вызова Оракула от любого другого кода. Для этого я собираюсь использовать зарезервированный кусок кода на brain****. А чтобы отличить его от обычного кода, я думал кодировать его следующим набором символов в порядке, который вызывает моя функция. Кажется, именно это не сработает, поскольку в Оракула передаётся не модифицированный предварительно код, однако я полагаю, что обнаружить своё присутствие в своём аргументе Оракул теоретически может (будучи чистой функцией) и проблема останова (в такой интерпретации) не имеет силы (не верна).

Добавлено через 14 минут
Sindbad_M, WriteResult конечно же
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
03.05.2022, 12:44
Цитата Сообщение от Aycon Посмотреть сообщение
и возвращает истину (true), если в результате анализа выясняет, что программа в его аргументе остановится. И возвращает ложь, если программа не остановится.
Вот тут хотелось-бы подробностей. Вы знаете способ как по листингу произвольной корректной программы на Brain**** определить остановится ли она за конечное время?
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
03.05.2022, 18:04  [ТС]
Sindbad_M, конкретно - пока нет. Но проблема останова о том, что, дескать, даже теоретически это не возможно. Я хочу доказать обратное
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
03.05.2022, 19:35
Цитата Сообщение от Aycon Посмотреть сообщение
конкретно - пока нет.
Если бы вы знали способ определения завершится ли тот или иной алгоритм, то ничего больше доказывать не требовалось бы. Просто предъявляете ваш алгоритм, и всё, неразрешимость проблемы останова опровергнута!

Но пока решения это задачи нет ни у кого. И нет никаких признаков, что это решение у кого-то появится. Да и доказано уже, ни у кого не появится.

Неразрешимость проблемы останова доказывается от противного. Делается предположение "допустим Анализатор (Оракул) существует". И из этого предположения выводится противоречие.

Но если при доказательстве от противного из предположения не выводится противоречия, то это совершенно ничего не значит. Отсутствие противоречия не подтверждает и не опровергает истинность пердположения.

Итого,
- если вы сможете построить Анализатор для Brain****, то ничего больше городить не требуется, анализатор подтверждает свое существование сам по себе
- если вы предполжите существование Анализатора, то в рамках этой же цепочки рассуждений не сможете подтвердить его существование. Вы сможете либо получить противоречие (что доказывает невозможность Анализатора), либо не получить противоречие, что ничего не доказывает.
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
03.05.2022, 21:44
Есть ли исключения из правила: "не существует правил без исключений"?

Суть проблемы останова в том, что существуют программы, для которых оба ответа будут неверными.

Добавлено через 4 минуты
Напоминает теорему Гёделя о неполноте.
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
04.05.2022, 10:30  [ТС]
Sindbad_M,
 Да и доказано уже, ни у кого не появится.
Нет, это не доказанно. Тьюринг допустил ошибку в рассуждениях.важно только то, что оракул вернёт на самом верхнем уровне вложенности. Оракул не обязан игнорировать вызовы себя. Я полагаю.

Добавлено через 1 минуту
Sindbad_M, создать Оракула - непомерно более сложная задача, чем опровергнуть предположение о проблеме останова.

Добавлено через 2 минуты
Shamil1, которая также весьма спорная. Я полагаю, что и она не верна
0
485 / 411 / 126
Регистрация: 23.05.2016
Сообщений: 1,653
04.05.2022, 11:54
Цитата Сообщение от Aycon Посмотреть сообщение
Тьюринг допустил ошибку в рассуждениях
Ну тогда надо доказывать ошибочность рассуждений Тьюринга. Если Тьюринг допустил ошибку, то нужно именно на эту конкретную ошибку и указывать. А не растекаться мыслью по древу. И, видимо, начать с воспроизведения того фрагмента доказательства, которое содержит ошибку. Затем сформулировать, в чем ошибка заключается. Затем доказать сформулированное утверждение.
Цитата Сообщение от Aycon Посмотреть сообщение
.важно только то, что оракул вернёт на самом верхнем уровне вложенности
Что такое "уровни вложенности" у Оракула? И использовал ли Тьюринг такое понятие в своем доказательстве?
Цитата Сообщение от Aycon Посмотреть сообщение
Оракул не обязан игнорировать вызовы себя
Зависит от определения Оракула. Только зачем нам доказывать возможность существования неполноценного Оракула?
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
04.05.2022, 14:33  [ТС]
Sindbad_M, а в чём заключается его неполноценность?
0
Модератор
Эксперт функциональных языков программирования
3138 / 2286 / 469
Регистрация: 26.03.2015
Сообщений: 8,890
04.05.2022, 18:06
Цитата Сообщение от Aycon Посмотреть сообщение
важно только то, что оракул вернёт на самом верхнем уровне вложенности.
Оракул - это функция. У неё нет уровней вложенности. И, кстати, в примере можно заменить вызов Оракула на код Оракула.
0
13 / 11 / 2
Регистрация: 07.05.2015
Сообщений: 418
05.05.2022, 05:32  [ТС]
Shamil1, OraculCracker вызывает оракула и подаётся на вход оракулу. Это я и подразумеваю под словом вложенность. Я не вижу смысла в том, чтобы отказываться от общепринятой терминологии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2022, 05:32
Помогаю со студенческими работами здесь

VsCode и Rust проблема с точками останова
Всем привет. Начал изучать Rust, столкнулся с такой проблемой: в VsCode не срабатывают точки останова. Использую вот такую конфигурацию...

Проблема останова лжеца Гёделя и брадобрея Кантора
Наваял тут трактат о логике и основаниях математики. Расскажите, пожалуйста, в чём я не прав.

Подскажите, в чем ошибка (exe вызвал срабатывание точки останова)
Код #define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;locale&gt; using namespace std; ...

В чем заключаются ошибки в работе программы.Ошибка "вызвал срабатывание точки останова."
Matrix.h #ifndef MATRIX_H #define MATRIX_H #include &lt;ostream&gt; class Matrix { private: int **ptr; // указатель на матрицу ...

Проблема с кодом. Выдает ошибку, я не могу понять в чем проблема
Работаю первый раз с Maple. Установлен версии 2015 года. Выдает ошибку я не могу понять в чем проблема Вот код: restart: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru