Существуют ли неконструктивные доказательства существования алгоритма?


47

Я помню, что я мог столкнуться со ссылками на проблемы, которые, как было доказано, разрешимы с определенной сложностью, но без какого-либо известного алгоритма, чтобы фактически достичь этой сложности.

Я изо всех сил стараюсь понять, как это может быть; как будет выглядеть неконструктивное доказательство существования алгоритма.

Есть ли на самом деле такие проблемы? У них много практической ценности?


11
алгоритмы, основанные на теореме Робертсона-Сеймура ? Или, проще говоря, использование PEM для доказательства алгоритма существует там, где мы не знаем, какой из них (проблема остановки тривиально разрешима для каждой фиксированной машины Тьюринга, но как мы можем найти алгоритм, решающий проблему правильно без решения (унифицированная версия) проблема остановки?) ps: что вы подразумеваете под «практической ценностью»?
Каве


1
Рафаэль, мне кажется, что твой комментарий может быть правдоподобно переведен на ответ. Возможно, вы (или кто-то другой) могли бы попробовать это?
Джон Сидлс


2
Это сейчас в Википедии .
Рафаэль

Ответы:


33

Рассмотрим функцию (взято отсюда )

е(N)знак равно{10N происходит в десятичном представлении π0еще

Несмотря на внешний вид, вычислима по следующему аргументу. Илие

  1. встречается для каждого n или0NN
  2. существует так что 0 k встречается, а 0 k + 1 - нет.К0К0К+1

Мы не знаем, что это (пока), но мы знаем, что сеFзнак равно{е,е0,е1,...}

  1. ие(N)знак равно1
  2. .еК(N)знак равно[NК]

Поскольку , f вычислимо - но мы не можем сказать, что такое f .FрЕее


2
Этот ответ хорош, как и другие ответы. Очевидно, что вопрос ДжКффа имеет более одного ответа, в том смысле, что существует множество технологий доказательства, которые могут неконструктивно демонстрировать существование алгоритма.
Джон Сидлс

Я, однако, отмечаю это как «принятое», потому что оно, безусловно, самое простое и демонстрирует основную идею о том, как может возникнуть доказательство существования неконструктивного алгоритма.
JKFF

@jkff Как это просто, это отличное упражнение для студентов на вступительных курсах TCS. Мне потребовались недели, чтобы скорректировать мою интуицию / концепцию вычислимости в свете этой функции.
Рафаэль

Я был бы готов поспорить на миллион долларов, что - это постоянная 1 функция. И у меня нет миллиона долларов. е
Даниэль Маклаури

26

Возможно, это не совсем то , что вы имеете в виду, но оптимальный алгоритм минимального связующего дерева Сета Петти и Виджая Рамачандран в некотором смысле неконструктивен.

Остается открытым вопрос, существует ли детерминированный алгоритм для вычисления минимальных остовных деревьев за линейное (что означает ) время. Петти и Рамачандран описывают алгоритм, который вычисляет MST за линейное время, если такой алгоритм существует .О(N+м)

Интуитивно, их алгоритм уменьшает любую -vertex экземпляра задачи MST к O ( п / K ) меньшим случаям с O ( K ) вершинами в линейное время, где (скажу) к = O ( журнал журнал журнал журнал журнал журнал журнал п ) , Затем они вычисляют оптимальное дерево сравнения, которое вычисляет минимальное остовное дерево любого графа k- вершин путем перебора методом грубой силы; даже если это занимает в пять раз экспоненциальное время в к , это только ONО(N/К)О(К)Кзнак равноО(журналжурналжурналжурналжурналжурналжурналN)КК время. Наконец, они решают небольшие случаи, используя это оптимальное дерево решений.О(журналжурналN)

Другими словами, Петти и Рамачандран строят оптимальный алгоритм MST только косвенно, создавая алгоритм, который создает оптимальный алгоритм MST.


Это классно! Кстати, их алгоритм соответствует лучшему времени выполнения в модели дерева решений, верно?
Сашо Николов

Да это правильно!
Джеффс

2
В некотором смысле это звучит скорее как функция более высокого порядка (это функция, которая принимает другую функцию, и доказательство ее временной сложности зависит от сложности входных данных), чем неконструктивное доказательство. Я бы взял неконструктивное доказательство для обозначения чего-либо, что решающим образом вызывает классическую логику (LEM, DNE или Peirce) при построении доказательства существования алгоритма, фактически не предоставляя его. Это все еще круто, хотя.
copumpkin

13

Вот два примера.

  1. Некоторые алгоритмы, использующие теорему Робертсона-Сеймура . Теорема утверждает, что в каждом случае существует конечное препятствие, но не дает возможности найти такое конечное множество. Следовательно, хотя мы можем доказать, что алгоритм существует, явное утверждение алгоритма будет зависеть от конечного набора препятствий, который мы не знаем, как найти. Другими словами, мы знаем, что есть алгоритм, но мы еще не знаем, как его найти.

  2. Более сильный пример, хотя и менее естественный, по существу, использует PEM или подобные неконструктивные аксиомы. Это сильнее в том смысле, что мы можем доказать, что конструктивное существование алгоритма подразумевает неконструктивную аксиому (аналогично слабым контрпримерам Брауэра ). Такой пример более силен, потому что он говорит не только о том, что мы сейчас не знаем ни одного явного алгоритма (или какого-либо алгоритмического способа его нахождения), но и о том, что на это нет надежды.

    В качестве примера, мы можем использовать PEM, чтобы доказать, что алгоритм существует, в то время как мы не знаем, какой из них, а конструктивный способ его нахождения подразумевает неконструктивную аксиому. Позвольте мне привести простой пример:

    Проблема остановки тривиально разрешима для каждой фиксированной машины Тьюринга (каждая TM либо останавливается, либо не останавливается, и в каждом случае есть TM, которая выводит правильный ответ), но как мы можем найти алгоритм, решающий проблему правильно, без решения ( единая версия) проблема остановки?

    Более формально, мы не можем доказать конструктивно , что дано ТМ существует ТМ H T , который решает проблемы остановки для M . Более формально, следующее утверждение не может быть доказано конструктивно:MHTM

    eN fN [({f}( )=0{e})({f}( )=1{e})]

    Здесь - это TM с кодом e (в некотором фиксированном представлении TM), { e } означает, что { e } останавливается, а { f } означает, что { f } не останавливается.{e}е{е}{е}{е}{е}


1
Что такое «конечная преграда для каждого случая»? Я думаю, что вы имеете в виду «конечный набор препятствий для каждого бесконечного множества второстепенных замкнутых графов », также оставаясь нехорошо (я отредактировал ваш ответ, чтобы исправить это, но, кажется, отклонил, я предпочитаю не повторять это).
Саид

8

Да.

В одной точке в (1) теорема дихотомии о гомоморфизме графа счета с комплексным весом для любого конечного размера области, Cai, Chen и Lu, только доказывает существование сокращения за полиномиальное время между двумя задачами счета посредством полиномиальной интерполяции. Я не знаю никакой практической ценности для такого алгоритма.

Смотрите Раздел 4 версии arXiv. Лемма, о которой идет речь, - это лемма 4.1, называемая «первой леммой пиннинга».

Один из способов сделать это доказательство конструктивным - доказать комплексно-взвешенную версию результата Ловаша , а именно:

Для всех , Z H ( G , w , i ) = Z H ( G , w , j ), если существует автоморфизм f группы G такой, что f ( i ) = j .GZH(G,w,i)=ZH(G,w,j)fGf(i)=J

Здесь - вершина в H , i и j - вершины в G , а Z H ( G , w , i ) - сумма по всем комплексно-взвешенным гомоморфизмам графа из G в H с дополнительным ограничением, что я должен отображаться в ж .весЧАСяJграммZЧАС(грамм,вес,я)граммЧАСявес

(1) Джин-Йи Цай, Си Чен и Пиньян Лу. Графовые гомоморфизмы с комплексными значениями: теорема о дихотомии ( arXiv ) ( ICALP 2010 )


7

Некоторые ранние результаты с конца 80-х годов:

Из аннотации второго пункта:

Однако недавние фундаментальные достижения в теории графов сделали доступными новые мощные неконструктивные инструменты, которые можно применять для гарантии членства в P. Эти инструменты неконструктивны на двух разных уровнях: они не создают алгоритм принятия решения, устанавливая только конечность набора препятствий. и при этом они не показывают, может ли такой алгоритм решения оказать какую-либо помощь в построении решения. Мы кратко рассмотрим и проиллюстрируем использование этих инструментов, а также обсудим, казалось бы, сложную задачу поиска обещанных алгоритмов принятия решений за полиномиальное время при применении этих новых инструментов.


6

Пример бесконечного семейства проблем (сомнительной практической ценности), для которых мы можем показать:

  1. Что для каждой проблемы существует алгоритм ее решения.
  2. Что нет способа построить эти алгоритмы (в общем).

M

LMзнак равно{M'|L(M)знак равноL(M') а также |M||M'|}

  1. M

  2. пMп(M)LMMM'|M||M'|п(M)(M')п


2
Милый. Но практическая ценность этого может быть менее сомнительной, чем вы думаете: это вариант решения проблемы поиска самой короткой программы с заданным выводом, то есть оптимального сжатия данных.
Дэвид Эппштейн

1
Я думаю, что пример похож на тот, который я дал. Обратите внимание, что когда мы говорим, что это неконструктивно, мы интерпретируем слово конструктивно как рекурсивное / вычислимое, что является одной из школ конструктивизма.
Каве

2

Из «Заметки к лекции« Теория двумерности »и« Алгоритмический график »для учебника Мохаммада Таги Гаджиагайи, написанной Марейке Массов, Йенсом Шмидтом, Дарьей Шимурой и Сиамаком Тазари.

Каждое свойство минор-замкнутого графа можно охарактеризовать конечным набором запрещенных миноров.

К сожалению, их результат «по своей сути» неконструктивен, т. Е. Не существует алгоритма, который обычно мог бы определить, какие миноры следует исключить для данного свойства второстепенного графа. Кроме того, число запрещенных несовершеннолетних может быть большим: например, для графов, встраиваемых в тор, известно более 30 000 запрещенных несовершеннолетних, но список не полный.

[...]

Каждое второстепенное свойство графа может быть определено за полиномиальное время (даже в кубическом времени).


0

Алгоритмическая локальная лемма Ловаша - «алгоритмическая локальная лемма Ловаша дает алгоритмический способ построения объектов, которые подчиняются системе ограничений с ограниченной зависимостью. ... Однако лемма неконструктивна в том смысле, что она не дает никакого представления о том, как чтобы избежать плохих событий ". При некоторых предположениях / ограничениях на распределение построенный алгоритм дан Мозером / Тардосом [1]. локальная лемма Ловаша, похоже, имеет различные глубокие связи с теорией сложности, например, см. [2]

[1] Мозер, Тардос, Конструктивное доказательство общей локальной леммы Ловаша.

[2] Ловма Ловаша и локальная лемма и удовлетворенность. Гебауэр, Мозер, Шедер, Вельцль


Это другое чувство «конструктивный». Иногда теоретики сложности (ab) используют слово «конструктивный» для обозначения эффективно алгоритмического, и в этом контексте все, что не является эффективно алгоритмическим, называется неконструктивным. Это отличается от концепции конструктивного доказательства, намеченной в вопросе.
Каве

Ваше первое предложение вводит в заблуждение. Алгоритмическая LLL является полностью конструктивной в смысле алгоритма полиномиального времени. У оригинальной LLL было неконструктивное доказательство в смысле индуктивного аргумента в потенциально огромном пространстве вероятностей. Последующая работа над работой Мозера и Тардоса закрыла практически все разрывы между алгоритмической LLL и даже некоторым усилением LLL, см. Doi.acm.org/10.1145/1993636.1993669
Сашо Николов

Первоначальная лемма 1975 года была неконструктивной, и более поздние исследователи (десятилетия спустя) нашли конструктивные алгоритмы для особых случаев, но «практически все пробелы» - это не то же самое, что «все пробелы». Это полезный пример, чтобы показать, что не гарантируется, что неконструктивное доказательство существования всегда будет оставаться таким, то есть неконструктивность не всегда абсолютна и может быть «подвержена изменениям», и что дальнейшие / более поздние исследования могут закрыть пробелы, и что даже все пробелы, закрытые алгоритмом, могут быть тонкими / трудными для доказательства. Есть и другие примеры этого. Я привел решение Moser / Tardos.
vzn

1
все, что я говорю, это то, что то, как вы написали свое первое предложение, заставляет его выглядеть так, будто «алгоритмическая LLL» является «неконструктивной». В той цитате была ссылка на оригинальную LLL, но эта ссылка пропускается из-за того, где вы поместили эллипсы. Вы могли бы отредактировать, чтобы включить больше цитаты, чтобы это не сбивало с толку?
Сашо Николов

1
o / wi, я думаю, что ваш ответ только косвенно связан с темой, но хорошо, что некоторые теоремы с неконструктивными доказательствами также допускают конструктивные (а некоторые доказуемо нет, в зависимости от того, как вы определяете «конструктивный»). Кстати, одна проблема с дальнейшим конструктивным LLL состоит в том, что не ясно, как определить разумную вычислительную проблему во всех ситуациях, где применяется LLL
Сашо Николов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.