0% ont trouvé ce document utile (0 vote)
58 vues3 pages

2014 Sujet

sdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdff

Transféré par

bogg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues3 pages

2014 Sujet

sdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdffasdfsdsasdff

Transféré par

bogg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

PA Info et autres Promotion 2012

INF550. Algorithmique avancée


Examen du mercredi 3 décembre 2014. 3 heures
Documents autorisés : transparents et notes de cours,
énoncés et corrigés de PC

On vous demande d’accorder une attention particulière à une rédaction soignée, qui sera un critère important
dans l’évaluation. Les différents exercices sont indépendants et peuvent être traités dans l’ordre de votre choix. Il
n’est pas nécessaire de toucher à tous les exercices pour avoir une bonne note.

Compétitivité de la politique du vide (Algorithmes online)

On considère le problème de la gestion d’un cache mémoire de capacité k pages, dans le modèle avec
coût unitaire pour les chargements de pages et coût nul pour la consultation des pages dans le cache. La
politique de gestion FlushAll consiste à vider le cache à chaque fois qu’il est plein : plus précisément,
on vide le cache lorsqu’il contient k pages et qu’arrive une requête à une page qui n’est pas dans le cache.
Cet algorithme est il α-compétitif ? Si oui pour quel α ?

Circulations et arrondi de matrices (Flots)

On considère un graphe orienté G = (V, E) avec une capacité c(e) > 0 sur chaque arc e ∈ E, et
une ressource ou demande d(v) ∈ R sur chaque sommet v ∈ V : si d(v) > 0 le sommet v est appelé un
fournisseur, si d < 0 c’est un client, et si d = 0 c’est un nœud de transit.
Une circulation sur le réseau (G, d, c) est une fonction f : E → R≥0 satisfaisant aux deux conditions
suivantes :
– Contrainte de capacité : pour tout arc e ∈ E, 0 ≤ f (e) ≤ c(e).
– Conservation du flot : pourP tout sommet P v ∈ V , la somme des flots sortants moins la somme des
flots entrants vaut d(v) : e=vu f (e) − e=uv f (e) = d(v).
1. Donner une condition nécessaire portant sur la fonction d pour l’existence d’une circulation sur
(G, d, c).
2. Montrer par la réduction à un problème de flot maximum qu’on peut décider de l’existence d’une
circulation en temps polynomial. Quelle est la complexité de votre algorithme ?
3. Montrer qu’une et une seule des deux conditions suivantes est satisfaite :
(a) Il existe une circulation dans le réseau (G, d, c)
(b) Il existe une partition (A, B) de V telle que la somme des demandes des clients de B est
strictement supérieure en valeur absolue à la somme des ressources des fournisseurs de B plus
la somme des capacités des arcs de A vers B.
On ajoute maintenant des contraintes supplémentaires en imposant pour chaque arc e ∈ E une borne
inférieure `(e) sur le flot qui l’emprunte dans la circulation. Plus précisément, une circulation avec bornes
inférieures dans (G, d, c, `) est une circulation f dans (G, d, c) telle que f (e) ≥ `(e) pour tout arc e de G.
4. Construire un réseau (G, d00 , c00 ) tel qu’il existe une circulation avec bornes inférieures dans (G, d, c, `)
si et seulement si il existe une circulation dans (G, d00 , c00 ). Indication : on pourra se demander
comment modéliser la contrainte f (e) ≥ `(e) pour e = uv en modifiant localement d(u), d(v) et
c(e).

1
5. Montrer que si les capacités c(e), les bornes inférieures `(e) et les ressources/demandes d(v) sont à
valeurs entières et qu’il existe une circulation avec borne inférieure dans (G, d, c, `), alors il existe
une circulation avec borne inférieure à valeurs entières dans (G, d, c, `).
Soit D = (di,j ) une matrice de taille p × q de nombres réels. On note ai la somme des entrées de la
ième rangée de D et bj celle des entrées de la jème colonne. On veut arrondir chaque di,j à l’entier au
dessus ou en dessous de sorte que la somme des éléments arrondis de chaque ligne ou colonne soit égale
à l’arrondi de l’entrée ai ou bj correspondante : plus précisément on veut choisir des sens d’arrondis εi,j ,
αi et βj dans {0, 1} tels que pour tout i et tout j,
q
X
(bdi,j c + εi,j ) = bai c + αi
j=1

et
p
X
(bdi,j c + εi,j ) = bbj c + βj .
i=1

6. Appliquer le résultat de la question précédente à un reseau de p + q + 2 sommets bien choisi pour


montrer qu’il existe toujours un arrondi faisable.

Optimisation de tests (Programmation linéaire, algorithme d’approximation)

On considère un ensemble P de n propriétés, qu’on numérote de 1 à n (autrement dit, P = {1, . . . , n}).


Un test faisable est un sous-ensemble de propriétés P qu’il est possible de tester en parallèle : un test
faisable T ⊂ P permet de savoir en une seule fois lesquelles des propriétés de T sont satisfaites. Chaque
test a un coût w(T ) > 0. Soit T l’ensemble des tests faisables. On appelle m = |T | le nombre de tests
faisables et f = maxi∈P |{T ⊂ T | i ∈ T }|. S
On suppose que toutes les propriétés peuvent être testées : T ∈T T = P . Le problème d’optimisation
des tests est de trouver un sous-ensemble
P R ⊂ T de coût minimal permettant de tester toutes les
propriétés : le coût de R est w(R) = T ∈R w(T ) et on cherche
( )
[
min w(R) R ⊂ T , =P .
T ∈R

1. Modéliser ce problème par un problème de programmation linéaire portant sur m variables (xT )T ∈T
à valeur dans {0, 1}.
2. On considère la relaxation du programme linéaire L de la question précédente où on remplace les
conditions xT ∈ {0, 1} pour T ∈ T par

xT ≥ 0 pour T ∈ T .

Montrer que le coût W opt de l’optimum (xopt 0


T )T ∈T de ce nouveau programme linéaire L est inférieur
opt opt
au coût C du meilleur ensemble de tests et que xT ≤ 1 pour tout T ∈ T .
3. Étant donnée la solution optimale (xopt 0 0
T )T ∈T du programme linéaire L on pose R = {T ∈ T |
opt
xT ≥ 1/f }, où on rappelle que f = maxi∈P |{T ⊂ T | i ∈ T }|. Montrer que l’ensemble de tests R0
permet de tester toutes les propriétés.
4. Montrer que le choix de R0 défini à la question précédente est une f -approximation de la solution
optimale au problème d’optimisation des tests.
5. Écrire le programme linéaire dual L∗ de L0 . On notera (yi )i∈P les variables de ce programme.

2
6. Montrer que pour toute solution faisable y du programme dual,
X
yi ≤ C opt
i∈P

7. On considère une solution optimale y opt


du programme dual. Montrer que l’ensemble R00 ⊂ T des
tests T pour lesquels X
yiopt = w(T )
i∈T
est un ensemble de tests qui permet de tester toutes les propriétés et que son coût est inférieur à
f · C opt .
8. On considère maintenant l’algorithme suivant (appelé algorithme primal-dual ) :
– y ← 0, R ← ∅ S
– tant qu’il existe i ∈
/ T ∈R T faire
– Augmenter yi jusqu’à ce qu’il existe un T tel que
X
yj = w(T ).
j∈T

– Ajouter T à R : R ← R ∪ {T }.
Montrer que cet algorithme donne une solution f -approchée au problème du test optimal sans avoir
besoin de résoudre les programmes linéaires associés.

Indépendant maximum dans les graphes planaires (Algorithme paramétrique,


largeur arborescente, approximation)
Un graphe plan G = (G, φ) est un graphe connexe G muni d’un dessin φ : G → P dans le plan P sans
croisement d’arêtes. Une face de G est une composante connexe de P \ φ(G). La face extérieure de G est
l’unique face de G qui s’étend à l’infini.
La profondeur (ou profondeur d’oignon) d’un graphe plan est le nombre de couches de sommets
extérieurs qu’il faut supprimer pour le détruire entièrement. Plus formellement :
– Un graphe plan est de profondeur 0 si tous ses sommets sont incidents à la face extérieure.
– Un graphe plan G est de profondeur ≤ i + 1 si tous les G0j ont profondeur inférieure ou égale à i,
où les G01 , . . . , G0k sont les composantes connexes du graphe G0 obtenu en supprimant les sommets
de G incidents à la face extérieure et toutes les arêtes qui leur sont incidentes.
Autrement dit on définit la profondeur i d’un sommet de G comme le nombre d’épluchages des sommets
de la face extérieure nécessaires pour l’amener sur la face extérieure : la profondeur de G est alors le
maximum des profondeurs des sommets de G. On admet le résultat combinatoire suivant :
– Tout graphe plan à n sommets de profondeur i admet une décomposition arborescente de largeur
arborescente 3i + 1 et de taille 2n, et on peut la calculer en temps O(2O(i) n2 )
On rappelle que le problème Indépendant maximum est de déterminer, étant donné un graphe G
et un entier ` ≥ 0, s’il existe ` sommets de G qui ne sont pas voisins deux à deux.
1. Montrer qu’il existe un algorithme de complexité O(2O(i) n2 ) pour résoudre Indépendant maxi-
mum sur un graphe plan de profondeur i.
Étant donné un graphe G et un entier k ≥ 2 on considère les graphes Gi = G \ Vi où Vi est l’ensemble
des sommets de G de profondeur i modulo k, pour i = 0, . . . , k − 1. En particulier G0 contient les
sommets de profondeur 1, 2, . . . , k −1, k +1, . . . , 2k −1, 2k +1, . . . alors que G1 contient ceux de profondeur
0, 2, 3, . . . , k, k + 2, . . .
2. Montrer que chaque composante connexe du graphe Gi a profondeur au plus k.
3. Déduire de la question précédente une façon de trouver en temps O(2O(k) n2 ) un ensemble indépendant
de taille au moins (1 − k1 )|I ∗ | où I ∗ est un indépendant maximum de G.
4. Déduire de la question précédente un schéma d’approximation polynomial pour le problème de
l’indépendant maximal qui donne une solution ε-approchée en temps O(2O(1/ε) n2 ).

Vous aimerez peut-être aussi