240 likes | 367 Views
Vérification probabiliste. Algorithmes probabilistes qui vérifient une propriété. Vérification formelle de programmes probabilistes. Applications des deux approches. Université Paris II Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr. Vérification. Logique et Complexité
E N D
Vérification probabiliste • Algorithmes probabilistes qui vérifient une propriété. • Vérification formelle de programmes probabilistes. • Applications des deux approches. Université Paris II Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr 27 Novembre 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 27 Novembre 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: 27 Novembre 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 27 Novembre 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. 27 Novembre 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 27 Novembre 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. 27 Novembre 2001
Vérification probabiliste d’une preuve : PCP 27 Novembre 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 27 Novembre 2001
Checker pour Graph-Iso P (G, H) = si G iso H, (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 27 Novembre 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.} 27 Novembre 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 27 Novembre 2001
Tests et complexité descriptive • Quelles propriétés de graphes (matrices) admettent des testeurs? • Alon et al., STOC 99: Sigma 2 testeurs • Compression. Epsilon-equivalent 27 Novembre 2001
Vérification formelle • Preuves: • Programme correct vs. preuve • Modèles • Système de transition du programme • Propriété à vérifier : formule fi • U mod fi Function f(x) Int x; For (0;i;j) {……} Programme n’est plus une boite noire. 27 Novembre 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 27 Novembre 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) 27 Novembre 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 27 Novembre 2001
Calcul de la probabilité • Calcul de Prob [ p1 U p2 ] • 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 !! 27 Novembre 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 27 Novembre 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 • …… 27 Novembre 2001
Protocoles cryptographiques Process Equivalence Mitchell, Scedrov, 1998,99 P= epsilon Q si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < epsilon Pn= f Qn si pour tout programme (contexte ) C, v Prob[C.P =v] - Prob[C.P =v] < 1/f(n) P= Q si Pn = f Qn pour tout polunome f Exemple : Générateur aléatoire = Générateur pseudo aléatoire 27 Novembre 2001
Abstraction Probabiliste • Test de propriété : k-colorabilité • Abstraction d’un programme? • Programmme correct => U,G |= F • Program loin d’etre correct => Prob [U,G |= not F]>2/3 • Collaboration F. Magniez, S. Laplante, R. Lassaigne, S. Peyronnet. 27 Novembre 2001
Abstraction Probabiliste • Abstraction d’un programme? • Programme C A[i,j] B[i,j] sous-graphe aléatoire Variables u, v u’, v’ Taille de l’OBDD : 2 ,m=1/epsilon m 27 Novembre 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 • Testeurs 27 Novembre 2001