informatique (MP2I/MPI) · Chapitre 25 · Application directe du cours
Problème — MAX2SAT : du hasard au déterminisme
Algorithmes probabilistes, approximation, séparation et évaluation · niveau 3 (difficile)
Énoncé
Le tirage à pile ou face est une -approximation en espérance. On veut un algorithme déterministe avec la même garantie.
- Calculer, pour une affectation partielle, l'espérance du nombre de clauses satisfaites si l'on tire les variables restantes au hasard.
- En déduire un algorithme déterministe, et prouver sa garantie.
- Le mesurer.
Corrigé de la question 1
1. L'espérance conditionnelle se calcule exactement, et c'est le point de départ. Fixons une affectation partielle des premières variables. Une clause est fausse sous complétée au hasard si et seulement si aucun de ses littéraux n'est déjà vrai, et si tous ses littéraux non encore fixés tombent du mauvais côté. D'où, pour une clause :
(* Esperance du nombre de clauses satisfaites, les variables non fixees etant
tirees a pile ou face. fixe.(i) = Some b si x_i vaut b, None sinon.
Complexite : O(taille de la formule). *)
let esperance clauses fixe =
Array.fold_left (fun acc cl ->
let p_fausse = Array.fold_left (fun q (i, positif) ->
match fixe.(i) with
| None -> q *. 0.5 (* litteral libre : une chance sur deux *)
| Some b -> if b = positif then 0.0 else q (* deja vrai : clause satisfaite *)
) 1.0 cl in
acc +. (1.0 -. p_fausse)) 0.0 clausesQuestion 2 : comment l'IA t'aide
2. En déduire un algorithme déterministe, et prouver sa garantie.
Élève
Je pense fixer les variables une à une en prenant la valeur qui satisfait tout de suite le plus de clauses. Mais je ne vois pas comment prouver que ce glouton garde la garantie des trois quarts.
IA
Ton critère ne regarde que les clauses déjà décidées et ignore celles qui restent ouvertes. Quelle quantité calculée à la question 1 tient compte des deux, et que vaut-elle quand aucune variable n'est fixée ?
Élève
L'espérance conditionnelle ; au départ, elle vaut les trois quarts du nombre de clauses. Mais si je m'en sers comme critère, qu'est-ce qui m'assure qu'elle ne baisse pas en route ?
IA
Quelle relation exacte lie aux deux espérances obtenues en fixant à vrai ou à faux ? Et que représente l'espérance une fois toutes les variables fixées ?
L'IA ne donne pas la réponse : elle pose la question qui fait avancer. À toi de continuer.
Continue cet exercice avec l'IA
Reprends la question 2 là où le dialogue s'arrête, puis la suite de l'exercice.
Continuer avec l'IA — gratuit, sans inscriptionGratuit, sans inscription. L'IA te guide pas à pas, sans te donner la réponse.