 
                                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:
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
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 SelfTester errechnete Wahrscheinlichkeit niedrig genug
ist
Begriffe / Definitionen
Verteilte Funktion: Φ : V → R , V=R
n
mit Bezug auf Umgebung: f : W → S
n
n
n
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
Begriffe / Definitionen
Orakelprotokoll P :
Protokoll P ruft Protokoll P auf (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
Begriffe / Definitionen
Self-Testing Protokoll T :
If error(f,P,Dv ,Ε)≤ε1 then Pr("i:T P[i]="PASS") ≥ 1-β
If error(f,P,Dv ,Ε)≥ε2 then Pr("i:T P[i]="FAIL") ≥ 1-β
0 ≤ ε1 < ε2 ≤ 1
Self-Correcting Protokoll C:
If error(f,P,Dv ,Ε)≤ε then Pr("i: C P[i]=f[i]) ≥ 1-β
0≤ε<1
Begriffe / Definitionen
„Klein-o“-Bedingung:
Berechnung erfolgt in mehreren Runden
Laufzeit = Anzahl der Runden
Laufzeit von T P und C P muss o(R)
betragen, wenn Aufrufe von P als o(1)
aufgefasst werden, R= minimale worst-case
Laufzeit von P
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}
n
n
BA: (V  B) → (V  T)
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
Self-Tester für Agreement
Funktion (BA), für Prozessor i
Self-Tester für Agreement
Funktion (BA), für Prozessor i
Self-Tester für Agreement
Funktion (BA), für Prozessor i
Yl[i] :0/1-Zufallsvar. (Prozessor i wird 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μ") ≤ β
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.
Self-Corrector für Agreement
Funktion (BA), für Prozessor i
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
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.
Zusammenfassung
Programmchecker
Byzantine Agreement Funktion
Selbsttestende/-korrigierende Protokolle
Self-Tester für BA
Self-Corrector für BA