TD - LIFL

publicité
AAC
UFR IEEA
TD Complexité de Problèmes 1 - P et NP
Quelques exemples de propriétés
Exercice 1 :
20052006
Master1 d'Informatique
NP
Sac à dos
Soit le problème de décision déni par:
Donnée du problème:
p1 , · · · , p n
n entiers v1 , · · · , vn
un entier c
un entier v
n entiers
positifs.
positifs.
Sortie: Oui, si il existe un remplissage du sac telle que la valeur du chargement soit au moins
v,
les objets
ne pouvant pas être fractionnés.
NP.
Q 1.Montrer qu'il est
Q 2. En utilisant la programmation dynamique, Proposer un algorithme en
Pouvez-vous en déduire que le problème est
0(n ∗ c)
qui résoud le problème.
P?
Exercice 2 : La plus courte super-suite commune.
Donnée:
n un entier
u1 , ..., un n mots l'alphabet est
k un entier, k < |u1 | + ... + |un |
xé
Sortie: oui, si il existe une supersuite de longueur
ui
soient sous-mots de
Q 1.Montrer que le problème est
Q 2. Dans le cas où
commune à
u
et
v
k
des
n
mots
ui
( i.e. un mot
u
de longueur
k
tel que les
u)
n = 2,
NP.
proposer un algorithme polynômial Supersuite(u,v) qui retourne une Supersuite
de longueur minimale.
Q 3. Soit l'algorithme suivant:
Super:=u_1;
pour i de 2 à n
Super=SuperSuite(Super,u_i)
Cet algorithme produit-il bien une supersuite des
ui ?
Produit-il toujours la supersuite la plus courte?
Exercice 3 : Le problème de recouvrement (SET_COVERING)
Un problème très classique est le problème de recouvrement (qui intervient pour le placement d'antennes, par
exemple):
Donnée: un ensemble E de cardinal
p
sous-ensembles de
un entier
E , (Ei )i=p
i=1 ,
n
qui forment un recouvrement de
E
(i.e.
E=
Sp
1 Ei ).
k
Sortie: oui, si il existe un recouvrement de cardinal
k
( i.e.
J ⊂ [1..p],
J de cardinal k tel que
S
i∈J
Ei = E );
non, sinon.
Q 1.Soit
E = [1..8], E1 = {1, 3, 5, 7}, E2 = {3, 5, 8}, E3 = {1, 2, 3}, E4 = {6, 7}, E5 = {4, 5}.
Y-a-t-il une
solution pour k=4? Pour k=3?
Q 2. Montrer que la propriété est NP. Quelle serait la complexité d'une méthode par recherche exhaustive?
Quelques Propriétés des classes
P
et
NP
Exercice 4 : Hiérarchie
Q 1. Montrer que
P ⊂ NP.
Q 2. Montrer que toute proriété
certain
NP
peut être décidée par un algorithme exponentiel (i.e. en
k
O(2n )
pour un
k ).
Exercice 5 : Clôture Booléenne
P est close par union, intersection et complémentaire.
N P est close par union, intersection.
N P n'est pas close par complémentaire, N P =
6 P.
Q 1. Montrer que la classe
Q 2. Montrer que la classe
Q 3.Montrer que si
Exercice 6 : La concaténation et l'Etoile
N P est close par concaténation et étoile.
P est close par concaténation.
(un peu plus dur...) Montrer que la classe P est close par étoile.
Q 1. Montrer que la classe
Q 2. Montrer que la classe
Q 3.
Divers
Exercice 7 : Test de Primalité
Soit l'algorithme:
//n est un entier naturel >=2
Booléen Composé(Entier n)
Pour i de 2 à racine-carree(n)
si i divise n
alors retourne Vrai
fin Pour;
retourne Faux
Q 1. Cet Algorithme est-il correct, i.e. retourne-t-il Vrai Ssi
n
est composé? est-il polynômial?
Q 2. Pouvez-vous montrer que la proprieté " être composé" est
Q 3. En fait, le test de primalité d'un entier a été montré
P
NP?
en 2002 après de longues années de recherche.
Qu'en déduire pour la propriété "être composé"?
Remarque pour les curieux: Jusque 2002, certains tests utilisés étaient supposés être polynômiaux mais ce
n'avait pas été prouvé. Le nouveau test est appelé le test de primalité d'Agarwal-Kayal-Saxena -"AKS primality
test"-, sa complexité étant en
O((log n)12+ ).
Des améliorations ont été proposées pour faire passer l'exposant
de 12 à 6 voire 4. (http://www.utm.edu/research/primes).
Avant 2002, on savait déjà que "être premier" était
NP,
donc était dans
co − N P ∩ N P .
certicat est un peu plus dicle à trouver que pour "être composé"; elle est basée sur le fait que
Ssi il existe
a
tel
an−1 ≡ 1(mod n)
mais
am 6≡ 1(mod n)
pour tout
La notion de
n
est premier
m, 1 ≤ m < n.
Exercice 8 : Erreur de raisonnement
Quelle est l'erreur dans le raisonnement suivant:
Toute formule booléenne peut être mise sous forme disjonctive; or tester la satisabilité d'une formule
booléenne sous forme disjonctive est polynômial.
Donc tester la satisabilité d'une formule booléenne est
polynômial.
Exercice 9 :
On a vu en cours que le 3-coloriage de graphes est NP. Que pensez-vous du 2-coloriage de graphes?
2
La théorie de l'information...version ludique
Exercice 10 : Les piles
On dispose de
simultanément
n piles, neuves ou hors d'usage. Le seul moyen pour les tester est un ... testeur qui teste
k piles: si le test est positif, elles sont toutes bonnes, sinon au moins l'une d'entre elles est hors
d'usage. On cherche à identier les bonnes.
Q 1. Que faut-il supposer sur le nombre de bonnes piles pour pouvoir les identier?
Q 2.Proposer un "algorithme pour résoudre le pb et montrer qu'il est optimal (dans le pire des cas).
Aide: Se restreindre au cas où il y a exactement
k
bonnes piles.
Exercice 11 : Les pièces
Soit le problème classique suivant: une mauvaise pièce se trouve parmi
n
pièces: on sait juste qu'elle n'a pas
le même poids mais aucun autre critère ne permet de la distinguer. On cherche à l'identier et à détemriner si
elle est plus légere ou plus lourde uniquement en utilsant une balance de Roberval. Montrer qu'on ne peut y
arriver en 3 pesées pour 13 pièces. Que se passe-til pour 12 pièces?
3
Téléchargement