Finite state (to get computability of the synthesis). Nondeterministic (devilish/don't ... Incomplete information on eff
Automatic Synthesis of a Global Behavior from Multiple Distributed Behaviors Sebastian Sardina1 1
Fabio Patrizi2
Giuseppe De Giacomo2
Department of Computer Science and Information Technology RMIT University Melbourne, AUSTRALIA
2
Dipartimento di Informatica e Sistemistica Sapienza Universita’ di Roma Roma, ITALY
Twenty-Second Conference on Artificial Intelligence
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
1 / 17
Behavior Composition [IJCAI-07] Environment description of (virtual) actions, prec. & effects
Available Behaviors description of the behavior of available agents/devices
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
2 / 17
Behavior Composition [IJCAI-07] Environment description of (virtual) actions, prec. & effects
Target Behavior desired behavior
Available Behaviors description of the behavior of available agents/devices
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
2 / 17
Behavior Composition [IJCAI-07] Environment description of (virtual) actions, prec. & effects
Scheduler
Target Behavior desired behavior
Available Behaviors description of the behavior of available agents/devices
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
2 / 17
Behavior Composition: The setting studied 1
Environment: Describe precondition and effect of actions. Finite state (to get computabiliy of the synthesis). Nondeterministic (devilish/don’t know nondeterminism). Represented as a (finite) transition system.
2
Available behaviors: Describe the capabilities of various agents/devices. Finite state (to get computability of the synthesis). Nondeterministic (devilish/don’t know nondeterminism). Can access the state of the environment. Can not access the state of the other available behaviors. Represented as (finite) transition systems with guards.
3
Target behavior: As available behaviors, but deterministic. it’s a spec. of the desired behavior: we know what we want! Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
3 / 17
Behavior Composition: The setting studied 1
Nondeterministic environment: Incomplete information on effects of actions in the domain. Action outcome depends on external (not modeled) events.
push
e2
push
e3
e1
Sardina, Patrizi, De Giacomo ()
act act
e4 e5
Synthesis from Multiple Distributed Behaviors
AAAI 2007
4 / 17
Behavior Composition: The setting studied 1
Nondeterministic environment: Incomplete information on effects of actions in the domain. Action outcome depends on external (not modeled) events.
push
e2
push
e3
e1
2
act act
e4 e5
Nondeterministic available behaviors: Incomplete information on the actual behavior. Mismatch behavior description and actual agents/devices.
e2 : paint b1 e3 : clean
Sardina, Patrizi, De Giacomo ()
b2 b3
b4
pick pick
Synthesis from Multiple Distributed Behaviors
b6 b8
AAAI 2007
4 / 17
Behavior Composition: The setting studied Deterministic target behavior: it’s a spec. of a desired behavior.
t1
t3
paint
restart push
dispatch
t2 clean
t4
t5 dispatch
Concurrent actions allowed (in preparation for distribution): multiple actions performed at the same time environment, available behaviors, target behavior allow for concurrent actions New AAAI-07
t10
{liftLeft, liftRight}
{liftLeft}
t11
t2
¬ok
{liftLeft, liftRight} ok {liftRight} ¬ok
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
5 / 17
Behavior Composition [IJCAI-07] Environment description of (virtual) actions, prec. & effects
Scheduler
Target Behavior desired behavior
Available Behaviors description of the behavior of available agents/devices
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
6 / 17
Behavior Composition [IJCAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c nisti ble i m r Scheduler olla Behavior dete ontrTarget c y full desired behavior ic inist le m r e dete vab non y obser trollabl Available Behaviors l l n fu lly co description of the behavior of available agents/devices a i part
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
6 / 17
Behavior Composition [IJCAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c nisti ble i Centralized Problem m r Scheduler olla Behavior dete ontrTarget c y ll desired behavior Synthesize a centralized controllerfuthat realizes the target behavior in the environment by tic issuitably coordinating the available behaviors. n i m eter ervable ble d n no y obs trolla Available Behaviors full lly con description of the behavior of available agents/devices a i part
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
6 / 17
Example: Centralized controller c a
Target
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c ;a
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c ;a;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Example: Centralized controller c a
Target b;c ;a;c ;a;c
b NextAct:
Controller act = a delegate 2 act = b delegate 1 act = c if (state2 = S21 ) delegate 2 else delegate 1
NextState: – // stateless c Behavior 1 c b S10 S11 Sardina, Patrizi, De Giacomo ()
a S20
Synthesis from Multiple Distributed Behaviors
c a
Behavior 2 S21 AAAI 2007
7 / 17
Contributions on centralized problem Technique for automatic synthesis of the centralized controller based on PDL satisfiability. =⇒ deals with concurrent actions! Computational complexity characterization of the problem: EXPTIME-complete. =⇒ deals with concurrent actions! Normal form for the controller: nexta : Σ × S1 . . . Sn × E × 2A → 2A nexts : Σ × E × 2A → Σ Finite state Bounded by # number of states bound is tight!
Sardina, Patrizi, De Giacomo ()
Independent from available service states
Synthesis from Multiple Distributed Behaviors
AAAI 2007
8 / 17
Distribute the scheduler? Composition problem is of particular interest in settings where components are distributed and no central mediator is available. Examples: independent RoboCup players; Robot Ecologies; peer devices. In such cases, behavior components are not controllable as a whole. Thus, unrealistic to rely on a centralized scheduler! too tight coordination too much communication controller cannot be embodied anywhere
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
9 / 17
Distribute the scheduler? Composition problem is of particular interest in settings where components are distributed and no central mediator is available. Examples: independent RoboCup players; Robot Ecologies; peer devices. In such cases, behavior components are not controllable as a whole. Thus, unrealistic to rely on a centralized scheduler! too tight coordination too much communication controller cannot be embodied anywhere
Nonetheless, we can rely on: local control of each component (via “local controllers”); some kind of communication among such local controllers. Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
9 / 17
Behavior Composition [IJCAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c nisti ble i m r Scheduler olla Behavior dete ontrTarget c y full desired behavior ic inist le m r e dete vab non y obser trollabl Available Behaviors l l n fu lly co description of the behavior of available agents/devices a i part
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
10 / 17
The Distributed Behavior Composition [AAAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c nisti ble i m r Scheduler olla Behavior dete ontrTarget c y full desired behavior ic inist le m r e dete vab non y obser trollabl Available Behaviors l l n fu lly co description of the behavior of available agents/devices a i part
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
10 / 17
The Distributed Behavior Composition [AAAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c nisti ble i m r Scheduler olla Behavior dete ontrTarget c y full desired behavior ic inist le m r e dete vab non y obser trollabl Available Behaviors l l n fu lly co description of the behavior of available agents/devices a i part
· · · · · · · · · · · · · · · Broadcasting Channel · · · · · · · · · · · · · · · Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
10 / 17
The Distributed Behavior Composition [AAAI-07] ic inist le m r e vab det Environment non y obser dictable l description of (virtual) actions, prec. & effects l e r u f l ly p a i t r pa c Distributed Problem nisti ble i m r Scheduler olla Behavior dete ontrTarget c y Synthesize a set of local controllers full thatdesired behavior together realize the target behavior in the ticenvironment by suitably coordinating the inisavailable m r behaviors though message exchange. le e dete vab non y obser trollabl Available Behaviors full lly con description of the behavior of available agents/devices a i part
· · · · · · · · · · · · · · · Broadcasting Channel · · · · · · · · · · · · · · · Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
10 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c ;a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c ;a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c ;a NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c ;a;c NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Example: Distributed controllers c a b NextAct: act = a Controller 1 no-op act = b no-op act = c if ((S10 ∧ “2 : cannot c“) ∨ S11 ) do c else no-op NextMsg: – // no msgs generated NextState: – // stateless Behavior 1
c
S10 Sardina, Patrizi, De Giacomo ()
c b
Target a;c ;a;c NextAct: act = a Controller 2 do a act = b do b act = c if S21 do c else no-op NextMsg: if (S20 after a) send “2 : cannot c” NextState: – // stateless a
S11
S20
Synthesis from Multiple Distributed Behaviors
c a
S21 AAAI 2007
11 / 17
Distributed problem vs centralized problem: how they compare?
Does the distributed problem admit solutions when the centralized does not? Or is the converse true? Is the distributed problem more/less complex from the computational point of view? Are there techniques for the distributed problem? We study these issued under the following assumptions: Local controllers can synchronize on actions issued by the target. Local controllers can exchange an unlimited amount of message types, but once per action. “Pure setting”: no further Channel is fully reliable. constraints except for the distribution itself
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
12 / 17
Contribution on distributed problem Theorem Distributed problem as a solution iff the centralized problem does. =⇒ Thus, the computational complexity of the two problems is identical (EXPTIME-complete) Theorem From a finite central controller one can obtain the set of finite local controllers (exchanging finite message types) for the distributed problem. And vice-versa.
Theorem Message types required are bounded by #states of the available behaviors (tight). =⇒ We have a technique to automatically synthesize finite local controllers exchanging message types (bounded as above). Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
13 / 17
Local controllers from central ones: how-to Finite local controllers have the form: nextai : Σ × Si × E × 2M × 2A → 2A nextmi : Σ × Si × E × 2M × 2A × Si → 2M nextsi : Σ × Si × E × 2M × 2A → Σ
From centralized controller in normal form: nexta : Σ × S1 . . . Sn × E × 2A → 2A nexts : Σ × E × 2A → Σ
... define local controllers as: nextai (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A) = Ai iff nexta(σ, s1 , . . . , sn , e, A) = [A1 , . . . , Ai , . . . , An ]; nextmi (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A, s 0 ) = “i : si “ iff si0 ∈ δ(si , nextai (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A)) nextsi (σ, −, e, −, A) = nexts(σ, e, A).
Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
14 / 17
Local controllers from central ones: how-to Finite local controllers have the form: nextai : Σ × Si × E × 2M × 2A → 2A nextmi : Σ × Si × E × 2M × 2A × Si → 2M nextsi : Σ × Si × E × 2M × 2A → Σ
From centralized controller in normal form: nexta : Σ × S1 . . . Sn × E × 2A → 2A nexts : Σ × E × 2A → Σ
... define local controllers as:
Optimal!!!
nextai (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A) = Ai iff nexta(σ, s1 , . . . , sn , e, A) = [A1 , . . . , Ai , . . . , An ];
Look up at current state of behavior is not needed
nextmi (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A, s 0 ) = “i : si “ iff Look up at cursi0 ∈ δ(si , nextai (σ, si , e, {“1 : s1 “, . . . , “n : sn “}, A)) rent messages nextsi (σ, −, e, −, A) = nexts(σ, e, A). is not needed Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
14 / 17
Conclusions Further work More efficient synthesis techniques based on the formal notion of simulation to take advantages of symbolic techniques at the base of model checking
Robust solutions: use simulation for with just-in-time composition
Multiple target behaviors: build virtual agents community instead of virtual isolated agents
Partial observable environment and available behavior states not so simple extension
Specific further work on distributed problem More asynchronous accounts to avoid synchronizing at each action
Consider limits of the communication channel a priori limited bandwidth: a form of further constraints on the solution unreliable channel: robust solutions
Point-to-point communication instead of broadcasting a form of further constraints on the solution
Local environments instead of a single shared environment simple extension, but interesting in practice Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
15 / 17
Structure of the PDL Encoding (distributed case) V Φ = Init ∧ atu0 ∧ [u](Φ0 ∧ i=1,...,n Φi ∧ Φe ∧ Φadd )
Initial state of al behaviors
Target turn initially
PDL encoding of target behavior PDL encoding of the i-th available behavior + environment
Encoding of environment
General constraints
PDL encoding is polynomial in the size of the target behavior, available behaviors, and environment. Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
16 / 17
Local Controller Programs We assume a set of possible messages M (no a priori limits). A local behavior controller for behavior B is a pair of functions C = (P, B): + P : HB × 2A → 2A ;
+ B : HB × 2A × S → 2M .
+ A behavior history h ∈ HB is a sequence of the form:
(s 0 , e 0 , M 0 ) · A1 · (s 1 , e 1 , M 1 ) · · · (s k−1 , e k−1 , M k−1 ) · Ak · (s k , e k , M k ) A behavior history contains all the local observable information so far. To take a decision, P has full access to the past, but no access to the future.
The Distributed Problem Synthesize a set of local controllers P1 , . . . , Pn that realizes the target behavior T making use of the available behaviors B1 , . . . , Bn and exchanging messages in M. Sardina, Patrizi, De Giacomo ()
Synthesis from Multiple Distributed Behaviors
AAAI 2007
17 / 17