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.

Slides:



Advertisements
Similar presentations
Model Checking Lecture 3. Specification Automata Syntax, given a set A of atomic observations: Sfinite set of states S 0 Sset of initial states S S transition.
Advertisements

Black Box Checking Book: Chapter 9 Model Checking Finite state description of a system B. LTL formula. Translate into an automaton P. Check whether L(B)
Uri Zwick Tel Aviv University Simple Stochastic Games Mean Payoff Games Parity Games.
Winning concurrent reachability games requires doubly-exponential patience Michal Koucký IM AS CR, Prague Kristoffer Arnsfelt Hansen, Peter Bro Miltersen.
Knowledge Based Synthesis of Control for Distributed Systems Doron Peled.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Game-theoretic approach to the simulation checking problem Peter Bulychev Vladimir Zakharov Lomonosov Moscow State University.
Solving Timed Games with Variable Observations: Proof of Concept Peter Bulychev Franck Cassez Alexandre David Kim G. Larsen Jean-François Raskin Pierre-Alain.
Energy and Mean-Payoff Parity Markov Decision Processes Laurent Doyen LSV, ENS Cachan & CNRS Krishnendu Chatterjee IST Austria MFCS 2011.
Robustness and Implementability of Timed Automata Martin De Wulf Laurent Doyen Nicolas Markey Jean-François Raskin Centre Fédéré en Vérification FORMATS-FTRTFT.
Pushdown Systems Koushik Sen EECS, UC Berkeley Slide Source: Sanjit A. Seshia.
Interface-based design Philippe Giabbanelli CMPT 894 – Spring 2008.
Nir Piterman Department of Computer Science TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA Bypassing Complexity.
Krishnendu Chatterjee1 Graph Games with Reachabillity Objectives: Mixing Chess, Soccer and Poker Krishnendu Chatterjee 5 th Workshop on Reachability Problems,
Krishnendu Chatterjee1 Partial-information Games with Reachability Objectives Krishnendu Chatterjee Formal Methods for Robotics and Automation July 15,
Randomness for Free Laurent Doyen LSV, ENS Cachan & CNRS joint work with Krishnendu Chatterjee, Hugo Gimbert, Tom Henzinger.
M9302 Mathematical Models in Economics Instructor: Georgi Burlakov 3.1.Dynamic Games of Complete but Imperfect Information Lecture
Simulation Games Michael Maurer. Overview Motivation 4 Different (Bi)simulation relations and their rules to determine the winner Problem with delayed.
Review of topics Final exam : -May 2nd to May 7 th - Projects due on May 7th.
Discounting the Future in Systems Theory Chess Review May 11, 2005 Berkeley, CA Luca de Alfaro, UC Santa Cruz Tom Henzinger, UC Berkeley Rupak Majumdar,
Krishnendu Chatterjee and Laurent Doyen. Energy parity games are infinite two-player turn-based games played on weighted graphs. The objective of the game.
Stochastic Zero-sum and Nonzero-sum  -regular Games A Survey of Results Krishnendu Chatterjee Chess Review May 11, 2005.
Games, Times, and Probabilities: Value Iteration in Verification and Control Krishnendu Chatterjee Tom Henzinger.
Models and Theory of Computation (MTC) EPFL Dirk Beyer, Jasmin Fisher, Nir Piterman Simon Kramer: Logic for cryptography Marc Schaub: Models for biological.
Stochastic Games Games played on graphs with stochastic transitions Markov decision processes Games against nature Turn-based games Games against adversary.
Approaches to Reactive System Synthesis J.-H. Roland Jiang.
Automatic Rectangular Refinement of Affine Hybrid Automata Tom Henzinger EPFL Laurent Doyen ULB Jean-François Raskin ULB FORMATS 2005 – Sep 27 th - Uppsala.
Arindam Chakrabarti Luca de Alfaro Thomas A Henzinger Marcin Jurdziñski Freddy Y C Mang UC Berkeley Interface Compatibility Checking for Software Modules.
Probabilistic Robotics Introduction Probabilities Bayes rule Bayes filters.
Theory of Computing Lecture 22 MAS 714 Hartmut Klauck.
Lazy Abstraction Tom Henzinger Ranjit Jhala Rupak Majumdar Grégoire Sutre.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Quantitative Languages Krishnendu Chatterjee, UCSC Laurent Doyen, EPFL Tom Henzinger, EPFL CSL 2008.
Solving Games Without Determinization Nir Piterman École Polytechnique Fédéral de Lausanne (EPFL) Switzerland Joint work with Thomas A. Henzinger.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Solving fixpoint equations
Model Checking Lecture 4 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
Energy Parity Games Laurent Doyen LSV, ENS Cachan & CNRS Krishnendu Chatterjee IST Austria.
Model Checking Lecture 3 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
Visibility Graph. Voronoi Diagram Control is easy: stay equidistant away from closest obstacles.
Analysis of Algorithms
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Uri Zwick Tel Aviv University Simple Stochastic Games Mean Payoff Games Parity Games TexPoint fonts used in EMF. Read the TexPoint manual before you delete.
Games with Secure Equilibria Krishnendu Chatterjee (Berkeley) Thomas A. Henzinger (EPFL) Marcin Jurdzinski (Warwick)
Inferring Synchronization under Limited Observability Martin Vechev, Eran Yahav, Greta Yorsh IBM T.J. Watson Research Center (work in progress)
Avoiding Determinization Orna Kupferman Hebrew University Joint work with Moshe Vardi.
Expressiveness and Closure Properties for Quantitative Languages Krishnendu Chatterjee, IST Austria Laurent Doyen, ULB Belgium Tom Henzinger, EPFL Switzerland.
Four Lectures on Model Checking Tom Henzinger University of California, Berkeley.
Introduction CPSC 388 Ellen Walker Hiram College.
Information Theory for Mobile Ad-Hoc Networks (ITMANET): The FLoWS Project Competitive Scheduling in Wireless Networks with Correlated Channel State Ozan.
Copyright © 2011 Pearson Education, Inc. Systems of Linear Equations in Two Variables Section 5.1 Systems of Equations and Inequalities.
PROBLEM-SOLVING TECHNIQUES Rocky K. C. Chang November 10, 2015.
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Church’s Problem and a Tour through Automata Theory Wolfgang Thomas Pillars of Computer Science. Springer Berlin Heidelberg, 2008.
Generalized Point Based Value Iteration for Interactive POMDPs Prashant Doshi Dept. of Computer Science and AI Institute University of Georgia
Strategic Reasoning with Game Description Language Ji Ruan, Prof. W. van der Hoek, Prof. M. Wooldridge Department of Computer Science From Specific Game.
Model Checking Lecture 1: Specification Tom Henzinger.
Krishnendu ChatterjeeFormal Methods Class1 MARKOV CHAINS.
Four Lectures on Model Checking Tom Henzinger University of California, Berkeley.
The Multiple Dimensions of Mean-Payoff Games
Program Synthesis is a Game
Markov ó Kalman Filter Localization
Alternating tree Automata and Parity games
CIS 488/588 Bruce R. Maxim UM-Dearborn
Uri Zwick Tel Aviv University
Memoryless Determinacy of Parity Games
Discrete Controller Synthesis
Quantitative Modeling, Verification, and Synthesis
Robustness and Implementability of Timed Automata
Presentation transcript:

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 ENS Cachan 2 UC Santa Cruz 3 ULB Brussels 4 EPFL Lausanne

Why imperfect information ?

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; }

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!

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

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; }

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; }

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)

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

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; }

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, …

A model of imperfect information

Imperfect information Token

Imperfect information System: actions , 

Imperfect information System: actions ,  Environment: observations,,,

Imperfect information System: actions ,  Environment: observations,,, A play:

Imperfect information System: actions ,  Environment: observations,,, A play: 

Imperfect information System: actions ,  Environment: observations,,, A play: 

Imperfect information System: actions ,  Environment: observations,,, A play:   

Imperfect information System: actions ,  Environment: observations,,,     A play:

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

Parity games with imperfect information Questions: decide if System wins from the initial state construct a winning strategy Assumptions: Visible objective Sure-winning

Algorithms

Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information initial cell

Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information 

Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information 

Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information   

Classical solution Powerset construction [Reif84]: keeps track of the knowledge of System yields equivalent game of perfect information    

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

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 ?

Antichains

Winning knowledge-sets are downward-closed: s’ s If System wins from s, then she also wins from s’

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}

Antichains Winning knowledge-sets are downward-closed Useful operations preserve downward-closedness Compact representation using maximal elements  Antichains

Antichain algorithm [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains

Antichain algorithm Y = {s1, s2, s3} set of winning positions so far s1 s2 s3 Y [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains CPre(Y) = ?

s  CPre(Y) if for all, there exists a set in Y that contains post  (s)  Antichain algorithm s1 s2 s3 Y s post  [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains

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  [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains

Antichain algorithm [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains [Concur’08] computes winning strategy recursively for a combination of safety & reachability objectives

Antichain algorithm Safety: extract strategy from fixpoint Reachability: fixpoint is not sufficient [CSL’06] computes winning sets of positions as a μ-calculus formula over the lattice of antichains [Concur’08] computes winning strategy recursively for a combination of safety & reachability objectives

Reachability

1. From {1} play a

Reachability 1. From {1} play a 2. From {1,2} play b

Reachability 1. From {1} play a 2. From {1,2} play b 3. From {1,2,3} play a

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

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

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

Strategy simplification #1 1. From {1,2,3} play a 2. From … play … 3. From … play … 4. From … play … 5. From {2} play a computed later

1. From {1,2,3} play a 2. From … play … 3. From … play … 4. From … play … 5. From {2} play a Strategy simplification #1 computed later Not necessary ! Rule 1: delete subsumed pairs computed later

Strategy simplification #2 computed later 1. From {1,2} play a 2. From {3,4} play … 3. From {1,3} play a 4. From {3,5} play … 5. From {1,2,3} play a

1. From {1,2} play a 2. From {3,4} play … 3. From {1,3} play a 4. From {3,5} play … 5. From {1,2,3} play a Strategy simplification #2 computed later Not necessary ! Rule 2: delete strongly-subsumed pairs

Alpaga Use antichains as compact representation of winning sets of positions Compute Controllable Predecessor with BDDs Publish Reachability/Safety attractor moves to compose the strategy (earlier published move sticks) Strategy simplification First prototype for solving parity games of imperfect information

Alpaga First prototype for solving parity games of imperfect information Implemented in Python + CUDD ≤1000 LoC Solves 50 states, 28 observations, 3 priorities (explicit game graph)

Some experiments SizeObsPrioritiesTime (s) Game144Reach..1. Game232Reach..1. Game Game Game Game Game Locking2214Safety.6. Mutex

Alpaga First prototype for solving parity games of imperfect information Outlook Symbolic game graph Compact representation of strategies Almost-sure winning Relaxing visibility

Questions ? Thank you !

References [Reif84] J. H. Reif. The Complexity of Two-Player Games of Incomplete Information. J. Comput. Syst. Sci. 29(2): , 1984 [CSL’06] K. Chatterjee, L. Doyen, T. A. Henzinger, and J.-F. Raskin. Algorithms for Omega-regular Games of Incomplete Information. Proc. of CSL, LNCS 4207, Springer, 2006, pp [Concur’08] D. Berwanger, K. Chatterjee, L. Doyen, T. A. Henzinger, and S. Raje. Strategy Construction for Parity Games with Imperfect Information. Proc. of Concur, LNCS 5201, Springer, 2008, pp

Alpaga demo Login on mtcserever Cd research/2008/StrategyConstruction/CodeMartin/Alpaga-2008-Aug-20/alpaga Help: python src/alpaga.py –h Locking example: python src/alpaga.py -t -i examples/locking.gii –Interactive mode: >> go