1 / 18

Self-Testing/Correcting Protocols

Self-Testing/Correcting Protocols. Carsten Rebbien 225868. Inhalt. Einführung Begriffsklärung / Definitionen Byzantine Agreement / Crusader Agreement Funktionen Self-Tester für Agreement Funktion Self-Corrector für Agreement Funktion Zusammenfassung. Einführung. Testen von Programmen:

carina
Download Presentation

Self-Testing/Correcting Protocols

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Self-Testing/Correcting Protocols Carsten Rebbien 225868

  2. Inhalt • Einführung • Begriffsklärung / Definitionen • Byzantine Agreement / Crusader Agreement Funktionen • Self-Tester für Agreement Funktion • Self-Corrector für Agreement Funktion • Zusammenfassung

  3. Einführung • Testen von Programmen: • Ergebnisse müssen bekannt sein • Wie bekannte Ergebnisse ermitteln? • „Von Hand“ prüfen • Programm zur Bestimmung der Ergebnisse • Programmchecker • Läuft parallel zum eigentlichen Programm • Prüft nur Korrektheit einzelner Eingaben

  4. Einführung • Selbsttestender Programmchecker (Self-Tester) • Ruft zu testendes Programm P mit Eingabe x auf • Bestimmt Wahrscheinlichkeit mit der f(x)=P(x) gilt • Selbstkorrigierendes Programm (Self-Corrector) • Korrigiert fehlerhaftes Programm, falls die vom Self-Tester errechnete Wahrscheinlichkeit niedrig genug ist

  5. Begriffe / Definitionen • Verteilte Funktion: Φ : Vn → Rn,V=R • mit Bezug auf Umgebung: f : Wn → Sn • wobei W=V (S=R) plus Charakteristika zur Etikettierung der Prozessoren • Protokoll: Implementierung von f • vollständig verbundenes Netzwerk von n Prozessoren • pro Prozessor ein Programm

  6. Begriffe / Definitionen • Orakelprotokoll P : • Protokoll P ruft Protokoll Pauf (Schreibweise: P P) • Dv: W‘keitsverteilung nach der die Eigaben vi, 1≤i≤n, bestimmt werden • Ε : Umgebung in der P läuft • P[i]: Ausgabe von Prozessor i • error(f,P,Dv ,Ε):W‘keit, dass f ¹ P • β: Zufriedenheitsparameter

  7. Begriffe / Definitionen • Self-Testing Protokoll T : • If error(f,P,Dv ,Ε)≤ε1 then Pr("i:TP[i]="PASS") ≥ 1-β • If error(f,P,Dv ,Ε)≥ε2 then Pr("i:TP[i]="FAIL") ≥ 1-β • 0 ≤ ε1 < ε2 ≤ 1 • Self-Correcting Protokoll C: • If error(f,P,Dv ,Ε)≤εthen Pr("i: CP[i]=f[i]) ≥ 1-β • 0 ≤ ε < 1

  8. Begriffe / Definitionen • „Klein-o“-Bedingung: • Berechnung erfolgt in mehreren Runden Þ Laufzeit = Anzahl der Runden • Laufzeit von TP und CP muss o(R) betragen, wenn Aufrufe von P als o(1) aufgefasst werden, R= minimale worst-case Laufzeit von P

  9. Agreement Funktion • Byzantine Agreement (BA): • Quelle s sendet Startwert vsÎ V • nach Termination geben alle korrekten Prozessoren diesen Wert wieder aus • V: Eingabemenge • B = {faulty, nonfaulty} • T = {true, false} • BA: (V ´ B)n → (V ´ T)n

  10. Agreement Funktion • Gültigkeitsbedingung: • "i bi = nonfaulty • Agreement Bedingung: • Crusader Agreement (CA): • genau wie BA • Agreement Bedingung: • falls s nicht korrekt ist, entscheiden sich nur korrekte Prozessoren, die nicht ausdrücklich wissen, dass s nicht korrekt ist, für den gleichen Wert

  11. Self-Tester für Agreement Funktion (BA), für Prozessor i

  12. Self-Tester für Agreement Funktion (BA), für Prozessor i

  13. Self-Tester für Agreement Funktion (BA), für Prozessor i • Yl[i] :0/1-Zufallsvar. (Prozessoriwird im lten Aufruf mit fail charakterisiert) • Sei μi=E[Yl[i]], • Korollar 1: • Sei μ' ≤ μi für alle i, und sei N=1/μ'×16ln(2n/β). Dann Pr($i: Y[i] ≤ μ'/2) ≤ β • Korollar 2: • Sei μ"≥ μi für alle i, und sei N=1/μ"×4ln(2n/β). Dann Pr($i: Y[i] ≥ 2μ") ≤ β

  14. Self-Tester für Agreement Funktion (BA), für Prozessor i • Theorem 1: Der Agreement_Tester(AT) ist ein (ε/8,ε)-Self-Tester. • Beweis: • Erwartete Ausgabe: E[Y[i]]=μi=δ×error, ½<δ<1 • (error≥ε) Sei μ'= ε/2 und N=1/ε×32ln(2n/β). Laut Kor.1 ist Pr($i:Y[i]≤ε/4)≤β. Jedoch, im AT gibt Prozessor i "FAIL" aus falls Y[i]>ε/4. Also, falls error≥ε gibt der AT mit einer W‘keit von mind. 1- β "FAIL" für jeden Prozessor aus. • (error≤ε/8) Sei μ"= ε/8 und N=1/ε×32ln(2n/β). Laut Kor.2 ist Pr($i:Y[i]≥ε/4)≤β. Jedoch, falls Y[i]<ε/4 gibt Prozessor i "PASS" aus. Also, falls error≤ε/8 gibt der AT mit einer W‘keit von mind. 1- β "PASS" für jeden Prozessor aus.

  15. Self-Corrector für Agreement Funktion (BA), für Prozessor i

  16. Self-Corrector für Agreement Funktion (BA) • Proposition: Sei a ≥ ¾ und seien X1,X2,...,Xn unabhängig gleichverteilte Zufallsvariablen mit Werten 0 und 1, so dass Pr[Xi=1]≥a, i=1,2,...,N. Dann • Beweis: Chernoff-Schranken

  17. Self-Corrector für Agreement Funktion (BA) • Theorem 2: Der Agreement_Corrector(AC) ist ein ε-Self-Corrector für BA. • Beweis:Angenommen, für alle i ist bei einem einzigen Durchlauf mit einer W‘keit von höchstens ε die Ausgabe des Prozessors i P[i]¹r (P[i]¹x-r). Dann geben beide Aufrufe von P mit einer W‘keit von mind. 1-2ε ein korrektes Ergebnis zurück. Mit a=1-2ε und n Durchläufen folgt die Aussage direkt aus der Proposition.

  18. Zusammenfassung • Programmchecker • Byzantine Agreement Funktion • Selbsttestende/-korrigierende Protokolle • Self-Tester für BA • Self-Corrector für BA

More Related