Existe-t-il des preuves d'existence d'algorithmes non constructives?


47

Je me souviens que j’ai peut-être rencontré des références à des problèmes qui se sont révélés pouvoir être résolus avec une complexité particulière, mais sans aucun algorithme connu pour atteindre réellement cette complexité.

J'ai du mal à comprendre comment cela peut être le cas; à quoi ressemblerait une preuve non constructive de l’existence d’un algorithme.

Existe-t-il réellement de tels problèmes? Ont-ils beaucoup de valeur pratique?


11
algorithmes basés sur le théorème de Robertson-Seymour ? Ou plus simplement, utiliser PEM pour prouver qu’il existe un algorithme où nous ne savons pas lequel (arrêter le problème est décidément trivial pour chaque machine de Turing fixe, mais comment pouvons-nous trouver un algorithme résolvant le problème correctement sans résoudre (la version uniforme de)) le problème d’arrêt?) ps: qu’entendez-vous par "valeur pratique"?
Kaveh

6
Pourquoi, il y a aussi des exemples plus simples .
Raphaël

1
Raphael, il me semble que votre commentaire pourrait vraisemblablement devenir une réponse. Peut-être que vous (ou quelqu'un) pourriez essayer ceci?
John Sidles


Réponses:


33

Considérons la fonction (prise d' ici )

F(n)={10n se produit dans la représentation décimale de π0autre

Malgré les apparences, est calculable par l'argument suivant. SoitF

  1. se produit pour chaque n ou0nn
  2. il y a un pour que 0 k se produise mais pas pour 0 k + 1 .k0k0k+1

Nous ne savons pas où il est (encore), mais nous savons que avecFF={F,F0,F1,}

  1. etF(n)=1
  2. .Fk(n)=[nk]

Puisque , f est calculable - mais nous ne pouvons pas dire ce que f est.FREFF


2
Cette réponse est bonne, de même que les autres réponses. Il est évident que la question de jkff a plus d'une réponse, dans la mesure où il existe plusieurs technologies de preuve pouvant démontrer de manière non constructive l'existence d'un algorithme.
John Sidles

Cependant, je marque celui-ci comme "accepté", car il est de loin le plus simple et illustre bien l'idée fondamentale selon laquelle un algorithme non constructif peut être prouvé par l'existence.
jkff

@jkff Aussi simple que cela soit, c'est un excellent exercice pour les étudiants qui suivent des cours d'introduction au TCS. Il m'a fallu des semaines pour ajuster mon intuition / concept de calculabilité à la lumière de cette fonction.
Raphaël

Je serais prêt à parier un million de dollars que est la fonction 1 constante. Et je n'ai pas un million de dollars. F
Daniel McLaury

26

Ce n'est peut-être pas tout à fait ce que vous voulez dire, mais l' algorithme d'arbre de recouvrement minimal optimal de Seth Pettie et Vijaya Ramachandran est en quelque sorte non constructif.

La question de savoir s'il existe un algorithme déterministe pour calculer les arbres recouvrants minimaux en temps linéaire (signifiant ) est une question ouverte . Pettie et Ramachandran décrivent un algorithme qui calcule les MST en temps linéaire si un tel algorithme existe .O(n+m)

Intuitivement, leur algorithme réduit toute instance -vertex du problème de MST à O ( n / k ) les petits cas avec O ( k ) sommets dans le temps linéaire, où (disons) k = O ( log log log log log log log n ) . Ensuite, ils calculent l'arbre de comparaison optimal qui calcule l'arbre de recouvrement minimal de tout graphe k -vertex par énumération de la force brute; même si cela prend un temps quintuplement exponentiel en k , c'est seulement OnO(n/k)O(k)k=O(bûchebûchebûchebûchebûchebûchebûchen)kk heure. Enfin, ils résolvent les petites instances à l'aide de cet arbre de décision optimal.O(bûchebûchen)

En d’autres termes, Pettie et Ramachandran ne construisent un algorithme optimal de MST qu’indirectement, en construisant un algorithme qui construit un algorithme optimal de MST.


C'est super! BTW, leur algorithme correspond au meilleur temps d'exécution dans un modèle d'arbre de décision, non?
Sasho Nikolov

Oui c'est vrai!
Jeffe

2
D'une certaine manière, cela ressemble plus à une fonction d'ordre supérieur (c'est une fonction qui prend une autre fonction, et la preuve de sa complexité temporelle dépend de la complexité de l'entrée), plutôt qu'une preuve non constructive. J'entendrais par preuve non constructive tout ce qui évoque de manière cruciale la logique classique (LEM, DNE ou Peirce) dans la construction de la preuve de l'existence de l'algorithme, sans le fournir réellement. C'est quand même cool.
Copumpkin

13

Voici deux exemples.

  1. Certains algorithmes utilisant le théorème de Robertson-Seymour . Le théorème indique qu'il existe une obstruction finie pour chaque cas, mais ne permet pas de trouver un tel ensemble fini. Par conséquent, bien que nous puissions prouver que l'algorithme existe, sa déclaration explicite dépendra de l'ensemble d'obstruction finie que nous ne savons pas trouver. En d'autres termes, nous savons qu'il existe un algorithme, mais nous ne savons pas (encore) comment en trouver un.

  2. Un exemple plus fort, bien que moins naturel, consiste essentiellement à utiliser PEM ou des axiomes non constructifs similaires. Ceci est d'autant plus fort que nous pouvons prouver que l'existence constructive d'un algorithme impliquerait un axiome non constructif (similaire aux contre-exemples faibles de Brouwer ). Un tel exemple est plus fort, car il dit non seulement que nous ne connaissons actuellement aucun algorithme explicite (ni aucune méthode algorithmique permettant de le trouver), mais qu’il n’ya aucun espoir de le faire.

    À titre d'exemple, nous pouvons utiliser PEM pour prouver qu'un algorithme existe alors que nous ne savons pas lequel et un moyen constructif de le trouver impliquerait un axiome non constructif. Laissez-moi vous donner un exemple simple:

    Arrêter le problème est décidément trivial pour chaque machine de Turing fixe (chaque TM s’arrête ou ne s’arrête pas, et dans chaque cas, il existe un TM qui fournit la bonne réponse), mais comment pouvons-nous trouver un algorithme résolvant le problème correctement sans solution ( la version uniforme de) le problème de halte?

    Plus formellement, nous ne pouvons pas prouver de manière constructive qui donne une TM , il y a un TM H T qui décide le problème de l' arrêt pour M . Plus formellement, l'énoncé suivant ne peut être prouvé de manière constructive:MHTM

    eN FN [({F}( )=0{e})({F}( )=1{e})]

    Ici est le TM avec le code e (dans une représentation fixe de mémoires de traduction), { e } moyens { e } arrêts, et { f } moyens { f } ne pas arrêter.{e}e{e}{e}{F}{F}


1
Qu'est-ce qu'une "obstruction finie pour chaque cas"? Je pense que vous voulez dire « obstruction finie ensemble pour chaque ensemble infini de graphiques fermé mineur » reste est pas bon (je modifié votre réponse pour le corriger , mais semble rejetais, je préfère ne pas répéter cela).
Saeed

8

Oui.

À un moment donné en (1), le théorème de dichotomie d'homomorphisme de graphes de comptage à pondération complexe pour toute taille de domaine fini, Cai, Chen et Lu prouve seulement l'existence d'une réduction polynomiale de temps entre deux problèmes de comptage via interpolation polynomiale. Je ne connais aucune valeur pratique pour un tel algorithme.

Voir la section 4 de la version arXiv. Le lemme en question est le lemme 4.1, appelé le "premier lemme d'épinglage".

Une façon de rendre cette preuve constructive est de prouver la version pondérée complexe d’un résultat de Lovasz , à savoir:

Pour toutes les , Z H ( G , w , i ) = Z H ( G , w , j ) si et seulement si il existe un automorphisme f de G tel que f ( i ) = j .gZH(G,w,i)=ZH(G,w,j)fgF(je)=j

Ici, est un sommet dans H , i et j sont des sommets dans G , et Z H ( G , w , i ) est la somme de tous les homomorphismes de graphes à pondération complexe de G à H avec la restriction supplémentaire que i doit être cartographié. à w .wHjejgZH(g,w,je)gHjew

(1) Jin-Yi Cai, Xi Chen et Pinyan Lu, Homomorphismes de graphes à valeurs complexes: un théorème de dichotomie ( arXiv ) ( ICALP, 2010 ).


7

Quelques premiers résultats de la fin des années 80:

Extrait du résumé du deuxième article:

Les avancées fondamentales récentes de la théorie des graphes ont toutefois mis à la disposition de nouveaux outils puissants non constructifs pouvant garantir l'appartenance à P. Ils ne révèlent pas non plus si un tel algorithme de décision peut être utile à la construction d’une solution. Nous passons brièvement en revue et illustrons l’utilisation de ces outils, et discutons de la tâche apparemment fastidieuse de trouver les algorithmes de décision polynomiaux promis lorsque ces nouveaux outils s’appliquent.


6

Un exemple d'une famille infinie de problèmes (de valeur pratique discutable) pour lesquels nous pouvons montrer:

  1. Pour chaque problème, il existe un algorithme pour le résoudre.
  2. Qu'il n'y a aucun moyen de construire ces algorithmes (en général).

En d'autres termes, une preuve irréfutable non constructive. Notre famille de problème (de cette question ) pour chaque machine de Turing :M

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

  1. M

  2. PMP(M)LMMM|M||M|P(M)(M)P


2
Mignonne. Mais la valeur pratique de ceci peut être moins discutable que vous ne le pensez: c'est une version décisionnelle du problème de trouver le programme le plus court avec une sortie donnée, à savoir une compression optimale des données.
David Eppstein

1
Je pense que l'exemple est similaire à celui que j'ai donné. Notez que lorsque nous disons que ce n'est pas constructif, nous interprétons le mot constructif comme récursif / calculable, ce qui est l' une des écoles du constructivisme.
Kaveh

2

Extrait de "Théorie de la bidimensionnalité et de la théorie mineure du graphique algorithmique" pour le didacticiel de MohammadTaghi Hajiaghayi, de Mareike Massow, Jens Schmidt, Daria Schymura et Siamak Tazari.

Chaque propriété de graphique mineur-fermé peut être caractérisée par un ensemble fini de mineurs interdits.

Malheureusement, leur résultat est «intrinsèquement» non constructif, c'est-à-dire qu'aucun algorithme ne permet généralement de déterminer quels mineurs doivent être exclus pour une propriété de graphe mineure fermée donnée. De plus, le nombre de mineurs interdits peut être élevé: par exemple, pour les graphes intégrables sur le tore, plus de 30 000 mineurs interdits sont connus, mais la liste est incomplète.

[...]

Chaque propriété de graphique mineur-fermé peut être décidée en temps polynomial (même en temps cubique).


0

Lemme local algorithmique de Lovász - "le lemme local algorithmique de Lovász fournit un moyen algorithmique de construire des objets qui obéissent à un système de contraintes avec une dépendance limitée. pour éviter les mauvais événements. " Sur certaines hypothèses / limitations de la distribution, un algorithme construit est donné par Moser / Tardos [1]. le lemme local de Lovasz semble avoir plusieurs liens profonds avec la théorie de la complexité, par exemple, voir [2]

[1] Une preuve constructive de la lemma locale de Lovász par Moser, Tardos

[2] La lemme et la satisfaction locales de Lov´asz Gebauer, Moser, Scheder, Welzl


C'est un sens différent de "constructif". Parfois, les théoriciens de la complexité (ab) utilisent le mot "constructif" pour désigner efficacement algorithmique, et dans ce contexte, tout ce qui n'est pas efficacement algorithmique est qualifié de non constructif. Ceci est différent de la notion de preuve constructive visée dans la question.
Kaveh

Votre première phrase est trompeuse. La LLL algorithmique est une méthode entièrement constructive, au sens d'un algorithme polynomial. La LLL d'origine contenait une preuve non constructive en tant qu'argument inductif sur un espace de probabilité potentiellement énorme. Les travaux de suivi sur le document de Moser et Tardos ont permis de combler pratiquement tous les écarts entre l'algorithme LLL et même un renforcement de celui-ci, voir doi.acm.org/10.1145/1993636.1993669
Sasho Nikolov le

le lemme original de 1975 était non constructif et des chercheurs (des décennies plus tard) ont trouvé des algorithmes constructifs pour des cas particuliers, mais "pratiquement toutes les lacunes" n'est pas la même chose que "toutes les lacunes". c’est un exemple utile pour montrer qu’il n’est pas garanti qu’une preuve d’existence non constructive soit toujours conservée, c’est-à-dire que la non-structure n’est pas toujours absolue et peut être "sujette à changement", et que des recherches ultérieures peuvent combler les lacunes, et même si tous les écarts sont comblés par un algorithme pouvant être subtil / difficile à prouver. il y a d'autres exemples de cela. J'ai cité la solution Moser / Tardos.
vzn

1
tout ce que je dis, c'est que la façon dont vous avez écrit votre première phrase donne l'impression que "l'algorithme LLL" est "non constructif". Dans cette citation, il y avait une référence à la LLL d'origine, mais cette référence est ignorée à cause de l'endroit où vous placez les ellipses. Pourriez-vous éditer pour inclure plus de la citation afin qu'elle ne soit pas déroutante?
Sasho Nikolov

1
Nous pensons que votre réponse n’est liée que de manière tangentielle au sujet, mais c’est un bon point que certains théorèmes avec des preuves non constructives admettent aussi des constructifs (et que certains ne le prouvent pas, selon votre définition du mot «constructif»). Un autre problème à prendre encore plus loin avec la LLL constructive est qu'il n'est pas clair comment définir un problème de calcul raisonnable dans toutes les situations où la LLL s'applique
Sasho Nikolov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.