Existem provas de existência de algoritmos não construtivos?


47

Lembro-me de que talvez eu tenha encontrado referências a problemas comprovadamente solucionáveis ​​com uma complexidade específica, mas sem um algoritmo conhecido para realmente atingir essa complexidade.

Eu luto em compreender como isso pode ser o caso; como seria uma prova não construtiva da existência de um algoritmo.

Existem realmente esses problemas? Eles têm muito valor prático?


11
algoritmos baseados no teorema de Robertson-Seymour ? Ou, mais simplesmente, usar o PEM para provar que existe um algoritmo em que não sabemos qual (o problema de parada é trivialmente decidível para cada máquina de Turing fixa, mas como podemos encontrar um algoritmo resolvendo o problema corretamente sem resolver (a versão uniforme do) o problema da parada?) ps: o que você quer dizer com "valor prático"?
Kaveh

6
Por que, também existem exemplos mais simples .
Raphael

1
Raphael, parece-me que seu comentário pode ser plausivelmente atualizado para uma resposta. Talvez você (ou alguém) possa tentar isso?
31412 John Sidles


2
Isto está na Wikipedia agora .
Raphael

Respostas:


33

Considere a função (retirada daqui )

f(n)={10n occurs in the decimal representation of π0else

Apesar da aparência, é computável pelo seguinte argumento. Ouf

  1. n0n ocorre para cada oun
  2. existe um para que ocorra, mas não.0 k 0 k + 1k0k0k+1

Ainda não sabemos qual é, mas sabemos que comfF={f,f0,f1,}

  1. f(n)=1 e
  2. fk(n)=[nk] .

Como , é computável - mas não podemos dizer o que é. f fFREff


2
Essa resposta é boa, assim como as outras respostas. Evidentemente, a pergunta de jkff tem mais de uma resposta, no sentido de que existem várias tecnologias de prova que podem demonstrar não construtivamente a existência de algoritmos.
John Junles

No entanto, estou marcando este como "aceito" porque é de longe o mais simples e demonstra a idéia central de como uma prova de existência de algoritmo não construtivo pode surgir.
Jkff 30/07

@jkff Por mais simples que seja, é um ótimo exercício para estudantes de cursos introdutórios do TCS. Levei semanas para ajustar minha intuição / conceito de computabilidade à luz dessa função.
Raphael

Eu estaria disposto a apostar um milhão de dólares que é a função 1 constante. E eu não tenho um milhão de dólares. f
Daniel McLaury

26

Pode não ser exatamente o que você quer dizer, mas o algoritmo mínimo ideal de spanning tree de Seth Pettie e Vijaya Ramachandran é, em certo sentido, não construtivo.

É uma questão em aberto se existe um algoritmo determinístico para calcular árvores abrangentes mínimas em tempo linear (significando ). Pettie e Ramachandran descrevem um algoritmo que calcula MSTs em tempo linear, se esse algoritmo existir .O(n+m)

Intuitivamente, o algoritmo deles reduz qualquer instância vertex do problema MST para instâncias menores com vértices em tempo linear, onde (digamos) . Em seguida, eles calculam a árvore de comparação ideal que calcula a árvore de abrangência mínima de qualquer gráfico -vertex por enumeração de força bruta; mesmo que isso leve um tempo exponencial quintuplicado em , é apenas o tempo . Finalmente, eles resolvem as pequenas instâncias usando essa árvore de decisão ideal.O ( n / k ) O ( k ) k = O ( log de log log log log log log n ) k k O ( log log n )nO(n/k)O(k)k=O(logloglogloglogloglogn)kkO(loglogn)

Em outras palavras, Pettie e Ramachandran constroem um algoritmo MST ideal apenas indiretamente, construindo um algoritmo que constrói um algoritmo MST ideal.


Isso é legal! BTW, o algoritmo deles corresponde ao melhor tempo de execução em um modelo de árvore de decisão, certo?
Sasho Nikolov 29/07/2012

Sim está certo!
29412 Jefferson

2
Em certo sentido, isso parece mais uma função de ordem superior (é uma função que assume outra função, e a prova de sua complexidade de tempo depende da complexidade da entrada) do que uma prova não construtiva. Eu consideraria a prova não construtiva como algo que invoque crucialmente a lógica clássica (LEM, DNE ou Peirce) na construção de sua prova da existência do algoritmo, sem realmente fornecê-lo. Ainda é legal, no entanto.
Copumpkin

13

Aqui estão dois exemplos.

  1. Alguns algoritmos usando o teorema de Robertson-Seymour . O teorema afirma que existe uma obstrução finita para cada caso, mas não fornece uma maneira de encontrar um conjunto finito. Portanto, embora possamos provar que o algoritmo existe, a declaração explícita do algoritmo dependerá do conjunto de obstruções finitas que não sabemos como encontrar. Em outras palavras, sabemos que existe um algoritmo, mas ainda não sabemos como encontrar um.

  2. Um exemplo mais forte, embora menos natural, é usar essencialmente PEM ou axiomas não construtivos semelhantes. Isso é mais forte no sentido de que podemos provar que a existência construtiva de um algoritmo implicaria um axioma não construtivo (semelhante aos fracos contra-exemplos de Brouwer ). Esse exemplo é mais forte porque não apenas diz que não conhecemos atualmente nenhum algoritmo explícito (ou qualquer maneira algorítmica de encontrar um), mas também que não há esperança de fazê-lo.

    Como exemplo, podemos usar o PEM para provar que existe um algoritmo, enquanto não sabemos qual e uma maneira construtiva de encontrar um implicaria um axioma não construtivo. Deixe-me dar um exemplo simples:

    O problema da parada é trivialmente decidível para cada máquina de Turing fixa (cada TM pára ou não para e, em cada caso, existe uma TM que gera a resposta certa), mas como podemos encontrar um algoritmo que resolva o problema corretamente sem resolver ( a versão uniforme do) o problema da parada?

    Mais formalmente, não podemos provar construtiva que, dada uma TM , há uma TM que decide o problema da parada para . Mais formalmente, a seguinte declaração não pode ser comprovada construtivamente:MHTM

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

    Aqui é a TM com o código (em alguma representação fixa das TMs), significa pára e significa não para.{e}e{e}{e}{f}{f}


1
O que é "obstrução finita para cada caso"? Eu acho que você quer dizer "obstrução finito set para cada conjunto infinito de menor fechada gráficos " também restante não é bom (eu editei sua resposta para corrigi-lo, mas parece rejeitado, eu prefiro não repetir isso).
Saeed

8

Sim.

Em um ponto em (1), o teorema da dicotomia com gráfico de contagem ponderada complexa para qualquer tamanho de domínio finito, Cai, Chen e Lu apenas provam a existência de uma redução no tempo polinomial entre dois problemas de contagem por interpolação polinomial. Não conheço nenhum valor prático para esse algoritmo.

Consulte a Seção 4 da versão do arXiv. O lema em questão é o lema 4.1, chamado de "primeiro lema de fixação".

Uma maneira de tornar essa prova construtiva é provar a versão complexa de um resultado de Lovasz , a saber:

Para todo , se existir um automorfismo de tal que .GZH(G,w,i)=ZH(G,w,j)fGf(i)=j

Aqui, é um vértice em , e são vértices em , e é a soma sobre todos os homomorphisms gráfico complexas-ponderada de para com a restrição adicionou que devem ser mapeadas de .wHijGZH(G,w,i)GHiw

(1) Jin-Yi Cai, Xi Chen e Pinyan Lu, homomorfismos gráficos com valores complexos: um teorema da dicotomia ( arXiv ) ( ICALP 2010 )


7

Alguns resultados iniciais do final dos anos 80:

Do resumo do segundo item:

Avanços fundamentais recentes na teoria dos grafos, no entanto, disponibilizaram novas e poderosas ferramentas não-construtivas que podem ser aplicadas para garantir a associação ao P. Essas ferramentas são não-construtivas em dois níveis distintos: elas não produzem o algoritmo de decisão, estabelecendo apenas a finitude de um conjunto de obstruções. , nem revelam se esse algoritmo de decisão pode ajudar na construção de uma solução. Analisamos e ilustramos brevemente o uso dessas ferramentas e discutimos a tarefa aparentemente formidável de encontrar os algoritmos promissores de decisão em tempo polinomial quando essas novas ferramentas se aplicam.


6

Um exemplo de uma família infinita de problemas (de valor prático questionável) para os quais podemos mostrar:

  1. Que para cada problema existe um algoritmo para resolvê-lo.
  2. Que não há como construir esses algoritmos (em geral).

Em outras palavras, uma prova comprovadamente não construtiva. Nossa família de problemas ( desta pergunta ) para cada máquina de Turing :M

LM={M|L(M)=L(M) and |M||M|}

  1. Para cada esse é um conjunto finito e, portanto, decidível.M

  2. Se tivéssemos uma prova construtiva (em um sistema formal adequado) que, dada a descrição de uma Máquina de Turing gerasse uma Máquina de Turing que decidisse seguida, duas máquinas e (com ), então poderíamos testar a igualdade dos idiomas reconhecidos por essas máquinas executando . Uma impossibilidade pelo teorema de Rice; assim, uma prova construtiva não existe.H P ( M ) G M M M ' | M | | M '| P ( M ) ( M ') PPMP(M)LMMM|M||M|P(M)(M)P


2
Fofa. Mas o valor prático disso pode ser menos questionável do que você pensa: esta é uma versão de decisão do problema de encontrar o programa mais curto com uma saída específica, ou seja, compactação de dados ideal.
David Eppstein

1
Eu acho que o exemplo é semelhante ao que eu dei. Observe que, quando dizemos que não é construtivo, estamos interpretando a palavra construtivo como recursiva / computável, que é uma das escolas do construtivismo.
Kaveh

2

De "Teoria da bidimensionalidade e notas de palestra de teoria menor de algoritmos algorítmicos", para o Tutorial de MohammadTaghi Hajiaghayi, de Mareike Massow, Jens Schmidt, Daria Schymura e Siamak Tazari.

Cada propriedade de gráfico fechado menor pode ser caracterizada por um conjunto finito de menores proibidos.

Infelizmente, seu resultado é “inerentemente” não construtivo, ou seja, não existe um algoritmo que possa geralmente determinar quais menores devem ser excluídos para uma determinada propriedade de gráfico fechado menor. Além disso, o número de menores proibidos pode ser alto: por exemplo, para gráficos incorporados no toro, mais de 30.000 menores proibidos são conhecidos, mas a lista está incompleta.

[...]

Cada propriedade de gráfico fechado menor pode ser decidida em tempo polinomial (mesmo em tempo cúbico).


0

Lema local algorítmico de Lovász - "o lema algorítmico local de Lovász fornece uma maneira algorítmica de construir objetos que obedecem a um sistema de restrições com dependência limitada. ... No entanto, o lema não é construtivo, pois não fornece nenhuma percepção de como para evitar os maus eventos ". Em algumas suposições / limitações na distribuição, um algoritmo construído é dado por Moser / Tardos [1]. o lema local de Lovasz parece ter várias conexões profundas com a teoria da complexidade, por exemplo, veja [2]

[1] Uma prova construtiva do lema local geral de Lovász por Moser, Tardos.

[2] Lema local e satisfação de Lov'asz Gebauer, Moser, Scheder, Welzl


É um sentido diferente de "construtivo". Às vezes, os teóricos da complexidade (ab) usam a palavra "construtivo" para significar eficientemente algorítmico e, nesse contexto, qualquer coisa que não seja eficientemente algorítmica é referida como não construtiva. Isso é diferente da noção de prova construtiva pretendida na pergunta.
Kaveh

Sua primeira frase é enganosa. A LLL algorítmica é a é inteiramente construtiva, no sentido de um algoritmo de tempo polinomial. A LLL original tinha uma prova não construtiva no sentido de ser um argumento indutivo sobre um espaço de probabilidade potencialmente enorme. Acompanhamento dos trabalhos a uma tese de Moser e Tardos fechou praticamente todas as lacunas entre a LLL algorítmica e até mesmo alguns fortalecimento da LLL, consulte doi.acm.org/10.1145/1993636.1993669
Sasho Nikolov

o lema original de 1975 era não-construtivo e pesquisadores posteriores (décadas depois) encontraram algoritmos construtivos para casos especiais, mas "praticamente todas as lacunas" não é o mesmo que "todas as lacunas". é um exemplo útil para mostrar que não é garantido que uma prova de existência não construtiva permanecerá sempre assim, ou seja, a não-construtividade nem sempre é absoluta e pode estar "sujeita a alterações", e que pesquisas posteriores / posteriores podem fechar lacunas e que, mesmo que todas as lacunas são fechadas por um algoritmo podem ser sutis / difíceis de provar. existem outros exemplos disso. Eu citei a solução Moser / Tardos.
vzn

1
Tudo o que estou dizendo é que a maneira como você escreveu sua primeira frase faz com que pareça que a "LLL algorítmica" é "não construtiva". Nessa citação, havia uma referência à LLL original, mas essa referência é ignorada por causa de onde você coloca as elipses. você pode editar para incluir mais citações, para que não sejam confusas?
Sasho Nikolov 31/07/2012

1
Acho que sua resposta está tangencialmente relacionada ao tópico, mas é um bom argumento que alguns teoremas com provas não construtivas também admitam outras construtivas (e algumas provavelmente não, dependendo de como você define "construtivo"). btw um problema com a tomar ainda mais a LLL construtiva é que não está claro como definir um problema computacional razoável em todas as situações em que o LLL se aplica
Sasho Nikolov
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.