В математике есть много доказательств существования, которые неконструктивны, поэтому мы знаем, что определенный объект существует, хотя мы не знаем, как его найти.
Я ищу похожие результаты в информатике. В частности: есть ли проблема, которую мы можем доказать, что она разрешима, не показывая алгоритм для нее? Т.е. мы знаем, что это может быть решено алгоритмом, но мы не знаем, как выглядит алгоритм?
algorithms
proof-techniques
Эрель Сегал-Халеви
источник
источник
Ответы:
Самый простой случай, который я знаю об алгоритме, который существует, хотя неизвестно, какой алгоритм касается автоматов конечного состояния.
Фактор из языка L 1 с помощью языка L 2 определяется как L 1 / L 2 = { х | ∃ у ∈ L 2 таким образом, что х у ∈ L 1 } .L1/L2 L1 L2 L1/L2={x∣∃y∈L2 such that xy∈L1}
Нетрудно доказать, что регулярное множество замкнуто относительно факторного по произвольному множеству. Другими словами, если регулярно, а L 2 произвольно (не обязательно регулярно), то и L 1 / L 2 тоже регулярно.L1 L2 L1/L2
Доказательство довольно простое. Пусть - FSA, принимающая регулярное множество R , где Q и F - соответственно множество состояний и множество принимающих состояний, и пусть L - произвольный язык. Пусть F ' = { д ∈ Q | ∃ у ∈ LM=(Q,Σ,δ,q0,F) R Q F L множество состоянийиз которых конечное состояние может быть достигнуто путем приема строки из L .F′={q∈Q∣∃y∈Lδ(q,y)∈F} L
Автомат , которая отличается от М только в своем множестве F ' конечных состояний признает именно Р / л . (Или см. Hopcroft-Ullman 1979, стр. 62 для доказательства этого факта.)M′=(Q,Σ,δ,q0,F′) M F′ R/L
Однако, когда множество не разрешимо, может не быть алгоритма для определения того, какие состояния имеют свойство, которое определяет F ' . Итак, хотя мы знаем, что множество F ′ является подмножеством Q , у нас нет алгоритма для определения того, какое подмножество. Следовательно, пока мы знаем, что R принимается одним из 2 | Q | возможно FSA, мы не знаем, что это такое. Хотя должен признаться, мы знаем в значительной степени, как это выглядит.L F′ F′ Q R 2|Q|
Это пример того, что иногда называют почти конструктивным доказательством, то есть доказательством того, что один из конечного числа ответов является правильным.
Я полагаю, что расширение этого может быть доказательством того, что один из перечисляемого набора ответов является правильным. Но я не знаю ни одного. Также я не знаю чисто неконструктивного доказательства того, что некоторая проблема разрешима, например, используя только противоречие.
источник
Чтобы расширить исходный комментарий Хендрика, рассмотрим эту проблему
Эта проблема разрешима, так как один из двух случаев может получить:
В случае (1) алгоритм решения проблемы будет одним из
и в случае (2) алгоритм будет
Очевидно, что каждый из них является алгоритмом решения; мы просто не знаем какие. Этого достаточно, однако, поскольку разрешимость требует только наличия алгоритма, а не спецификации того, какой алгоритм использовать.
источник
Здесь нет ответа. Я пишу, потому что считаю, что это поучительно, потому что я изначально утверждал обратное, и восемь человек согласились достаточно, чтобы проголосовать, прежде чем @sdcwc указал на ошибку. Я не хотел просто редактировать свой первый ответ, потому что я не уверен, что многие проголосовали бы за него, если бы знали, что это неправильно.
источник