290 likes | 445 Views
Logique et Vérification probabiliste. Algorithmes probabilistes qui vérifient une propriété. Vérification formelle de programmes probabilistes. Applications des deux approches. Vérification et jeux. Université Paris II Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr. Vérification.
E N D
Logique et Vérification probabiliste • Algorithmes probabilistes qui vérifient une propriété. • Vérification formelle de programmes probabilistes. • Applications des deux approches. • Vérification et jeux Université Paris II Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr 12 Octobre 2001
Vérification • Logique et Complexité • Calcul : f(x) =y • Verification : x,y donnés, decider si f(x)=y • Pour une définition de f, quelle est la complexité de la vérification? • Verification formelle • Pour un programme (circuit, C,…) qui calcule une fonction g, comment savoir si 12 Octobre 2001
Logique et Probabilité cf: George Boole The Laws of Thought, 1854 Part I: propositional logic, Part II:probability cf: John von Neumann The Report on EDVAC, 1945 Theory of Games and Economic Behavior, 1944 (cf: Alan Turing On Computable Numbers, 1936 Studies in Quantum Mechanics, 1932-35) Ref. C. Papadimitriou: 12 Octobre 2001
Vérification probabiliste Fonctions classiques sur des matrices booléennes Calcul probabiliste t Il existe un algorithme proba. A • Si f(x)=1, Prob[ A accepte] > 2/3 • Si f(x)=0, Prob[ A rejette ] > 2/3 12 Octobre 2001
Vérification polynomialeNP Il existe une fonction t.q. L est dans NP s’il existe une fonction g dans P t.q. Pour la fonction : On ne connaît pas de telle fonction g!! La fonction est le complément de C’est une fonction de co-NP. 12 Octobre 2001
Vérification probabiliste • Comment vérifier avec un protocole? • V choisit {1,2} et • construit • P envoit . • Si , P.V=1, sinon P.V=0 P V 0 (1/2) 1 (1/2) • L admet une preuve interactive, s’il existe un • protocole t.q pour tout x : • Si , Prob [ P.V(x)=1] =1 • Si , Prob [ P’.V(x)=1] < 1/2 12 Octobre 2001
Vérification polynomiale probabiliste : IP=PSPACE • Soit • Il existe un protocole IP qui vérifie si Perm(A)=b • Soit kSAT la fonction qui décide de la satisfaisabilité de k- clauses: • #kSAT est la fonction de comptage. • SkSAT =Prob [ x satisfait] • Perm, S2SAT, S3SAT sont #P-complètes. 12 Octobre 2001
Vérification probabiliste d’une preuve : PCP V 0 (1/2) 1 (1/2) i • L est dans PCP(r(n),q(n)), s’il existe un vérificateur V tel que pour tout x : • Si , Prob [V(x, )=1] =1 • Si , Prob [V(x, )=1] < 1/2 12 Octobre 2001
Caractérisations PCP Théorème (Arora et al.): NP =PCP(log n , 1) Théorème : NEXP =PCP(poly , poly) • Passer d’une preuve classique à une preuve transparente (holographique) ? • O(n^2) mais…. • intérêt théorique 12 Octobre 2001
Checker,Testeur de Blum Checker pour f (Blum, Kannan, ~1990) x y P C Correct Buggy Un checker est un programme probabiliste avec oracle P t. q pour tout x,k : Si P=f, C(x,k) = Correct Si P(x)!=f(x), Prob[ C(x,k) =Buggy] >1- ½^k 12 Octobre 2001
Checker pour Graph-Iso P (G, H) = si , (1, ) sinon 0 G,H (1, ) ou 0 P C Correct Buggy C(G,H, k): Si P (G, H)=(1, ), verifier que G= (H) Si P (G, H)=0, choisir Si =1, G’= (G). Si P(G,G’)=0 , Buggy Si =2, H’= (H), Si P(G,H’)=1, Buggy Après k essais, Correct 12 Octobre 2001
Auto testeur • Distance d(f,g) = | {x : f(x) != g(x)}| / | D| • Un auto-testeur pour f est un programme T(P, ) t.q. • Si d(P,f)=0, alors T(P, )=Correct • Si d(P,f) > alors T(P, )=Buggy • Correcteur. Division (x,y) : Majorité { x.r/y.r : r aléa.} 12 Octobre 2001
Test de propriété • Classe de fonctions ou de propriétés • Goldreich, Golwasser, Ron ~1995 • Un test pour F est un algorithme probabiliste A t.q. • Si f est dans F, A accepte • Si f est loin de F, A rejette • T(A) indépendante de n • Exemple: k-colorabilité de graphes G Gi sous graphe aléatoire 12 Octobre 2001
Tests et complexité descriptive • Quelles propriétés de graphes (matrices) admettent des testeurs? • Alon et al., STOC 99: testeurs • Compression. -equivalent 12 Octobre 2001
Vérification formelle • Preuves: • Programme correct vs. preuve • Modèles • Système de transition du programme • Propriété à vérifier : formule • U |= Function f(x) Int x; For (0;i;j) {……} Programme n’est plus une boite noire. 12 Octobre 2001
Vérification par modèle • Système de transition (Structure de Kripke • Formules • LTL, CTL, CTL* sur • U,s |= (p1 U Accept) => G |= F • Vérifier : comparer les OBDDs P1 P2 P3 Accept s 12 Octobre 2001
OBDD : Oriented Binary Decision Diagram • Branching programs • Succinct representation of relations • Intractable for: • Multiplication • Connectivity, Bipartition v1 v2 vn 0 1 R(v1,v2,….vn) 12 Octobre 2001
Vérification probabiliste • Propriétés : LTL : p1 U p2 Prob [ p1 U p2 ] > a • Espace probabiliste: Ensemble des chemins p1 p2 Prob [ p1 U p2 ]=3/8 12 Octobre 2001
Calcul de la probabilité • Calcul de Prob [ p1 U p2 ] • Problème #P (comptage) • C.Y. 95, Hanson et Johnson 94 • S1= { s : M |= P1(s) } S+= { s : M |= E(p1 U p2 )} , S0=S-S+ • Soit xi = Prob [ p1 U p2 ] depuis i xi = 1 si i dans S1 xi= 0 si i dans S0 xi= Somme p(i,j) xj X= A.X +B, système de taille N !! 12 Octobre 2001
Système PRISM • Université de Birmingham, Marta Kwiatkowska • SMV : propriétés déterministes • AX+B=C : probabilistes • AX+B < C : non-déterministes • Vérification de protocoles : Consensus de Aspnes et Herlihy, CAV 2001 12 Octobre 2001
Protocoles cryptographiques • https (SSL, Secure Socket layer) • Authentification du serveur (certificat) • (Clé de session).RSA • Cryptage.DES • Implémentations • Netscape, Open-SSL, Apache-SSL • Propriété : • clé de session reste secréte!! • Difficile de décoder • Authentification correcte • …… 12 Octobre 2001
Protocoles cryptographiques Equivalence de processus Mitchell, Scedrov, 1998,99 si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < 1/f(n) pour tout polynome f Exemple : Générateur aléatoire = Générateur pseudo aléatoire 12 Octobre 2001
Abstraction Probabiliste • Test de propriété : k-colorabilité • Abstraction d’un programme? • Programme correct => U,G |= F • Programme loin d’être correct => Prob [U,G |= not F]>2/3 • Collaboration F. Magniez, S. Laplante, R. Lassaigne, S. Peyronnet. 12 Octobre 2001
Verification et Jeux • Définissabilité et jeux • F.O. : Ehrenfeucht Fraisse • LFP : Pebble games • Mu-calcul : 1 Pebble • S.O: Jeux de coloriage • Jeux en Economie • Existence d’un équilibre de Nash ? • Jeux à somme non nulle, à information incomplète. • Quel est le jeu de TCP/IP ? 12 Octobre 2001
Verification et Jeux • C. Papadimitriou 12 Octobre 2001
Equilibre de Nash Dilemme des prisonniers (C,D) produit un gain de 0 pour I et 4 pour II Def: (x,y) est un équilibre (pur) de Nash si aucun joueur ne peut augmenter son gain. Une stratégie mixte est une distribution sur les stratégies pures. Il existe toujours un couple (p,q), en équilibre de Nash. ( P calculable ?) 12 Octobre 2001
Jeux et Complexité • Stratégie de l’adversaire n’est pas arbitraire. • Définie par un automate (P.Y. 2000) • Stratégie P • Stratégie BPP • Equilibre de Nash est modifié. • Rationalité (dilemme itéré des prisonniers.) • Quel est le jeu pour un protocole qui atteint un équilibre? TCP/IP ? 12 Octobre 2001
Vérification et Equilibres • Protocole de consensus (Aspnes et Herlihy) Condition de consensus= condition d’équilibre. • Quel est le jeu? • Information incomplète • Somme non-nulle • Quelle est la correspondance entre logique et Jeux? • Sécurité, « privacy », conduisent à d’autres conditions d’ équilibre. • Equilibre approximatif 12 Octobre 2001
Conclusion • Vérification de propriétés: • Testeurs • Vérification de programmes: • Déterministes : Modèles , OBDD • Probabiliste : systèmes linéaires • Non déterministe : encadrements • Approximation de la vérification • Vérification et jeux 12 Octobre 2001