ppt - RWTH Aachen TCS

Werbung
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
Herunterladen