Un système linéaire pour une variante de SAT

Bonjour

me revoilà avec mes trucs et astuces pour approcher la question P=NP.

modestement, je propose sans preuve une méthode pour une variante simple.
J'ai rédigé cela ce matin puisqu'il pleut, en observant une biche tranquille dans le prés depuis la fenêtre de mon bureau.
Je vis désormais dans les Vosges à Gérardmer.

Pour cette "méthode", encore une fois, c'est programmé, longuement testé....et ça marche.

Peut-être que la simplicité de la méthode donnera des idées pour prouver des choses comme sa complétude....on sait jamais...

J'attends vos questions pour expliquer.

Réponses

  • Bon, j'explique un peu en partant du problème 3-SAT que tout le monde connait ici je pense

    1) Ce problème se réduit à ONE-IN-THREE-SAT en remplaçant chaque clause $C=(x\vee y\vee z)$ par $3$ ensembles :
    $$(\lnot x,a,b),(y,b,c),(\lnot z,c,d)$$
    où $a,b,c,d$ sont des nouvelles variables spécifiques à $C$.
    Le nouveau problème consiste à décider si chaque ensemble peut contenir exactement un littéral vrai.

    2) On peut ensuite éliminer les négations en introduisant pour chaque variable $x$ un ensemble $(x,x')$ où $x'$ est une nouvelle variable et en remplaçant tous les $\lnot x$ par $x'$.

    3) Pour ce nouveau problème que je nomme ONE-SAT dans le papier, je formule des conditions nécessaires en termes d'équations linéaires.
    On pourrait être tenté de travailler sur $Z/2Z$ mais alors $1+1+1=1$ fait que cela ne correspond plus au problème. Les solutions pour un ensemble à deux éléments sont $(0,1)$ ou $(1,0)$ et à trois éléments sont $(0,0,1),(0,1,0),(1,0,0)$ et pas $(1,1,1)$.

    4) Du coup on obtient des premières relations du style $x+y+z=1$ pour un ensemble $(x,y,z)$.

    5) Pour éviter d'avoir des multiplications, je code le produit $x_i.x_j$ par une nouvelle variable $x_{i,j}$. Pour $x_i$ et $x_j$ différents et dans le même ensemble, on a forcément $x_{i,j}=0$.

    6) Les autres relations sont des traductions du fait que pour un ensemble $(x_a,x_b,x_c)$ on a
    $$x_i=x_i.1=x_i.(x_a+x_b+x_c)=x_{i,a}+x_{i,b}+x_{i,c}$$

    7) La méthode de résolution du système me semble suffisante.
    Elle prend en compte le fait que si $x+y+z=0$ alors nécessairement $x=y=z=0$.
    C'est une façon polynomiale de faire de la résolution d'équation linéaires en supposant toutes les variables positives.
    C'est tout ce que j'ai trouvé comme méthode...mais peut-être qu'il y a mieux...mais il faut rester polynomial en temps.
  • Croyance personnelle: $P\neq NP$ est un énoncé du même type que "l'infini existe", etc. Ca ne le prouve pas, mais chercher à prouver $P=NP$ c'est un peu comme chercher une contradiction dans les théories maths usuelles qui admettent des propriétés puissantes sur l'infini (à commencer par Ramsey).

    Si tu as un algorithme qui revendique résoudre SAT en temps polynomial et de longueur $n$ tout compris, il est facile de voir que rajouter l'axiome "il se trompe pour au moins une instance de taille $n^n$ (par exemple) alors que rajouter son contraire, c'est mettre des trous dans l'espace total. Bien entendu cet algo dira de lui-même, quand soumis à la recherche d'un truc qui le fait foirer (qui est une SAT instance comme une autre), "ah msieur-dames, pas de solutions, je suis infaillible pour les problèmes de longueurs $n^n$, mais on voit bien quel type d'itération est possible.

    Je n'ai jamais trop cherché à transformer ça en preuve de $P\neq NP$, mais si un jour j'attaquais le problème, ce serait plutôt dans ce sens.
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Oui je connais ton point de vue et tes doutes et n'espère plus convaincre quiconque que P=NP

    Je vais désormais me contenter de proposer des méthodes très simples qui "marchent" sur les cas testés...jusqu'à preuve du contraire.

    C'est applicatif et pragmatique....et ça m'occupe.
  • Pas de souci!! Je vais lire, mais pas forcément très rapidement.
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
Connectez-vous ou Inscrivez-vous pour répondre.