# Robots with Lights: Overcoming Obstructed Visibility Without Colliding

###### Abstract

Robots with lights is a model of autonomous mobile
computational entties
operating in the plane
in Look-Compute-Move cycles:
each agent has an externally visible light
which can assume colors from a fixed set; the
lights are persistent (i.e., the color is not erased at the end
of a cycle), but otherwise
the agents are oblivious.
The investigation of computability in this model, initially suggested
by Peleg,
is under way, and several results have been recently established.
In these investigations, however,
an agent is assumed to be capable
to see through another agent.

In this paper we start the study of computing
when
visibility is obstructable, and investigate
the most basic problem for this setting, Complete Visibility:
The agents must reach
within finite time a configuration where they can all see each
other and terminate.
We do not make any assumption on a-priori knowledge of the number
of agents, on rigidity of movements nor on chirality.
The local coordinate system of an agent may change at each
activation.
Also, by definition of lights, an agent can communicate and
remember only a constant number of bits in each cycle.
In spite of these weak conditions, we prove that Complete
Visibility is always solvable, even in the asynchronous
setting,
without collisions and using a small constant number of colors.
The proof is constructive.
We also show how to extend our protocol for Complete
Visibility so that,
with the same number of
colors, the agents solve the (non-uniform) Circle Formation
problem with obstructed visibility.

## 1 Introduction

### 1.1 Framework

In the traditional model of distributed computing by mobile entities in the plane, called robots or agents, each entity is modelled as a point; it is provided with a local coordinate system (not necessarily consistent with that of the other agents); it has sensorial capabilities, called vision, enabling it to determine the position (within its own coordinate system) of the other agents. The agents are anonymous, they are indistinguishable, and they execute the same code.

Agents operates in Look-Compute-Move cycles: when becoming active, an agent uses its sensing capabilities to get a snapshot of its surroundings (Look), then this snapshot is used to compute a destination point (Compute), and finally it moves towards this destination (Move); after that, the agent becomes inactive. In the majority of investigations, the agents are assumed to be oblivious: at the beginning of each cycle, an agent has no recollection of its past observations and computations [11]. Depending on the assumptions on the activation schedule and the duration of the cycles, three main settings are identified. In the fully-synchronous setting, all agents are activated simultaneously, and each cycle is instantaneous. The semi-synchronous setting is like the fully synchronous one except that he set of agents to be activated is chosen by an adversary, subject only to a fairness restriction: each agent will be activated infinitely often. In the asynchronous setting, there is no common notion of time, and no assumption is made on timing of activation, other than fairness, nor on the duration of each computation and movement, other than it is finite.

Vision and mobility provide the agents with stigmergy, enabling the agents to communicate and coordinate their actions by moving and sensing their relative positions. The agents are otherwise assumed to be silent, without any means of explicit direct communication [11]. This restriction enables deployment in extremely harsh environments where communication is not possible, i.e an underwater deployment or a military scenario where wireless communication are impossible or can be jammed. Nevertheless, in many other situations it is possible to assume the availability of some sort of direct communication. The theoretical interest is obviously for weak communication capabilities.

A model employing a weak explicit communication mechanism is that of robots with lights: in this model, each agent is provided with a local externally visible light, which can can assume colors from a fixed set; the agents explicitly communicate with each other using these lights [5, 6, 10, 12, 14, 16]. In this model, the lights are persistent (i.e., the color is not erased at the end of a cycle), but otherwise the agents are oblivious.

The classical model of silent entities and the more recent model of entities with visible lights share a common assumption, that visibility is unobstructed. That is, three or more collinear agents are assumed to be mutually visible. It can be easily argued against such an assumption, and for the importance of investigating computability when visibility is obstructed by presence of the agents: given three collinear agents, the one in the middle blocks the visibility between the other two and they cannot see each other.

Nothing is known on computing with obstructed visibility
except for the investigations on the so-called fat agents
model, where agents are not points but unit discs, and collisions are
allowed^{1}^{1}1In pointilinear models, collisions create
unbreakable symmetries; thus, unless this is the required outcome of
the problem,
their avoidance is required by all solution protocols.
In addition, in real world implementations, collisions (e.g., of two
quad copters)
may have unpredictable outcomes that might be better avoided.
and can be used as an explicit computational tool.
(e.g.,
[2, 4, 1]); and
for
the study of uniformly spreading agents operating in a one dimensional space
(i.e., on a line) [3].
In this paper we start to fill this void, and focus on agents with
visible lights in presence of obstructed visibility.

The problem we investigate is perhaps the most basic in a situation of
obstructed visibility, and it is the one of
the agents reaching a configuration of complete un-obstructeded
visibility. More precisely, this problem, that we shall call Complete Visibility,
requires the agents, starting from an arbitrary initial
configuration where they are in distinct points but might be unable
to see
everybody and might not know the total number of agents^{2}^{2}2The
actual number of agents may be unknown for several reasons; e.g.,
if the deployment of agents has been done by an airplane, a
subset of agents may be lost or destroyed during the landing
process., to reach within finite time a configuration in which every
agent is in a distinct location from which it can see all other
agents, and no longer move.

Among the configurations that achieve complete visibility, a special class is that where all agents are on the perimeter of a circle (not necessarily equally spaced). The problem of forming any such a configuration is called Circle Formation and it has been extensively studied both in the classical model of silent agents and in the ones with visible lights (e.g., [9, 15, 8, 7, 13]). Unfortunately, none of these investigations consider obstructed visibility, and their algorithms do not work in the setting considered here.

### 1.2 Our Contributions

In this paper we study solving Complete Visibility by robots with lights. That is, we consider autonomous and anonymous agents, each endowed with a visible light that can assume a constant number of persistent colors, that are otherwise oblivious, and whose visibility is obstructed by other agents in the line of sight; and we investigate under what conditions they can solve Complete Visibility and at what cost (i.e., how many colors).

We do not make any assumptions on a-priori knowledge on the number of agents, nor on agreement on coordinate systems, unit of distance and chirality; actually, the local coordinate system of an agent may change at each activation. Neither we make any assumption on rigidity of movements; that is, a move may be stopped by an adversary before the agent reaches its destination; the only constraint is that, if interrupted before reaching its destination, the agent moves at least a minimum distance (otherwise, no destination can ever be reached). Also, by definition of lights, an agent can communicate and remember only a constant number of bits in each cycle.

In spite of these weak conditions, we prove that Complete Visibility is always solvable, even in the asynchronous setting, without collisions and using a small constant number of colors. The proof is constructive. We first design a protocol that achieves complete visibility with six colors under a semi-synchronous scheduler. We then show how to transform it into an asynchronous algorithm with only four additional colors. We also show how to extend the protocol so that, under the same weak conditions and without increasing the number of colors, the agents can position themselves on the perimeter of a circle. In other words, we also show how to solve the (non-uniform) Circle Formation problem with obstructed visibility.

Due to lack of space, some of the proofs are sketched and some omitted.

## 2 Model and Definitions

Consider a set of mobile anonymous agents . Each agent has a persistent state variable , which may assume any value in a finite set of colors . We denote by the position occupied by agent at time expressed in some global coordinate system (used only for description purposes, and unknown to the agents); when no ambiguity arises, we omit the indication of time. A configuration is a set of tuples in each defining the position and color of an agent; let denote the configuration at time .

Each agent has its own system of coordinates centered in itself, which does not necessarily agree with those of the other agents, i.e. there is no common unit of measure and not common notion of clockwise orientation. Agents and are visible to each other at time if and only if the segment does not contain any other agents. Let denote the set of the positions and colors of the agents visible to time . We shall call such a set local view. A configuration is said to be obstruction-free if we have ; that is, if all agents can see each other. Two agents and are said to collide at time if .

At any time, agents can be active or inactive. When activated, an agent performs a sequence of operations called Look-Compute-Move: it activates the sensors to obtain a snapshot (called local view ) of the positions of the visible agents expressed in its own coordinate system (Look); it then executes an algorithm (the same for all agents) based on its local view, which returns a destination point and a color (Compute); it then sets its own state variable to and moves towards (Move). The movement may be stopped by an adversary before the agent reaches its destination; the only constraint on the adversary is that, if interrupted before reaching its destination, a robot moves at least a minimum distance (otherwise, no destination can ever be reached).

We consider two schedulers for the activation of the agents: Semi-Synchronous (SSYNC) and Asynchronous (ASYNC). In SSYNC, the time is discrete; at each time instant (called round) a subset of the agents is activated and performs its operational cycle instantaneously. The choice of the activation is done by an adversary, which however activates each agent infinitely often. In ASYNC, there is no common notion of time; each agent is activated independently, and each Compute and Move operation can take an unpredictable (but bounded) amount of time, unknown to the agent.

At the beginning (time t=0), the agents start in an arbitrary configuration occupying different positions, and they are black (the state variable of each one is set to a special symbol ). The goal is for the agents to reach, in finite time, an obstruction-free configuration without ever colliding. We call this problem Complete Visibility. An algorithm is said to solve the problem if it always achieves complete visibility regardless of the choices of the adversary, and from any initial configuration.

Let be the convex hull defined by , let denote the agents on the border of , where is the set of agents ( corner-agents) located at the corners of and is the set of those located on the edges of (edge-agents); let be the set of agents that are interior of ( interior-agents). Let be the number of corners in . Given an agent , we denote by the convex hull of its local view . Let indicate the set of agents in with color at time , similarly we define as the convex hull, of . Analogously defined are the extensions of . Given a configuration , we indicate by the smallest enclosing circle containing (when no ambiguity arises we just use the term ). Given two points with we indicate the line that contains them, and we use the operator to indicate the intersection of lines and segments. Let indicate the Euclidean distance between two points (or a segment and a point); moreover, given we use to indicate the angle with vertex and sides . In the following, with an abuse of notation, when no ambiguity arises, we use to denote both the agent and its position.

## 3 Complete Visibility in SSYNC

In this Section we provide an Algorithm that reaches Complete Visibility in the semi-synchronous setting. The algorithm is described assuming ; we will then show how the agents can easily move to reach this condition starting from a configuration with .

Our algorithm works in two phases: (1) Interior Depletion (ID) and (2) Edge Depletion (ED). The purpose of the Interior Depletion phase is to reach a configuration in which there are no interior-agents. In this phase, the interior-agents move towards an edge they perceive as belonging to the border of the convex hull, and they position themselves between two corner-agents. At the end of this phase, all agents are on . The goal of the Edge Depletion phase is to have all agents in to move so to reach complete visibility.

### 3.1 Phase 1: Interior Depletion Phase

Initially all agents are black. The objective of this phase is to have all agents on , with the corner-agents colored red and the edge-agents colored brown.

Notice that corner (resp. edge) agents are able to recognize their condition in spite of possible obstructions. In fact, if a black agent is activated at some round , and it sees that contains a region of plane that is free of agents and wider than , then knows it is a corner and sets its variable to red. A similar rule is applied to edge-agents; in this case, an edge-agent sets its variable to brown if contains a region of plane free of agents and wide exactly (see Coloring Case of Figure 1).

In the ID phase, corner-agents color themselves red, and no longer move, while edge-agents color themselves brown. Each interior-agent moves to position itself on one of its nearest visible edges of ; note that an edge of can be recognized in ’s local view once it is occupied only by brown and red agents. To prevent collisions, the interior-agent moves towards the chosen edge perpendicularly if and only if it is one with minimum distance to and its destination on is empty; otherwise it does not move. An edge-agent on the destination of an interior one, slightly moves to make room for the interior-agent. The Interior Depletion algorithm is detailed in Figure 1.

It is easy to see that at the end of this phase, all the agents will be positioned on a convex hull.

###### Lemma 1

For any initial configuration there exists a round such that in we have that ; furthermore, this occurs without collisions.

###### Theorem 3.1

There is a round such that the agents occupy different positions on . Moreover, the corner-agents are red, and the edge-agents are brown.

### 3.2 Phase 2: Edge Depletion -ED

The purpose of the ED phase is to move the edge-agents out of the current convex hull to reach a final configuration whose convex hull includes and all agents are on the corners, thus achieving complete visibility.

The algorithm makes an edge-agent move from its edge to a point out of the current convex hull, but within a safe zone. Safe zones are calculated so to guarantee that red agents never cease to be located on corners of the current convex hull, in spite of the movement of the edge-agents. More precisely, the safe zone of consists of the portion of plane outside the current convex hull, such that we have and (see Figure 1(a)).

Note that, due to the mutual obstructions that lead to different local views, edge-agents cannot always compute exactly (see Figure 1(b)). In fact, only when there is a single edge-agent between the two red corner-agents on , the computation of is exact; in any case, we can show that the safe area computed by an agent is and thus still safe.

The migration of edge-agents and their transformation into corner-agents occurs in steps: in fact, if the edge contains more than one edge-agent, our algorithm makes them move in turns, starting from the two agents and that are immediate neighbors of the corners and , respectively. Only once they are out of the convex hull and they are corner of a new edge , other agents on will follow, always moving perpendicularly to . Careful changes of colors are required to coordinate this process. In fact, once the first pair is in position, the two agents will become blue to signal the other brown agents on that it is their turn to move out; they will set their color to red only when there is no interior-agent in the space delimited by and . Once red, their color will never change until completion.

Due to the different estimations of , to semi-synchronicity, and to the unpredictable distance traversed by an agent (possibly stopped before destination), a variety of situations could disrupt this ideal behaviour. In particular, it could happen that only one of the two agents, say , moves while the other stays still, or that moves further from than . In both cases this leads to a configuration in which becomes a interior or edge-agent. This problem is however adjusted by that, when noticing the situation, moves towards until becomes a corner in . A further complication is that might wrongly perceive as a corner and thus decide not to move; this occurs if happens to be collinear with obstructing visibility; such a case is however detected by itself, which uses a different color (orange) to signal that has to move further towards to transform into a corner (see Figure 1(d)).

The detailed algorithm for the ED phase is reported in Figure 3.

Color | Meaning | Transition to: |
---|---|---|

initial color of all agents | ||

agents on edges or having to move to a new edge of | ||

agents moving out of to form a new edge | ||

agents needing to be transformed into corners | ||

corner-agent now forming a new edge , waiting for other agents to move to | ||

a stable corner-agent |

### 3.3 The case of

The strategy of the previous Section works for . It is however simple to have the agent move to reach such a condition from , as described below.

When the agents are necessarily disposed forming a line and . First notice that an agent can detect that the configuration is a line, and whether it is an extremity (i.e., it sees only one other agents ), or an internal agent (i.e., it is between two collinear agents). If is internal, it does not move; if it is an extreme, sets its color to red and moves perpendicular to the segment . This means that, as soon as at least one of the extremes is activated, it will move (or they will move) creating a configuration with . At that point, the algorithm previously described is applied.

#### 3.3.1 Correctness of the ED phase.

With the following lemma we show that the global absence of interior-agents with respect to the initial convex hull, can be locally detected by each agent.

###### Lemma 2

Given an agent with and a round , if then does not contain interior-agents with respect to .

Proof. By contradiction, assume that but there exists at least an interior-agent with respect to . By the rules of the ID phase, agent cannot change its color from to another because it can detect it is neither a corner nor a border. Thus, is not in because , by assumption, does not contain black agents. Thus, it must exist an agent that has color different from and . But since is interior then also is interior, and so .

We now show that the safe area computed by an edge-agent on is such that and thus its movement is still safe (it does not transform a red corner into an interior or edge-agent).

###### Lemma 3

Given a configuration and an edge of , if an agent moves from , it moves inside the safe zone

Proof. The case when there is a single edge-agent is trivial because can compute exactly . Consider now the case when there are two or more edge-agents on ; among those, let and be the two that are neighbors of . Those agents move only when executing the Brown Edge Case or Brown Interior Case. Let us consider the movement of the first that is activated, say . Agent has two neighbors on : a brown neighbor and the red corner . Agent orders the corners in its view from to , according to its local notion of clockwise, where is the last corner before , i.e. in Figure 1(b). Following the rules of the algorithm, computes: , , and . Angle is an upper bound on , otherwise we could get a contradiction since and will intersect in two points: one is and the other one is after the intersection of and , that is impossible. Thus, is a lower bound on the angle that a single agent would compute on , which implies that will move inside . The same holds for . Notice that, given two points and inside the safe zone, any point is still inside the safe zone, thus any agent that moves on the lines connecting two agents inside will still be in , completing the proof.

The next lemma shows that the moves of our algorithm cannot transform any red corner-agents into an interior-agent.

###### Lemma 4

Consider a corner-agent of with , we have that with , is also a red corner-agent of .

Proof. It is easy to see that during the ID phase we have that since the interior-agents will never trespass the edges of , so the hypothesis holds. We have to show that the same holds during the ED phase. We have that never moves after it sets so if is a corner it cannot become interior as a consequence of its own move. Consider the two edges adjacent to : and . Assume, by contradiction, that there exists a round in which the moves of a set of agents on these two edges is such that is a corner-agent in but not in . From Lemma 3 we have that agents in move to points inside the safe zones and of . Let us consider two points and , such that agents on them will make interior. If is interior in , we have that . It is easy to see that (see Brown Edge Case and Brown Interior Case of Figure 3) and that , since , and that at least one of the two among is a lower bound on . The same holds for , so we have . Thus, we have and then , which is a contradiction. So, cannot be interior in . The same arguments hold if at round we consider a set of agents on two edges that are not adjacent to ; this is easy to see since, given and we have , which is another contradiction to the hypothesis of being interior in .

In the next sequence of lemmas, we show that, given an edge in a configuration of the ED phase, all edge-agents in will eventually became red corners.

###### Lemma 5

Given a configuration and an edge of with a single brown agent on , eventually will be a red corner.

Proof. Since red corners never move and no interior-agents can be moving on , while inactive, agent maintains its single position inside . When activated at some round , agent executes the Brown Edge Case with a single agent. Thus switches color to yellow and it moves perpendicularly to of at least . At round , is a corner-agent of ; in the next activation, after executing the Yellow Case code, becomes red.

###### Lemma 6

Given a configuration and an edge of with exactly two brown agents on , eventually they will set their state variable to and they will move outside .

Proof. Let be the first to be activated at some round . At that time, switches its color to yellow and it moves perpendicularly to (see Brown Edge Case). Agent will do the same, no matter if it is activated in round or in some successive rounds (see Brown Edge Case and Brown Interior Case).

###### Lemma 7

Given a configuration , any agent with eventually becomes corner and will sets its state variable to .

Proof. If is yellow then has moved from an edge . If was not the only agent on that could move, then there is (or there will be) another yellow agent moving from . By construction, waits until it sees the other yellow agent (see Yellow Case). If both and realize to be corners of the current convex hull, then they eventually set their color to blue and then to red, thus the lemma is proved. However, due to the non-rigidity or the different local views of and , the pathological case of Figure 1(c) may arise where one of the two, say , becomes an interior-agent. This case is adjusted by the Yellow Case rule: each time is activated, it will move towards until a round is reached when is not interior anymore in . Note that, since moves always half of the distance , and the number of rounds until the next activation of is finite, we have that will never touch . Two possible sub-cases may happen at round : : in this case, in the subsequent activations, and will set their colors to blue; : this might not be detected by the local view of , but it is detected by that sets its color to orange ; in the next activations will move so to transform into a corner and, after this move, an activation of will set . So, in both sub-cases we eventually reach a configuration in which and are blue corner-agents. In the subsequent activations, they will set their color to red , proving the lemma.

###### Lemma 8

Given a configuration , let be an edge with edge-agents on it. Eventually all these agents will become corners and set their color to red.

Proof. The two edge-agents that are neighbors of red corners, execute the same code described in the previous lemma. So, they wil reach a configuration in which and are blue corner-agents. In this case, they wait until all the agents on move on the segment ; then, they set their color to red (see the rule 3 of Blue Case). It is straightforward to see that each remaining agent on will move now towards this new edge without colliding, since all movements to the same edge are on parallels trajectories. It follows that, in finite time, a new edge is formed with agents. Iterating the reasoning we will end up in a case where the number of edge-agents on the same edge is at most 2, hence, by Lemmas 5-7, the lemma follows.

###### Theorem 3.2

The Complete Visibility problem is solvable in SSYNC by a team of oblivious, obstructable agents, using five colors without creating any collision.

Proof. From Theorem 3.1 we have that from any configuration we reach a configuration where . This is locally detected by agents (see Lemma 2), that start executing the ED phase. By Lemma 4 we have that the number of red corners is not decreasing during the execution of the algorithm. From Lemmas 5-8 we have that eventually each edge-agent of will became a red corner. So we will reach a configuration in which all agents are corner of , thus, they cannot obstruct each other. Moreover, It is easy to see that each agent is able to detect not only local termination, when it sets its color to red, but also global termination of ED phase, and thus of the algorithm, when each agent in its local view is red.

## 4 Complete Visibility in ASYNC

In this section we consider the asynchronous model (ASYNC), where there is no common notion of time or rounds, there are no assumptions on time, on activation, on synchronization; moreover, each Compute and Move operation and inactivity may take ant unpredictable (but finite) amount of time, unknown to the agent. As a consequence, agents can be seen while moving, and their computations and movements may be based on obsolete information.

##### Asynchronous Interior Depletion phase.

The Interior Depletion algorithm of Sec. 3.1 works also in ASYNC without modifications. We only need to show that the asynchronous behaviour of the agents, and in particular the asynchronous assignment of colors, cannot induce a collision among interior-agents. Since agents always move perpendicularly to the closest edge, it is easy to see that this does not happen and thus Lemmas 1 and Theorem 3.1 hold also in the asynchronous case.

##### Asynchronous Edge Depletion phase.

The Edge Depletion phase has to be modified for ASYNC. To see why the Edge Depletion algorithm would not work, consider, for example, the Yellow Case in Algorithm 3: it is possible that a moving yellow agent is seen by another yellow agent, this could lead to scenarios in which an agent assumes color red while it is on the edge of the convex hull and not on a corner.

The source of inconsistencies is the fact that agents can be seen while in transit. To prevent this problem we use new colors (yellow_moving and blue_moving ) to signal that the agents are in transit; those agents will take color yellow (resp. blue) once as the movement is completed. Using these intermediate colors, we can simulate the ED phase of the previous Section (for ).

More precisely, in the Edge Depletion algorithm of Figure 3, instead of becoming yellow, a brown agent becomes yellow_moving, turning yellow at the next activation. Similarly, instead of becoming blue, a yellow agent becomes blue_moving, turning blue only when seeing that the “companion” agent is blue_moving or blue.

##### The case of .

When the agents initially form a line, the algorithm described for SSYNC where the agents first move to a configuration , and then apply the general Algorithm, would not work. Consider, for example, the following scenario: both extreme agents compute and their destination is in opposite direction, but only one of them actually moves. At this point, the agents on the line set their color to red or brown , but they will became interior-agents as soon as the slower extreme agent moves from the line towards its destination, thus changing the convex hull.

The idea is to use a completely different algorithm in ASYNC when the initial configuration is a line (refer to Figure 4(b)). Two additional special colors (line-extreme and line-moving) are used. The color line-extreme is taken by the two agents and located at the extreme points of the line, and , when activated; this color is used to acknowledge the line condition, and to define the smallest enclosing circle with diameter . Notice that, due to obstructed visibility, the diameter, and thus , is unknown to the agents. The two extreme agents will never move.

The general strategy is to have the other agents move to points on . First notice that an agent can detect that the configuration is a line, either by geometric conditions (i.e., it sees only one or two collinear agents), or by the special color of some visible agents (line-extreme or line-moving). If an uncolred agent located in sees a line-extreme agent (say ), then changes its color to line-moving and it moves perpendicularly to toward the perimeter of the circle whose diameter is identified by and the closest agent on the line (note that there must be at least one, possibly the other extreme). A line moving agent follows similar rules; if it can detect (e.g., it sees two line-extreme) it continues its perpendicular move towards it. Otherwise, it does not move. It can be shown that, at any time, there is at least one agent that, if activated, can move. A non extreme agent switches its color to red when it sees only agents on the SEC; an extreme agents switches its color to red when it sees only red or line-extreme agents.

It is not difficult to see that this set of rules will allow the agents to reach in finite time becoming red, and thus to solve the Complete Visibility problem.

###### Theorem 4.1

The Complete Visibility problem is solvable in ASYNC by a team of oblivious, obstructable agents, using eight colors without creating any collision.

## 5 Circle Formation in ASYNC

When executing the previous algorithm, the agents reach a configuration in which all agents are corners of . Starting from this particular configuration it is possible to arrange the agents in such a way to reach a configuration in which each agent is positioned on the . Note that the solution of the Complete Visibility problem when already form a circle, hence we focus on the case .

Notice that, when all agents are on they can compute the same since all the local views are consistent. Moreover, there exists a set of agents that are already on , and . The idea of the algorithm is to move all agents on in such a way that in each point of their trajectories they can see a subset of nodes such that . More precisely, the moving rule allows agents to move towards if they are “neighbors” (i.e., neighboring corner) of some agent on in (see Figure 4(a)). Let be neighbor of some already on , and let be its other neighbor: will move toward on line guaranteeing that the corner-agents of the convex hull stay corner-agents, and do not loose visibility with any other agent. Note that, unless in final position, there is always at least one agent that can move. The algorithm terminates when all the agents are on .

It is not difficult to see that:

###### Theorem 5.1

Starting from a configuration in which all the agents are corners, there is an algorithm in ASYNC that makes the agents reach a configuration in which each agent occupies a different position on without colliding.

##### Acknowledgements.

This work has been supported in part by the National Science and Engineering Research Council of Canada, under Discovery Grants, and by Professor Flocchini’s University Research Chair.

## References

- [1] C. Agathangelou, C. Georgiou, and M. Mavronicolas. A distributed algorithm for gathering many fat mobile robots in the plane. In Proceedings of the 32nd ACM Symposium on Principles of Distributed Computing (PODC), 250–259, 2013.
- [2] K. Bolla, T. Kovacs, and G. Fazekas. Gathering of fat robots with limited visibility and without global navigation. In Int. Symp. on Swarm and Evolutionary Comp., 30–38, 2012.
- [3] R. Cohen and D. Peleg. Local spreading algorithms for autonomous robot systems. Theoretical Computer Science, 399:71–82, 2008.
- [4] J. Czyzowicz, L. Gasieniec, and A. Pelc. Gathering few fat mobile robots in the plane. Theoretical Computer Science, 410(6â7):481 – 499, 2009.
- [5] S. Das, P. Flocchini, G. Prencipe, N. Santoro, and M. Yamashita. The power of lights: Synchronizing asynchronous robots using visible bits. In Proceedings of the 32nd International Conference on Distributed Computing Systems (ICDCS), 506–515, 2012.
- [6] S. Das, P. Flocchini, G. Prencipe, N. Santoro, and M. Yamashita. Synchronized dancing of oblivious chameleons. In Proc. 7th Int. Conf. on FUN with Algorithms (FUN), 2014.
- [7] S. Datta, A. Dutta, S. Gan Chaudhuri, and K. Mukhopadhyaya. Circle formation by asynchronous fat robots. In Proceedings of the 9th international conference on Distributed Computing and Internet Technology (ICDCIT), 195-207, 2013.
- [8] X. Défago and S. Souissi. Non-uniform circle formation algorithm for oblivious mobile robots with convergence toward uniformity. Theor. Comp. Sci., 396(1,3):97–112, 2008.
- [9] O. Petit F. Dieudonné, Labbani-Igbida. Circle formation of weak mobile robots. ACM Transactions on Autonomous and Adaptive Systems, 3(4):1–16, 2008.
- [10] A. Efrima and D. Peleg. Distributed models and algorithms for mobile robot systems. In Proceedings of the 33rd International Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM), 70–87, 2007.
- [11] P. Flocchini, G. Prencipe, and N. Santoro. Distributed Computing by Oblivious Mobile Robots. Morgan & Claypool, 2012.
- [12] P. Flocchini, N. Santoro, G. Viglietta, and M. Yamashita. Rendezvous of two robots with constant memory. In Proceedings of the 20th International Colloquium on Structural Information and Communication Complexity (SIROCCO), 189–200, 2013.
- [13] B. Katreniak. Biangular circle formation by asynchronous mobile robots. In Proc. 12th Int. Coll. on Structural Information and Communication Complexity (SIROCCO), 185–199, 2005.
- [14] D. Peleg. Distributed coordination algorithms for mobile robot swarms: New directions and challenges. In Proc. 7th Int. Workshop on Distr. Comp. (IWDC), 1–12, 2005.
- [15] K. Sugihara and I. Suzuki. Distributed motion coordination of multiple mobile robots. In Proceedings of 5th IEEE Int. Symposium on Intelligent Control, 138–143, 1990.
- [16] G. Viglietta. Rendezvous of two robots with visible bits. In Proc. 9th Symp. on Algorithms and Experiments for Sensor Systems, Wireless Networks and Distributed Robotics (ALGOSENSORS), 291–306, 2013.