Optimal Reachability in Divergent Weighted Timed Games
Benjamin Monmege
Aix-Marseille Université, LIF, CNRS, France with Damien Busatto-Gaston and Pierre-Alain Reynier
May 19, 2017
published at FoSSaCS 2017
Motivation: quantitative aspects of real-time synthesis Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller
Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller
Two-player timed game
Among all valid controller, choose a good/cheap/efficient one
Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis
Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller
Two-player timed game
Among all valid controller, choose a good/cheap/efficient one
Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis
Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one
Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis
Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Motivation: quantitative aspects of real-time synthesis
Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
= ⇒ model, e.g., production/consumption of resources
Weighted timed games
s1
s2 s3
s4 s5
s6
x>0 x:= 0
x61
x62
x<1 x:= 0
x>1 x>1
x:= 0
x>1 x:= 0
x>1
Timed automaton with state partition between 2 players + reachability objective
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)
0.4,&
−−−−→(s4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)
0.6,→
−−−−→(s5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)
1.5,←
−−−−→(s4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2)
1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8
(s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · · 1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
total weight until otherwise
Weighted timed games
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Timed automaton with state partition between 2 players + reachability objective + linear rates on states + discrete weights on transitions
(s1,0)−−−−→(s0.4,& 4,0.4)−−−−→(s0.6,→ 5,0)−−−−→(s1.5,← 4,0)−−−−→(s1.1,→ 5,0)−2,%−−→(,2) 1×0.4+1 −3×0.6+0 +1×1.5+0 −3×1.1+0 +1×2+2 = 1.8 (s1,0)−−−−→(s0.2,% 2,0)−−−−→(s0.9,→ 3,0.9)−0.2,−−−→(s3,0)−0.9,−−−→(s3,0) · · ·
1×0.2+0 +2×0.9+0 −1×0.2+0 −1×0.9+0 · · · = +∞
Weight of an execution :
(+∞ ifnot reached
Strategies and objectives
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Strategy for a player: map finite executions to a delay and a transition
Objective of player#: reachandminimise the weight
Objective of player2: avoidor, if not possible, maximise the weight Main object of interest:
Val(`, ν) = inf
σMin∈StratMin sup
σMax∈StratMax
Weight(Exec(`, ν,σMin,σMax))∈R What weight can players guarantee? Find (almost) optimal strategy?
Strategies and objectives
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Strategy for a player: map finite executions to a delay and a transition Objective of player#: reachandminimise the weight
Objective of player2: avoidor, if not possible, maximise the weight
Main object of interest: Val(`, ν) = inf
σMin∈StratMin sup
σMax∈StratMax
Weight(Exec(`, ν,σMin,σMax))∈R What weight can players guarantee? Find (almost) optimal strategy?
Strategies and objectives
1 s1
2 s2
−1 s3
−3 s4
1 s5
s6
x>0 x:= 0 0 x61 1
x62 0
x<1 x:= 0 0
x>1 x>1 1
x:= 0 0 x>1 x:= 0 0
x>1 2
Strategy for a player: map finite executions to a delay and a transition Objective of player#: reachandminimise the weight
Objective of player2: avoidor, if not possible, maximise the weight Main object of interest:
Val(`, ν) = inf
σMin∈StratMin
sup
σMax∈StratMax
Weight(Exec(`, ν,σMin,σMax))∈R
The real motivation!
Environment k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Controller?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Customer?? | = Spec
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Customer?? | = Beer!
Two-player game
Real-time requirements/environment = ⇒ real-time controller Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Customer?? | = Beer!
Two-player game
“I want a beer, and I want it fast! But barman needs time...”
Two-player timed game
Among all valid controller, choose a good/cheap/efficient one Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Customer?? | = Beer!
Two-player game
“I want a beer, and I want it fast! But barman needs time...”
Two-player timed game
“I want a good beer, but I want it cheap!”
Two-player weighted timed game
Main motivation since my postdoc here: negative weights
The real motivation!
Bar k Customer?? | = Beer!
Two-player game
“I want a beer, and I want it fast! But barman needs time...”
Two-player timed game
“I want a good beer, but I want it cheap!”
Two-player weighted timed game
Main motivation since my postdoc here: drink tasty beers!
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly. time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp. algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013)
I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly. time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp. algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly. time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp. algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly. time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp. algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly.
time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp. algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly.
time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp.
algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004)
F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly.
time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp.
algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
State of the art
Value problem: decide whether Val(`, ν)6K?
I 1 player (weighted timed automaton): PSPACE-complete
I Algorithm based on regions(Bouyer, Brihaye, Bruyère, and Raskin 2007);
I PSPACE-hard with at least 2 clocks(Fearnley and Jurdziński 2013) I 2 players: undecidableeven with non-negative weights and 3 clocks
(Brihaye, Bruyère, and Raskin 2005; Bouyer, Brihaye, and Markey 2006)
I 1 clockandnon-negative weights: exp. algo. (Bouyer, Larsen, Markey, and Rasmussen 2006)
I 1 clockand62 location-weights from{−d,0,+d}: pseudo-poly.
time algo. (Brihaye, Geeraerts, Narayanan Krishna, Manasa, Monmege, and Trivedi 2014)(corner-point abstraction)
I non-negative weights and strictly non-Zeno-cost cycles: 2-exp.
algo. (Bouyer, Cassez, Fleury, and Larsen 2004; Alur, Bernadsky, and Madhusudan 2004) F(x)(`,ν)=
(sup
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMax
inf
(`,ν)−−→d,t (`0,ν0)
d×Weight(`) + Weight(t) +x(`0,ν0) if`∈LMin
Missing: decidable fragment of games without constraints on number of clocks, and with negative weights
A special case first: Weighted (untimed) games
v1
v2 v3
v4 v5
v6
0
1
0
0
1
0 1
2
Weighted oriented graph with vertices partition between 2 players + reachability objective
A special case first: Weighted (untimed) games
v1
v2 v3
v4 v5
v6
0
1
0
0
1
0 1
2
Weighted oriented graph with vertices partition between 2 players + reachability objective
v1
&
−→v4
−→v→ 5
−→v← 4
−→v→ 5
−→%
1 +1 +2 = 4
v1
−→v% 2
−→v→ 3−→v3−→v3 · · ·
· · · = +∞(not reached)
Weight of a path:
(+∞ if not reached
total weight until otherwise
Strategies and objectives
v1
v2 v3
v4 v5
v6
0
1
0
0
1
0 1
2
Player#’s objective: reachandminimise the cost
Player2’s objective: avoidor, if not possible, maximise the weight Strategy for a player: map finite paths to edges
Main object of interest:
Val(v) = inf
σMin∈StratMin
sup
σMax∈StratMax
Weight(Exec(v,σMin,σMax))∈Z What weight can players guarantee? Find optimal strategy?
State of the art
Value computation
I non-negative weights: polynomial algo. (Khachiyan, Boros, Borys, Elbassioni, Gurvich, Rudolf, et al. 2008)
"Dijkstra on 2 players games"
I with negative weights : pseudo-poly algo. (Brihaye, Geeraerts, Haddad, and Monmege 2016)
"value iteration algorithm"
F(x)v =
min
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMin max
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMax.
I Value−∞: detection is as hard as solving parity games (NP∩co-NP)
State of the art
Value computation
I non-negative weights: polynomial algo. (Khachiyan, Boros, Borys, Elbassioni, Gurvich, Rudolf, et al. 2008)
"Dijkstra on 2 players games"
I with negative weights : pseudo-poly algo. (Brihaye, Geeraerts, Haddad, and Monmege 2016)
"value iteration algorithm"
F(x)v =
min
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMin max
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMax.
I Value−∞: detection is as hard as solving parity games (NP∩co-NP)
State of the art
Value computation
I non-negative weights: polynomial algo. (Khachiyan, Boros, Borys, Elbassioni, Gurvich, Rudolf, et al. 2008)
"Dijkstra on 2 players games"
I with negative weights : pseudo-poly algo. (Brihaye, Geeraerts, Haddad, and Monmege 2016)
"value iteration algorithm"
F(x)v =
min
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMin max
e=(v,a,v0)∈EWeight(e) +xv0 ifv ∈VMax.
I Value−∞: detection is as hard as solving parity games (NP∩co-NP)
Contribution 1: divergent weighted games
Property of the underlying graph:
Divergence
Every cycle have total weight either6−1 or>1, i.e., no cycles of weight = 0.
Contribution 1: divergent weighted games
Property of the underlying graph:
Divergence
Every cycle have total weight either6−1 or>1, i.e., no cycles of weight = 0.
Theorem:
We can compute the value of a divergent weighted game in poly. time.
Contribution 1: divergent weighted games
Property of the underlying graph:
Divergence
Every cycle have total weight either6−1 or>1, i.e., no cycles of weight = 0.
Theorem:
We can compute the value of a divergent weighted game in poly. time.
Theorem:
We can decide in PTIME if a weighted game is divergent.
Divergent weighted games analysis
divergence property
characterisation:
p>1
−q6−1
Divergent weighted games analysis
divergence property
characterisation: All the simple cycles in a SCC have the same sign
p>1
−q6−1 −q6−1 α β
p>1
Divergent weighted games analysis
divergence property
characterisation: All the simple cycles in a SCC have the same sign
class decision value computation
Value computation in a divergent weighted game
I Detect and remove +∞vertices (outside of the attractor of player #toward)
I SCC decomposition
I Value computation SCC by SCC, bottom-up
Value computation in a divergent weighted game
I Detect and remove +∞vertices (outside of the attractor of player #toward)
I SCC decomposition
I Value computation SCC by SCC, bottom-up
Value computation in a divergent weighted game
I Detect and remove +∞vertices (outside of the attractor of player #toward)
I SCC decomposition
I Value computation SCC by SCC, bottom-up
Value computation in a divergent weighted game
I Detect and remove +∞vertices (outside of the attractor of player #toward)
I SCC decomposition
I Value computation SCC by SCC, bottom-up
positive SCC
I The "value iteration" algorithm converges in linear time
Positive SCC: value iteration converges in linear time
I W := maxe∈E|Weight(e)|
I No negative cycles in the SCC =⇒no vertices of value−∞
I K := maxv|xnv|<∞, withn=|V|
I Let p>(2K +W(n−1))n. Values obtained after n+psteps are identical to those obtained after nsteps only!
I Ifxn+pv <xnv ∃v0, π:v →pv0 of weightxn+pv −xnv0
I |π|>(2K+W(n−1))n=⇒ ∃v00appearing>2K+W(n−1) times
I πcan be decomposed into>2K+W(n−1) cycles (positive!) and a finite playπ0 visiting each vertex at most once
I Weight(π)>2K+W(n−1)−(n−1)W = 2K
I xn+pv −xnv0>2K, soxn+pv >2K+xnv0 >K.
I ButK>xnv, soxn+pv >xnv: contradiction.
I Therefore, stabilisation after nsteps only
Positive SCC: value iteration converges in linear time
I W := maxe∈E|Weight(e)|
I No negative cycles in the SCC =⇒no vertices of value−∞
I K := maxv|xnv|<∞, withn=|V|
I Let p>(2K +W(n−1))n. Values obtained after n+psteps are identical to those obtained after nsteps only!
I Ifxn+pv <xnv ∃v0, π:v →pv0 of weightxn+pv −xnv0
I |π|>(2K+W(n−1))n=⇒ ∃v00appearing>2K+W(n−1) times
I πcan be decomposed into>2K+W(n−1) cycles (positive!) and a finite playπ0 visiting each vertex at most once
I Weight(π)>2K+W(n−1)−(n−1)W = 2K
I xn+pv −xnv0>2K, soxn+pv >2K+xnv0 >K.
I ButK>xnv, soxn+pv >xnv: contradiction.
I Therefore, stabilisation after nsteps only
Positive SCC: value iteration converges in linear time
I W := maxe∈E|Weight(e)|
I No negative cycles in the SCC =⇒no vertices of value−∞
I K := maxv|xnv|<∞, withn=|V|
I Let p>(2K +W(n−1))n. Values obtained after n+psteps are identical to those obtained after nsteps only!
I Ifxn+pv <xnv ∃v0, π:v →pv0 of weightxn+pv −xnv0
I |π|>(2K+W(n−1))n=⇒ ∃v00appearing>2K+W(n−1) times
I πcan be decomposed into>2K+W(n−1) cycles (positive!) and a finite playπ0 visiting each vertex at most once
I Weight(π)>2K+W(n−1)−(n−1)W = 2K
I xn+pv −xnv0>2K, soxn+pv >2K+xnv0 >K.
I ButK>xnv, soxn+pv >xnv: contradiction.
I Therefore, stabilisation after nsteps only