motion coordination using virtual nodes

51
Motion Coordination using Virtual Nodes Nancy Lynch Sayan Mitra Tina Nolte Recently submitted to CDC 2005

Upload: ely

Post on 14-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Motion Coordination using Virtual Nodes. Nancy Lynch Sayan Mitra Tina Nolte. Recently submitted to CDC 2005. Motion Coordination Problem. Curve Γ. Set of mobile nodes. B. Ideal Solution. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Motion Coordination using Virtual Nodes

Motion Coordination using Virtual Nodes

Nancy Lynch

Sayan Mitra

Tina Nolte

Recently submitted to CDC 2005

Page 2: Motion Coordination using Virtual Nodes

Motion Coordination Problem

B

Curve Γ

Set of mobile nodes

Page 3: Motion Coordination using Virtual Nodes

Ideal Solution

B

Curve Γ

Given some curve Γ, and a finite but a priori unknown set of mobile nodes, initially in arbitrary positions, move the nodes so that they are evenly spaced on the curve.

Page 4: Motion Coordination using Virtual Nodes

Approximate Solution

Use only local information about Γ

Some nodes are not on Γ

Distribution “approximately” proportional to length in each zone

Even spacing in each zone

Page 5: Motion Coordination using Virtual Nodes

Framework using VNs• Programming a large number of nodes can be hard

• Consistent decision making

• Stationary Virtual Nodes (VN) located in disjoint zones

• Acts like a “centralized coordinator” for the zone

• Directs motion of Client Nodes (CN) in the zone

• Useful for solving other coordination problems

VN1,1

VN1,2

VN1,3

VN2,1

VN2,2

VN2,3

B

CNi

CN1

CN2

Page 6: Motion Coordination using Virtual Nodes

Definitions

differentiable parameterized curve Γ: P B P is an interval in the real line

regular : for all p, |Γ’(p)| ≠ 0

arc length s(Γ,a,b) =

simple : does not cross Γ-1(x) = p, unique

parameterized by arc length: for all p,| Γ’(p)| =1 s(Γ,a,b) = b –a

x1, x2,… xn are evenly spaced on Γ if for each i

1≤ i ≤ n, pi = Γ-1(xi), and

pi – pi-1 = pi+1 - pi

b

a

dp|(p)' |

Page 7: Motion Coordination using Virtual Nodes

Ph : domain of Γh

|Ph| : size of the interval Ph also length of Γh

qh : quantized length

qmin (nonzero)

qmax

Definitions (cont.)

B2,1

B1,2

B3,4

B2,2

Γ3,4Γ2,2Γ2,1

,|P| h

Page 8: Motion Coordination using Virtual Nodes

Goal

Design algorithm that runs on mobile nodes such that, if failures and recoveries stop after a certain point in time, then

(a) within finite time the set Yh of nodes in each zone Bh, h є

H, becomes fixed and |Yh| is “approximately” proportional

to qh,

(b) within finite time the nodes in zone Bh are on Γh, and

(c) in the limit, the nodes in zone Bh are evenly spaced on Γh.

VN architecture next.

Page 9: Motion Coordination using Virtual Nodes

Physical Layer

Bounded square B in R2

Three kinds of HIOA: PNi, i in I, physical nodes LBcast, local broadcast

service RW, real world

B

RW LBcast

send(m)i

receive(m)ix2

v2

realtime

PNi

PN1

PN2

realtime x

Page 10: Motion Coordination using Virtual Nodes

Physical Layer : PNi

Input variables: x in B: location realtime in R: time

Output variables: v in R2: velocity s.t. |v| ≤ vc

One of two modes: Active Inactive:

• PNi makes no local transitions.

• Non-recover input actions do not change the state.

• Locally controlled variables are constant and |v| = 0.

Can fail and recover: Fail: Sets mode to inactive,

initializes state. Recover: Sets mode to active.

Can send and receive messages through LBcast.

May have other state components and actions.

B

RW LBcast

send(m)i

receive(m)ix2

v2

realtime

PNi

PN1

PN2

realtime x

Page 11: Motion Coordination using Virtual Nodes

Physical Layer : LBcast Local broadcast for PNs

parameterized by: Rp: broadcast radius dp: max. message delay

If PNi performs a send(m) at time t, a receive(m) occurs within interval [t, t+dp] at every PNj active and within Rp distance of PNi during the interval

B

RW LBcast

send(m)i

receive(m)ix2

v2

realtime

PNi

PN1

PN2

realtime x

Page 12: Motion Coordination using Virtual Nodes

Physical Layer : RW

Input variables:vi, velocity of PNi

Output variables:xi, location of PNi

based on velocity realtime

Connected to PNs and LBcast

B

RW LBcast

send(m)i

receive(m)ix2

v2

realtime

PNi

PN1

PN2

realtime x

Page 13: Motion Coordination using Virtual Nodes

Virtual Layer B partitioned into a m X m grid of square

zones Bh, h in H: Each zone is a square with sides of

length b H is set of center coordinates of squares Nbrs are NSEW grid squares

Four kinds of HIOA: CNi, i in I: similar to physical layer’s PNi

VNh, h in H, virtual nodes

VLBcast, local bcast for virtual layer RW: similar to physical layer’s

VN1,1

VN1,2

VN1,3

VN2,1

VN2,2

VN2,3

B

RW VLBcast

send(m)i receive(m)i

x2

v2

realtime

CNi

CN1

CN2

realtime x

1

2

m

b

send(m)1,3

receive(m)1,3

Page 14: Motion Coordination using Virtual Nodes

Virtual Layer: VNh

Located at center of zone h Discrete, no clock MMT automaton

Task structure • Equivalence relation on locally

controlled actions• From time when a task is enabled,

within dMMT time some action in the task occurs

Can send and receive messages through VLBcast

Can fail and recover: Fail: Disables internal, output

actions, prevents non-recover inputs from changing the state, and initializes state variables.

Recover: VN actions become enabled again and all tasks restart.

• If VNh is failed and a CN enters zone h and remains active and in the zone for dr time, a recover occurs within that dr time.

VN1,1

VN1,2

VN1,3

VN2,1

VN2,2

VN2,3

B

RW VLBcast

send(m)i receive(m)i

x2

v2

realtime

CNi

CN1

CN2

realtime x

1

2

m

b

send(m)1,3

Page 15: Motion Coordination using Virtual Nodes

Virtual Layer: VLBcast

Similar to LBcast Allows communication

between VNs and between VNs and CNs.

Rv ≥ b Guarantees neighboring

active VNs can communicate

dv= 2dp+ε Require Rp ≥ sqrt(5)b

VN1,1

VN1,2

VN1,3

VN2,1

VN2,2

VN2,3

B

RW VLBcast

send(m)i receive(m)i

x2

v2

realtime

CNi

CN1

CN2

realtime x

1

2

m

b

send(m)1,3

Page 16: Motion Coordination using Virtual Nodes

Implementing the Virtual Layer Almost exactly the algorithm in the VMN work. PNs in a zone cooperate to emulate a VN:

Replicated state machine approach To ensure the state remains consistent across emulators, we

ensure that emulators perform the same actions in the same order on the replicated state:

• When an action of the VN is enabled or a receive occurs, an emulator broadcasts a suggestion to perform the action to other emulators.

• In order to ensure the same suggested actions in the same order are received at each emulator, the emulators use an easy-to-implement totally-ordered broadcast to send the action suggestions.

• An emulator simulates performing suggested actions it receives on its local version of the VN state.

Page 17: Motion Coordination using Virtual Nodes

Differences from VMN work

Modeled a little differently (these are MMTs, versus plain vanilla IOAs) Implementation can guarantee dMMT ≥ dp + ε

Virtual node locations are stationary Failed VNs restart within dr time if a CN enters

and stays in the VN’s zone for that long Implementation can guarantee dr ≥ 3dp + 4ε

Emulators have continuous location updates from RW rather than just periodic ones

Page 18: Motion Coordination using Virtual Nodes

Round-based Algorithm Using the Virtual Layer

Each round:1. Each CN sends a message to its local VN, letting it know

it is in the VN’s zone.2. Each VN exchanges messages with neighboring zone

VNs, letting them know how many CNs it has.3. Each VN calculates:

(a) which of its local CNs should be assigned to other zones (b) what its local CNs’ new target points should be.

4. Each VN broadcasts the new target points.5. Each CN reads VN target point broadcasts to determine

what its new target point is and moves to it.

Page 19: Motion Coordination using Virtual Nodes

Implementing the rounds

Recall: VNs do not have access to clocks! So how do we implement rounds?

Recall:• CNs have synchronized realtime clocks.

• There are upper bounds for the amount of time it takes a VN to execute an enabled action (dMMT) and the amount of time for a

message to be delivered (dv).

Make a new round begin every δ time. Make CNs send “trigger” messages to VNs.

• Once enough time has passed that VNs are guaranteed to have seen all relevant messages for a step in the round, CNs send trigger messages letting the VNs know it is time to perform the step.

Page 20: Motion Coordination using Virtual Nodes

CN variables, initialization, and trajectories

State variables: x*, target point, initially ┴ round, initially ┴

When a CN becomes active: round ← # of the next full round (┌ realtime/δ ┐) x* ← current location (x)

If target position x* ≠ location x CN moves at speed vc straight to the target

Otherwise it stops.

Page 21: Motion Coordination using Virtual Nodes

VN state

Important state: M: partial map from CN ids to loc (a location) and

round (a round #)• Initially empty

V: partial map from VN ids to num (# of CNs) and round (a round #)

• Initially maps VNh and each of its neighbors to <0,0>

• Derived variable y(g) = num(V(g))

Page 22: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

CN sends cn-update to local VN.

Page 23: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

VN receives cn-update message and stores the information from it in the table M.

Page 24: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

CN sends an exchange-trigger message, letting the VN know it has received all cn-updates by now.

Page 25: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

VN receives first exchange-trigger message in the round from CN, prompting it to send its population information to neighboring VNs in a vn-update message.

Page 26: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

The send of vn-update is enabled but it takes up to the MMT upper bound to occur.

task delay

Page 27: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

The vn-update transmissions between neighbors occurs.

Page 28: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

The VN stores the information in vn-update messages from its neighbors in the table V.

Page 29: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

CN sends a target-trigger message to let the VN know that it has received all vn-update messages from neighbors.

Page 30: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

VN receives first target-trigger message of the round, prompting it to:

1) decide how many and which CNs to reassign to neighboring VNs and

2) calculate and transmit new target points for the CNs in its zone.

Page 31: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

VN receives first target-trigger message of the round, prompting it to:

1) decide how many and which CNs to reassign to neighboring VNs and

2) calculate and transmit new target points for the CNs in its zone.

If VNh has more than e CNs :

If VNh is on Γ (qh ≠ 0):

Let lower = {g in Nbrs: VNg is on the curve

and qg/qh y(h) > y(g)}

• For each g in lower

• VNh assigns ra CNs to VNb unless it can’t afford

them

If VNh is not on Γ and its neighbors are not on Γ :

Let lower = {g in Nbrs: y(h) > y(g)}• For each g in lower

• VNh assigns ra CNs to VNg unless it can’t afford

them

If VNh is not on Γ but has neighbors on Γ :

Divide y(h) – e of VNh’s CNs equally between

all neighbors on the curve

)1|(|22 lowergyhy

q

qra

h

g

)1|(|22 lowergyhyra

Page 32: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

VN receives first target-trigger message in the round, prompting it to:

1) decide how many and which CNs to reassign to neighboring VNs and

2) calculate and transmit new target points for the CNs in its zone.

If CNi is assigned to another zone

target(i) ← center of assigned zone

If CNi is assigned to this zone, but is not located on Γ

target(i) ← closest point on curve

If CNi is assigned to this zone and is on Γ :

Consider CNs assigned to the zone and on Γ ordered by

location parameters

If CNi is first in the ordering

target(i) ← left endpoint of Γh

If CNi is last in the ordering

target(i) ← right endpoint of Γh

If CNi is not first or last in the ordering then

target(i) ← midpoint of the locations of the CNs

immediately before and after it in the ordering

(adjusted by a damping factor p1)

pnp0 p1 p2p3

Page 33: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

The send of target points is enabled but it takes up to the MMT upper bound to occur.

task delay

Page 34: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

The transmission of target points to CNs occurs.

Page 35: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

CN receives and adopts new target point from VN.

Page 36: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

CN moves to new target point and restarts the VN in its zone if it is failed.

Page 37: Motion Coordination using Virtual Nodes

time

VN

CN i

h

Message passing diagram

Page 38: Motion Coordination using Virtual Nodes

Some definitions

H : set of all m x m VNs in B

INΓ

: set of VNs with some part of Γ (qh ≠ 0)

OUTΓ

: H \ INΓ

Page 39: Motion Coordination using Virtual Nodes

Some definitionsCN is active if its mode is active for the duration of round t

C(t): set of active CNs

VN is active if there is some active CN in its zone for the duration of rounds t-1,t

Active(t): set of active VNs

Page 40: Motion Coordination using Virtual Nodes

Some definitions

In(t) = Active(t) ∩ IN

Cin(t) set of active CNs located in VN zones in In(t)

Page 41: Motion Coordination using Virtual Nodes

Some definitions

Out(t) = Active(t) ∩ OUT

Cout(t) set of active CNs located in VN zones in Out(t)

Page 42: Motion Coordination using Virtual Nodes

Correctness

Theorem: If there are no failures or recoveries of client nodes at or

after some round t0, then within a finite number of rounds after t0 :

(a) the set of CNs assigned to each VNh , h є H , becomes fixed,

and the size of the set is proportional to the quantized length qh

within ±10 (2m-1)/(qmin ρ2) , and

(b) all client nodes in Bh for which qh ≠ 0 are located on Γh and

(c) evenly spaced on Γh in the limit.

Page 43: Motion Coordination using Virtual Nodes

Lemma 1: In any round t ≥ t0 :

(1) If the number of CNs assigned to VNh, h in H is at least e, then in round t+1 the number of

CNs assigned to VNh is at least e.

(2) If VNh is active in round t then it stays active in round t+1.

In(t) is subset of In(t+1) and Out(t) is a subset of Out(t+1)

(3) If CNi is assigned to some VNh h in IN in round t, then CNi must be assigned to some VNg in

round t+1 such that g is in IN.

Cin(t) is a subset of Cin(t+1) and Cout(t+1) is a subset of Cout(t)

If VNh has more than e CNs :

If VNh is on Γ i.e. (qh ≠ 0):

Let lower = g in Nbrs: VNg is on Γ and qg/qh y(h) > y(g)

If VNh is not on Γ and its neighbors are not Γ :• Let lower = g in Nbrs: y(h) > y(g)

….

If VNh is not on Γ, but it has neighbors on Γ :

• Divide y(h) – e of VNh’s CNs equally between all neighbors on the curve

If VNh has more than e CNs :

If VNh is on Γ i.e. (qh ≠ 0):

Let lower = g in Nbrs: VNg is on Γ and qg/qh y(h) > y(g)

If VNh is not on Γ and its neighbors are not Γ :• Let lower = g in Nbrs: y(h) > y(g)

….

If VNh is not on Γ, but it has neighbors on Γ :

• Divide y(h) – e of VNh’s CNs equally between all neighbors on the curve

Page 44: Motion Coordination using Virtual Nodes

Lemma 2.1 If g in Out(t) and had fewer assigned CNs than maxg(t) in round t,

then it has fewer assigned CNs in round t+1 than maxg(t),i.e., yg(t+1) ≤ maxg(t) -1

Fix g,h and t. Say h is a VN in g’s neighborhood such that maxg(t) = yh(t). We know yh(t) > yg(t).

Number of CNs that VNg is assigned from VNh in round t is

≤ ρ2 (yh(t) - yg(t))/2 (|lowerh(t)| +1) ≤ ρ2(yh(t) - yg(t))/ 4

Total new CNs assigned to VNg by all four of its neighbors ≤ ρ2 (yh(t) - yg(t))

yg(t+1) ≤ yg(t) + ρ2(yh(t) - yg(t)) = ρ2 yh(t) + (1-ρ2) yg(t)

yg(t+1) < yh(t) as ρ2 <1

(t)y(t) fNbrsf

g Maxg

max

If VNh is not on Γ and its neighbors are not on Γ:

–Let lower = g in Nbrsh: y(h) > y(g)

• For each g in lower• ra ← p2 [y(h)-y(g)]/2(|lower|+1)

• …

Page 45: Motion Coordination using Virtual Nodes

Lemma 2.2 g in In(t), If g had lower density of assigned CNs than dmaxg(t) in round t, then it has lower density than dmaxg(t) in round t+1, i.e.,

Suppose dmaxg(t) = yh(t)/qh for some h in Ing. We know

CNs assigned to g by any neighbor

)()1(

)()(

)1()1(

)(

)()1()1(

)( )(

)()1(

h

h

g

g

h

h

g

g

g

g

h

hggg

gh

hggg

q

ty

q

ty

q

ty

q

ty

q

ty

q

tyqtyty

tyq

tyqtyty

h

h

g

g

q

ty

q

ty )(

)(

)( )(

4

)( )(

)1|)((|2

tyq

tyq

tyq

tyq

tlower

gh

hg

gh

hg

h

f

f

Infg q

tyt Max

g

)()(dmax

2max

)(

)1(

qq

ty

q

ty

h

h

g

g

Page 46: Motion Coordination using Virtual Nodes

Lemma 3: There exists a round Tout after which the set of CNs assigned to any VN in Out(t) is unchanged.

Proof sketch: First show yh(t+1) = yh(t).

maxk(t) = max yh(t) : h є Out(t) , if k = 1

max yh(t) : h є Out(t) and yh(t) < maxk-1(t) , 2 ≤ k ≤ |OUT| ,

maxvnsk(t) = set of VN ids that have maxk(t) CNs assigned

E(t) = (|Cout(t)| , max1(t), |maxvns1(t)|, ... , max|OUT|(t), |maxvns|OUT|(t)|)

Emin = (w|S|, w, |S|,0,0...,0,0) E decreases by some constant amount in each round

1. |Cout(t+1)| < |Cout(t)|

2. |Cout(t+1)| = |Cout(t)| and no reassignments in t, E(t+1) = E(t) 3. Else, A be set of VNs that do reassign in t and have max CNs

Say, A is a subset of maxvnsk(t) , for some k, 1 ≤ k ≤ |OUT|

For any g є Out(t) with yg(t) < maxk(t), h є Nbrsg, yh(t) ≤ maxk(t). From Lemma 2 yg(t+1) ≤ maxk(t) -1

For any VNh , h є A , yh(t+1) = yh(t) - Ʃ rag(t)

Either maxvnsk(t) = A , maxk(t+1) ≤ maxk(t) -1,

or, A is a proper subset of maxvnsk(t) , then |maxvnsk(t+1)| = |maxvnsk(t)| - |A|

Set of CNs assigned to VNh cannot change without changing yh and Cin , because there is no cycle.

Page 47: Motion Coordination using Virtual Nodes

Fix Tout from Lemma 3. Assignments stabilize in the OUT VNs.

Lemma 4: There exists a round Tstab ≥ Tout after which the set of CNs assigned to any VN in In, is unchanged.

Fix Tstabt given by Lemma 4. All assignments stabilize: part (a) of theorem.

Lemma 5:

Assume w.l.o.g. yh(t) ≥ yg(t).

Induction on the number of hops from 1 to 2m -1.

min

1010

qqq

ty

q

ty

gg

g

h

h

min

)12(10

q

m

q

ty

q

ty

g

g

h

h

)1|)((|2

tlowerty

q

tyqhg

h

hg

If VNh is on the curve (qh ≠ 0):

• Let lower = g in Nbrs: VNg is on the curve

and qg/qh y(h) > y(g)

– For each g in lowerh(t)

)1|)((|22 tlowertyty

q

qra hgh

h

gg

Page 48: Motion Coordination using Virtual Nodes

B the beginning of round Tstab+2 , all CNs in Cin are located on Γ: : part (b) of theorem.

Lemma 6: In a sequence of rounds t1 = Tstab, ..., tn. As n , the locations of CNs in

Bh , h є In(t) , are evenly spaced on Γh .

Page 49: Motion Coordination using Virtual Nodes

Proof sketch: Assume w.l.o.g. that VNh is assigned at least two CNs.

At the beginning of round t2, one CN is positioned at each endpoint of Γh.

yh = n + 2

seq(t2) = < p0, i(0)>, ..., < pn+1,i(n+1)>

p0 = inf(Ph) , and pn+1 = sup(Ph) .

pi(tk+1) = pi(tk) + ρ1 [( pi-1(tk) + pi+1(tk))/2 - pi(tk)].

pi(tk+1) = pi(tk) for end points, i= 0, i = n+1

pi = p0 + i(pn+1 - p0)/(n+1) .

pi = 1/2(pi-1 + pi+1) = (1-ρ1)pi + ρ1/2 (pi-1 + pi+1)

ei(k) = pi(tk) – pi

ei(k+1) = pi(tk+1) - pi = (1-ρ1)ei(k) + ρ1/2(ei-1(k) + ei+1(k)) , 2 ≤ i ≤ n-1 ,

e1(k+1) = (1-ρ1)e1(k) + ρ1/2 e2(k) , and

en(k+1) = (1-ρ1)en(k) + ρ1/2 en-1(k) .

e(k+1) = Me(k) , where M is

From symmetry of M , ρ1 ≤ 1 , it can be shown that the largest eigenvalue of M < 1.

lim k Mk = 0 , lim k e(k) = 0 i.e., lim k pi(tk) Pi .

1-ρ1 ρ1/2 0 0 … 0

ρ1/2 1-ρ1 ρ1/2 0 … 0

. . . . . .

0 … 0 ρ1/2 1-ρ1 ρ1/2

0 … 0 0 1-ρ1 ρ1/2

x2

x1 x3

x0

xn+1

p0 p1p2 p3

pn+1

p0 p1 p2p3

pn+1

e2

Page 50: Motion Coordination using Virtual Nodes

Conclusions

We’ve presented a framework for coordinating the motion of mobile nodes using virtual nodes.

What other kinds of analysis should we perform? Effects of bounded rate of failure Effects of noise in dynamics

Ideas for other uses of the framework: Formation of a changing curve Tracking

Page 51: Motion Coordination using Virtual Nodes

References

1. H. Ando, Y. Oasa, I. Suzuki, and M. Yamashita. Distributed memoryless point convergence algorithm for mobile robots with limited visibility. IEEE Transactions on Robotics and Automation, 1999.

2. J. Cortes, S. Martinez, T. Karatas, and F. Bullo. Coverage control for mobile sensing networks. IEEE Transactions on Robotics and Automation, 2004.

3. S. Dolev, S. Gilbert, N. A. Lynch, E. Schiller, A. A. Shvartsman, and J. L. Welch. Virtual mobile nodes for mobile ad hoc networks. In 18th International Symposium on Distributed Computing, 2004.

4. S. Dolev, S. Gilbert, N. A. Lynch, A. Shvartsman, and J. Welch. Geoquorums: Implementing atomic memory in mobile ad hoc networks. In 17th International Symposium on Distributed Computing, 2003.

5. V. Gazi and K. M. Passino. Stability analysis of swarms. IEEE Transactions on Automatic Control, 2003.

6. A. Jadbabaie, J. Lin, and A. S. Morse. Coordination of groups of mobile autonomous agents using nearest neighbor rules. IEEE Transactions on Automatic Control , 2003.

7. J. Lin, A. S. Morse, and B. Anderson. Multi-agent rendezvous problem. In 42nd IEEE Conference on Decision and Control , 2003.

8. M. Merritt, F. Modugno, and M. Tuttle. Time constrained automata. In 2nd International Conference on Concurrency Theory (CONCUR) , 1991.

9. I. Suzuki and M. Yamashita. Distributed autonomous mobile robots: Formation of geometric patterns. SIAM Journal of computing , 1999.