TIPE - Free

publicité
TIPE :
Quelques définitions à placer dans le TIPE :
NP : De façon équivalente, c'est la classe des problèmes qui admettent un algorithme
polynomial capable de tester la validité d'une solution du problème, mais pour lequel il
n’existe pas forcément d’algorithme polynomial qui permettent de trouver une solution.
Alors que P : on connaît un algorithme qui permet de trouver une solution en temps
polynomial.
http://fr.wikipedia.org/wiki/NP_complet#Classe_NP_et_classe_CoNP_.28Compl.C3.A9mentaire_de_NP.29
http://fr.wikipedia.org/wiki/21_probl%C3%A8mes_NP-complets_de_Karp
NP-complet :
On dit qu'un problème est NP-complet si


il est dans NP, et
il est NP-difficile
Un problème est NP-difficile si ce problème est au moins aussi difficile que tous les
problèmes dans NP.
Formellement on définit une notion de réduction : soient ∏ et ∏' deux problèmes ; une
réduction de ∏' à ∏ est un algorithme (ou une machine) d'une complexité appartenant à P qui
transforme le problème ∏' en le problème ∏.
Ainsi, si l'on a un algorithme pour résoudre ∏, on sait aussi résoudre ∏' , mais de plus, si la
complexité de ∏ est au moins celle de la classe NP, on peut dire que ∏ est donc au moins
aussi difficile à résoudre que ∏' .
∏ est alors NP-difficile si pour tout problème ∏' de NP, ∏' se réduit à ∏.
Ainsi, si on sait résoudre un problème NP-complet en temps polynomial, on peut résoudre
(grâce à des réductions à partir de ce problème) tous les problèmes NP en un temps
polynomial. OK !
Problème à traiter :
Montrer que le problème des n reines est équivalent au problème de couverture exacte.
Idée de touche personnelle (non encore réalisée) : faire un algorithme (certes ultraclassique, mais mieux que rien …) en Maple ou en Caml qui résoudrait le problème des
n reines. But Montrer que sa complexité n’est pas polynomiale.
On représente la case ligne i colonne i par LiCi/k. On note k=1 s’il y a une reine, 0 sinon.
 Montrons que n reines <-> EXACT COVER :
Couverture exacte : Étant donné un univers U d'éléments et une collection
d'ensembles,
une couverture exacte est une collection de sous-ensembles
de
dans U est aussi un élément dans exactement un des ensembles de
tel que tout élément
.
En d'autres termes, une couverture exacte est une sous-collection
de U : les ensembles dans
sont disjoints et leur union est U.
de
qui est une partition
Étant donné un univers U d'éléments et une collection d'ensembles, le problème de la
couverture exacte consiste en trouver une couverture exacte
ou bien de déterminer qu'il
n'en existe pas.
La matrice dans l'exemple 3 ci-dessus peut être réinterprété pour représenter la relation
binaire "est contenu dans" entre l'ensemble X = {1, 2, 3, 4, 5, 6} de 6 éléments et la collection
Y = {A, B, C, D, E, F, G} de 7 ensembles :







A = {1, 2}
B = {5, 6}
C = {4, 5}
D = {1, 2, 3}
E = {3, 4}
F = {4, 5}
G = {1, 3, 5, 6}
La même représentation matricielle comme dans l'exemple 3 s'applique ici, mais elle est
étiquetée différemment :
A B C D E F G
1 1 0 0 1 0 0 1
2 1 0 0 1 0 0 0
3 0 0 0 1 1 0 1
4 0 0 1 0 1 1 0
5 0 1 1 0 0 1 1
6 0 1 0 0 0 0 1
Comme dans l'exemple 3, une solution consiste à sélectionner les 2e, 4e et 6e lignes de la
matrice :
A B C D E F G
2 1 0 0 1 0 0 0
4 0 0 1 0 1 1 0
6 0 1 0 0 0 0 1
Mais à la différence de l'exemple 3, l'interprétation ici montre que la solution est l'ensemble
des éléments X* = {2, 4, 6} tel que chaque ensemble dans Y contient exactement un élément
de X* :







A = {1, 2}
B = {5, 6}
C = {4, 5}
D = {1, 2, 3}
E = {3, 4}
F = {4, 5}
G = {1, 3, 5, 6}
En d'autre termes, la solution est un ensemble intersectant exact. Vraiment, les problèmes de
la couverture exacte et les problèmes d'ensemble intersectant exact sont duaux l'un de l'autre,
c.a.d. essentiellement les mêmes.
On définit des contraintes :
1) Une dame par Ligne : {LkC1/a,LkC2/b,LkC3/c,LkC4/d,LkC5/e,LkC6/f,LkC7/g,LkC8/h},
où un des réels (a,b,c,d,e,f,g,h) est égal à 1 et les autres à 0, et où k appartient à l’ensemble
{1,2,3,4,5,6,7,8}.
2) Une dame par Colonne :
{L1Ck/a,L2Ck/b,L3Ck/c,L4Ck/d,L5Ck/e,L6Ck/f,L7Ck/g,L8Ck/h}, où un des réels
(a,b,c,d,e,f,g,h) est égal à 1 et les autres à 0, et où k appartient à l’ensemble {1,2,3,4,5,6,7,8}
3) Une dame sur la Diagonale principale :
{L1C1/a,L2C2/b,L3C3/c,L4C4/d,L5C5/e,L6C6/f,L7C7/g,L1C8/h}, où un des réels
(a,b,c,d,e,f,g,h) est égal à 1 et les autres à 0.
4) Une dame sur la Diagonale secondaire :
{L8C1/a,L7C2/b,L6C3/c,L5C4/d,L4C5/e,L3C6/f,L2C7/g,L1C8/h}, où un des réels
(a,b,c,d,e,f,g,h) est égal à 1 et les autres à 0.
A partir de là, on retombe sur un problème de couverture exacte :
 Premièrement, la réduction : complexité en n^2 pour 1), n^2 pour 2), n pour 3 et n
pour 4.
 Deuxièmement, on a bien réduit au problème de couverture exacte : trouver une
solution au problème des huits reines consiste à trouver un ensemble de points
vérifiant une contrainte 1), une contrainte 2), une contrainte 3) et une contrainte 4).
Donc OK EXACT COVER <- Problème des huits reines.
Téléchargement