• Aucun résultat trouvé

´ECOLE POLYTECHNIQUE F´ED´ERALE DE LAUSANNE Section d’Informatique et de Syst`emes de Communication Corrig´e de la s´erie 13

N/A
N/A
Protected

Academic year: 2022

Partager "´ECOLE POLYTECHNIQUE F´ED´ERALE DE LAUSANNE Section d’Informatique et de Syst`emes de Communication Corrig´e de la s´erie 13"

Copied!
3
0
0

Texte intégral

(1)

Algorithmique - Semestre d’Automne 2011/2012

ECOLE POLYTECHNIQUE F´´ ED´ERALE DE LAUSANNE Section d’Informatique et de Syst`emes de Communication

Corrig´e de la s´erie 13 19 Dec. 2011

1. La taille de l’input a) log2(n).

b) n2.

c) ⌈log2(1000)⌉n = 10n. (On peut aussi faire l´eg`erment mieux, en repr´esentant les entiers a1, . . . , an comme un grand entierPn

i=11000i1ai, ce qui donne ⌈log2(1000)n⌉.) d) n2·log2(201 + 1) =O(n2).

Explication : On an2 valeurs dans la matrice d’adjacence, pour chaque valeur on a besoin de log2(201 + 1), bits : 201 pour les valeurs possibles de −100 `a 100 et une valeur de plus pour codifier le fait qu’il n’y a pas d’arˆete entre les deux sommets.

2. R´eduction polynomiale

a) Supposons que G= (V, E), et soitu le sommet ajout´e pour obtenir f1(G). Ainsi f1(G) = (V1, E1) o`uV1=V ∪ {u}, et∀v∈V1 : (u, vi),(vi, u)∈E1.

⇒. Supposons que G contient une clique S ⊆ V de taille ≥ k. Puisque u est connect´e `a tous les autres sommet,

S∪ {u} ⊆V1

forme une clique de taille |S|+ 1≥k+ 1.

⇐. Supposons quef1(G) contient une clique S⊆V1 de taille≥k+ 1. Nous distinguons 2 cas :

•Cas 1 :u /∈S. Dans ce cas nous avonsS ⊆V, et donc cette clique de taille≥k+ 1 est aussi dansG.Gcontient donc bien une clique de taille ≥k.

• Cas 2 : u ∈ S. Si nous retirons u de la clique nous obtenons une clique de taille

|S| −1, donc de taille ≥ k. puisque tous les sommets de V1 sauf u sont aussi dans V, S− {u} ⊆V forme une clique de taille ≥k dans le grapheG.

b) Nous ajoutonsasommetsu1, . . . ua, qui sont connect´es `a tous les autres sommets (et aussi connect´e entre eux). Soit U = {u1, . . . , ua}. Formellement si G = (V, E) alors fa(G) = (Va, Ea) o`u

Va = V ∪U

Ea = E ∪ (Va×U) ∪ (U×Va) ∪ (Va×Va)

Nous pouvons montrer de mani`ere identique au point a) queGcontient une clique de taille

≥k si et seulement sifa(G) contient une clique de taille≥k+a.

c) Nous voyons d’abord que

na=|Va|=|V|+a=m+a.

1

(2)

Algorithmique - Semestre d’Automne 2011/2012

Nous savons que Gcontient une clique de taille≥k si et seulement sifa(G) contient une clique de taille ≥k+a. Nous voulons donc choisiratel quena/2 =k+a.

na

2 =k+a ⇐⇒ m+a2 =k+a

⇐⇒ m+a= 2k+ 2a

⇐⇒ a=m−2k Puisque k≤m/2, nous voyons que cette valeur est ≥0.

d) Il nous reste `a couvrir le cas o`u k > m/2. Nous construisons le graphe h(G) en ajoutant

`

a V 2k−m sommets sans aucune arˆete. Formellement,h(G) = (V, E) avec V = V ∪ {w1, . . . , w2k−m}

E = E.

Puisque les nouveaux sommets n’ont pas d’arˆetes, il est clair que Gcontient une clique de taille ≥k si et seulement sih(G) contient une clique de taille≥k.

Ainsi la r´eduction est la suivante : f(G, k) =

fm−2k(G) si k≤ m2 h(G) sinon

3. SAT a) Non.

b) x1= FALSE, x2 = FALSE, x3 = TRUE.

c) Non.

d) Un input consiste enmclauses. Laj´emeclause contientkj litt´eraux, elle aura donc comme taille O(kj) : pour repr´esenterλ1∨. . .∨λkj il faut juste indiquer ce que valent chacun des kj litt´eraux (les valeurs possibles sontx1, . . . , xn, x1, . . . , xn).

Donc la taille totale de l’input est O

m

X

j=1

kjlogn

=O m·klogn

, o`u k= max

j kj.

e) Il faut trouver une preuve v´erifiable en temps polynomial. La preuve est une attribution satisfaisante, il est clair qu’on peut v´erifier qu’une attribution est satisfaisante en temps polynomial : il faut faire≤m·(k−1) op´erations OR (∨), etm−1 op´erations AND (∧).

f) Puisque SAT ∈ NP (question pr´ec´edente), si P=NP on aura SAT∈ P. Donc il existe un algorithme qui r´esoud SAT en temps polynomial. Appelons cet algorithme A. Donc on donne `aA comme input une formule CNFF, et il retournera TRUE si F est satisfaisable et FALSE sinon (et son temps est polynomial en la taille de F). Nous allons utiliser A pour construire l’algorithme dont nous avons besoin.

On commence par donner comme input `aA la formuleF originale. Si Aretourne FALSE nous savons que F n’est pas satisfaisable. Sinon nous savons qu’il existe une attribution satisfaisante, il nous faut donc la trouver. L’id´ee est d’utilise A pour verifier (en temps polynomial) s’il existe une attribution satisfaisante avecx1= TRUE ou avecx1 = FALSE.

2

(3)

Algorithmique - Semestre d’Automne 2011/2012

A retournera forc´ement TRUE dans au moins un des 2 cas (puisque nous savons que F est satisfaisable). Si par exemple A retourne TRUE quand x1 = TRUE, nous posons x1= TRUE et faisons de mˆeme avecx2, x3, . . . , xn.

Quel est l’input exact qu’il faut donner `a A pour savoir s’il existe une attribution satis- faisante avecx1 = TRUE ? Il faut donner une version modifi´ee deF : Toutes les clauses qui contiennentx1 peuvent ˆetre enlev´ees (puisqu’elles sont toutes vraies quelles que soitent les valeurs dex2, . . . , xn), et nous pouvons enleverx1 de toutes les clauses qui le contiennent, puisque

λ1∨. . .∨λ∨x1 = λ1∨. . .∨λ si x1= FALSE.

Ainsi pour obtenir cette version modifi´ee F deF on enl`eve certaines clauses, et on enl`eve certains litteraux dans d’autres clauses, la taille deF sera donc ≤`a la taille deF.

#clauses dans F ≤ #clauses dans F

taille des clauses dansF ≤ taille des clauses dansF

3

Références

Documents relatifs

Nous voulons calculer le nombre moyen d’´echanges dont a besoin l’algorithme SelectionSort pour trier une suite de longueur N (Ici moyen veut dire la moyenne sur toutes les

a) Si on choisit toujours comme pivot le dernier ´el´ement de la suite, montrer que pour tout N on peut trouver une suite de N ´el´ements pour laquelle QuickSort n´ecessite Ω(N 2

b) Modifier l’algorithme de Dijkstra pour qu’il fournisse pour chaque sommet v le plus court chemin du sommet de d´epart s ` a v et l’ensemble des sommets qui font partie de

a) Si on augmente le poids de chaque arˆete de G par une constante c, est-ce que l’arbre T reste minimal? Justifiez votre r´eponse.. b) Si on diminue le poids de l’une des arˆetes de

, k m litt´eraux, determiner si cette formule est satisfaisable (C’est le probl`eme SAT). Quelle est la taille de l’input pour ce probl`eme ?. e) Montrer que ce probl`eme est

L’output attendu est donc un nombre naturel (et pour tout nombre naturel x il existe un input pour lequel x est l’output), l’ensemble des outputs possibles est donc l’ensemble de

Soit x le nombre de 1’s au dessus de la diagonale et y le nombre de 1’s en dessous de la diagonale (donc x + y = nd). Or si n et d sont impairs alors nd sera aussi impair. On en

b) Supposons que nous avons un graphe avec deux c´el´ebrit´es (que nous appelons les sommets i et j). j ne peut donc pas ˆetre une c´el´ebrit´e et nous avons une contradiction.