alpaga a tool for solving parity games with imperfect information dietmar berwanger 1 krishnendu...

Download Alpaga A Tool for Solving Parity Games with Imperfect Information Dietmar Berwanger 1 Krishnendu Chatterjee 2 Martin De Wulf 3 Laurent Doyen 3,4 Tom Henzinger

Post on 17-Dec-2015

214 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Alpaga A Tool for Solving Parity Games with Imperfect Information Dietmar Berwanger 1 Krishnendu Chatterjee 2 Martin De Wulf 3 Laurent Doyen 3,4 Tom Henzinger 4 TACAS 2009 1 ENS Cachan 2 UC Santa Cruz 3 ULB Brussels 4 EPFL Lausanne
  • Slide 2
  • Why imperfect information ?
  • Slide 3
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: got_lock++; } 4: if (got_lock != 0) { 5: unlock (); } 6: got_lock--; } while (*); } void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; }
  • Slide 4
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: got_lock++; } 4: if (got_lock != 0) { 5: unlock (); } 6: got_lock--; } while (*); } void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; } Wrong!
  • Slide 5
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; } s0 got_lock = 0 s1 got_lock = 1 Inc got_lock++ dec got_lock--
  • Slide 6
  • Example Repair/synthesis as a game: System vs. Environment Turn-based game graph -regular objective void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; }
  • Slide 7
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; }
  • Slide 8
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; } A winning strategy may use the value of L to update got_lock accrodingly: if L==0 then play s0 (got_lock = 0) if L==1 then play s1 (got_lock = 1)
  • Slide 9
  • Example Repair/synthesis as a game of imperfect information: visible hidden void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; } States that differ only by the value of L have the same observation
  • Slide 10
  • Example void main () { int got_lock = 0; do { 1: if (*) { 2: lock (); 3: s0 | s1 | inc | dec; } 4: if (got_lock != 0) { 5: unlock (); } 6: s0 | s1 | inc | dec; } while (*); } s0 | s1 | inc | dec; void lock () { assert(L == 0); L = 1; } void unlock () { assert(L == 1); L = 0; }
  • Slide 11
  • Why Imperfect Information ? Program repair/synthesis Distributed synthesis of processes with public/private variables Synthesis of robust controllers Synthesis of automata specifications Decision problems in automata theory Planning with partial observabillity, information flow secrecy,
  • Slide 12
  • A model of imperfect information
  • Slide 13
  • Imperfect information Token
  • Slide 14
  • Imperfect information System: actions ,
  • Slide 15
  • Imperfect information System: actions , Environment: observations,,,
  • Slide 16
  • Imperfect information System: actions , Environment: observations,,, A play:
  • Slide 17
  • Imperfect information System: actions , Environment: observations,,, A play:
  • Slide 18
  • Imperfect information System: actions , Environment: observations,,, A play:
  • Slide 19
  • Imperfect information System: actions , Environment: observations,,, A play:
  • Slide 20
  • Imperfect information System: actions , Environment: observations,,, A play:
  • Slide 21
  • Objectives Reachability: eventually observe a good event Safety: never observe a bad event Parity: observation priorities least one seen infinitely often is even nested reachability & safety generic for -regular specifications
  • Slide 22
  • Parity games with imperfect information Questions: decide if System wins from the initial state construct a winning strategy Assumptions: Visible objective Sure-winning
  • Slide 23
  • Algorithms
  • Slide 24
  • Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information initial cell
  • Slide 25
  • Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information
  • Slide 26
  • Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information
  • Slide 27
  • Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information
  • Slide 28
  • Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information
  • Slide 29
  • Classical solution Memoryless strategies (in perfect-information) translate to finite-memory strategies (memory automaton tracks set of possible positions) Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information
  • Slide 30
  • Complexity Problem is EXPTIME-complete (even for safety and reachability) Exponential memory might be needed The powerset solution [Reif84] is an exponential construction is not on-the-fly is independent of the objective Can we do better ?
  • Slide 31
  • Antichains
  • Slide 32
  • Winning knowledge-sets are downward-closed: s s If System wins from s, then she also wins from s
  • Slide 33
  • Antichains Winning knowledge-sets are downward-closed: s s If System wins from s, then she also wins from s Useful operations preserve downward-closedness , , Cpre Cpre(X) = {Y from which System can force the play into X}
  • Slide 34
  • Antichains Winning knowledge-sets are downward-closed Useful operations preserve downward-closedness Compact representation using maximal elements Antichains
  • Slide 35
  • Antichain algorithm [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains
  • Slide 36
  • Antichain algorithm Y = {s1, s2, s3} set of winning positions so far s1 s2 s3 Y [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains CPre(Y) = ?
  • Slide 37
  • s CPre(Y) if for all, there exists a set in Y that contains post (s) Antichain algorithm s1 s2 s3 Y s post [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains
  • Slide 38
  • Antichain algorithm s1 s2 s3 Y s combinatorially hard to compute implemented using BDDs s CPre(Y) if for all, there exists a set in Y that contains post (s) post [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains
  • Slide 39
  • Antichain algorithm [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains [Concur08] computes winning strategy recursively for a combination of safety & reachability objectives
  • Slide 40
  • Antichain algorithm Safety: extract strategy from fixpoint Reachability: fixpoint is not sufficient [CSL06] computes winning sets of positions as a -calculus formula over the lattice of antichains [Concur08] computes winning strategy recursively for a combination of safety & reachability objectives
  • Slide 41
  • Reachability
  • Slide 42
  • Slide 43
  • 1. From {1} play a
  • Slide 44
  • Reachability 1. From {1} play a 2. From {1,2} play b
  • Slide 45
  • Reachability 1. From {1} play a 2. From {1,2} play b 3. From {1,2,3} play a
  • Slide 46
  • Reachability Fixpoint of winning cells: { {1,2,3} } Winning strategy ?? 1. From {1} play a 2. From {1,2} play b 3. From {1,2,3} play a
  • Slide 47
  • Reachability Fixpoint of winning (cell, action): { {1,2,3} a,{1,2} b } Winning strategy ?? 1. From {1} play a 2. From {1,2} play b 3. From {1,2,3} play a
  • Slide 48
  • Reachability Winning strategy Current knowledge K: select earliest (cell,action) such that K cell, play action 1. From {1} play a 2. From {1,2} play b 3. From {1,2,3} play a
  • Slide 49
  • Strategy simplification #1 1. From {1,2,3} play a 2. From play 3. From play 4. From play 5. From {2} p

Recommended

View more >