Almost Universal Anonymous Rendezvous in the Plane

Two mobile agents represented by points freely moving in the plane and starting at two distinct positions, have to meet. The meeting, called rendezvous, occurs when agents are at distance at most $r$ of each other and never move after this time, where $r$ is a positive real unknown to them, called the visibility radius. Agents are anonymous and execute the same deterministic algorithm. Each agent has a set of private attributes, some or all of which can differ between agents. These attributes are: the initial position of the agent, its system of coordinates (orientation and chirality), the rate of its clock, its speed when it moves, and the time of its wake-up. If all attributes (except the initial positions) are identical and agents start at distance larger than $r$ then they can never meet. However, differences between attributes make it sometimes possible to break the symmetry and accomplish rendezvous. Such instances of the rendezvous problem (formalized as lists of attributes), are called feasible. Our contribution is three-fold. We first give an exact characterization of feasible instances. Thus it is natural to ask whether there exists a single algorithm that guarantees rendezvous for all these instances. We give a strong negative answer to this question: we show two sets $S_1$ and $S_2$ of feasible instances such that none of them admits a single rendezvous algorithm valid for all instances of the set. On the other hand, we construct a single algorithm that guarantees rendezvous for all feasible instances outside of sets $S_1$ and $S_2$. We observe that these exception sets $S_1$ and $S_2$ are geometrically very small, compared to the set of all feasible instances: they are included in low-dimension subspaces of the latter. Thus, our rendezvous algorithm handling all feasible instances other than these small sets of exceptions can be justly called almost universal.


The background and the problem
Two mobile entities starting at different locations of some environment, have to meet. This task, extensively researched in the literature, is known as rendezvous. The rendezvous problem was considered both in the network environment, when entities model software agents navigating in a communication network, and in the geometric context, when entities model mobile robots circulating in some terrain. The aim of rendezvous may be exchange of information gathered about the environment or joint planning of some future task, such as network maintenance or decontamination of a terrain where human presence would be hazardous.
We consider a geometric version of rendezvous: mobile entities, called agents, are represented by points freely moving in the plane and starting at two different positions. Rendezvous occurs when agents are at distance at most r of each other (according to some absolute measure of length) and never move after this time, where r is a positive real unknown to them, called the visibility radius.
Agents are anonymous and execute the same deterministic algorithm. Each agent has a set of private attributes, some or all of which can differ between agents. These attributes are: the position of the agent, its system of coordinates (orientation and chirality), the rate of its clock, its speed when it moves, and the time of its wake-up. If all attributes (except the initial positions) are identical and agents start at distance larger than r then they can never meet, as the distance between them can never change. However, differences between attributes make it sometimes possible to break the symmetry and accomplish rendezvous. Such instances of the rendezvous problem (formalized as lists of attributes), are called feasible. Note that an instance is feasible, if there exists an algorithm, even specifically designed for this instance given as input, that guarantees rendezvous for it. (However, agents executing this algorithm do not know which agent is which in the instance).
The central question considered in this paper is: Which instances of the rendezvous problem are feasible and how to guarantee rendezvous for as many of them as possible by a single algorithm?

The model
In order to formally define our model, we consider some absolute system Γ of Cartesian coordinates, some absolute length unit normalized to 1, some absolute time unit normalized to 1, and some point in time called 0. The rest of the description is with respect to these absolute notions, unknown to the agents. The visibility radius of the agents is expressed in absolute length units.
Each agent has a private system of Cartesian coordinates with the origin at the starting point of the agent. The x-axis of this system is rotated with respect to the x-axis of the absolute system by an angle 0 ≤ φ < 2π, and the chirality of the private system with respect to Γ is either +1, if after rotating the absolute system by angle φ both systems are the same up to a shift, or -1, if after this rotation the y axis of the absolute system has the opposite direction than that of the private system. Each agent has a private clock, such that the lapse of time between consecutive tics of this clock, called the time unit of the agent, lasts τ units of the absolute time. The clock of the agent starts at its wake-up which occurs at some absolute time t ≥ 0. Each agent has some constant speed v defined as the absolute distance it travels in an absolute time unit. Whenever the agent moves, it does so with this constant speed v. Each agent defines its private unit of length as the distance it travels during its time unit. Thus, in absolute terms, the length of a private unit of length of an agent is τ v.
Agents execute the same deterministic algorithm. There are two types of move instructions in this algorithm. The first type is go (dir, d) which is executed by an agent as going d units of length of the agent in direction dir in its private system of coordinates. In our algorithms we use directions N, S, E, W as a shorthand. Directions N and S are, respectively, the positive and negative direction along the y-axis and directions E and W are, respectively, the positive and negative direction along the x-axis. An example of such an instruction is go (S, 2) executed by going 2 units of length of the agent in the negative direction parallel to its y-axis. The second type of instructions is wait (z) which is executed by an agent as waiting idle for z time units of the agent. We assume that agents can measure angles and distances precisely, although in our algorithms these quantities are pretty simple: angles are rational multiples of π and distances are rational numbers.
We call A the agent woken up first and B the other agent. In the case of simultaneous wakeup these names are given arbitrarily. For the sake of simplicity and without loss of generality, we consider all the attributes of agent A to be the absolute ones: its system of coordinates is Γ, its unit of time is the absolute unit and its wake up time is 0. Its speed is normalized to 1. (Of course, agents do not know which of them is A and which is B, this convention is only for description ease). Using this convention, an instance of the rendezvous problem can be given as a list of attributes of the agent B, together with the value of the visibility radius. More precisely, an instance is a tuple (r, x, y, φ, τ, v, t, χ), where r > 0 is the visibility radius (in the measure of length of agent A), (x, y) are coordinates of the initial position of B in the system of coordinates of A, 0 ≤ φ < 2π is the angle such that the directions of x-axes of A and B are the same after rotating the system of A by angle φ (in the counterclockwise direction of A), τ > 0 is the number of time units of A between consecutive tics of the clock of B, v > 0 is the speed of B in time and length units of A, t ≥ 0 is the time difference between the wakeup time of B and wakeup time of A in time units of A, and χ is +1 or -1 depending on whether the directions of y-axes of A and B agree or not after rotating the system of A by angle φ (in the counterclockwise direction of A).
Using the above formalization of an instance of the rendezvous problem we can reformulate our central question as: Which instances (r, x, y, φ, τ, v, t, χ) are feasible and how to guarantee rendezvous for as many of them as possible by a single algorithm?

Our results
Our contribution is three-fold. We first give an exact characterization of feasible instances. Thus it is natural to ask whether there exists a single algorithm that guarantees rendezvous for all these instances. We give a strong negative answer to this question: we show two sets S 1 and S 2 of feasible instances such that none of them admits a single rendezvous algorithm valid for all instances of the set. On the other hand, we construct a single algorithm that guarantees rendezvous for all feasible instances outside of sets S 1 and S 2 . We observe that these exception sets S 1 and S 2 are geometrically very small, compared to the set of all feasible instances: they are included in low-dimension subspaces of the latter. More precisely, while the set of all feasible instances contains a ball of positive radius in the space R 7 , the exception set S 1 is contained in a copy of the subspace R 3 and the exception set S 2 is contained in a copy of the subspace R 4 . Thus, our rendezvous algorithm handling all feasible instances other than these small sets of exceptions can be justly called almost universal.
Our Algorithm AlmostUniversalRV generalizes results both from [18] and from [38] (in the latter case for two agents). Indeed, our algorithm guarantees rendezvous for all instances (r, x, y, φ, τ, v, t, χ) when wakeup of the agents is simultaneous (i.e., t = 0), and either (1) τ = v = 1 is not satisfied or (2) orientations are different (i.e., 0 < φ < 2π) and the chirality is the same (i.e., χ = 1). This is exactly the set of instances for which the rendezvous algorithm from [18] works. On the other hand, our algorithm guarantees rendezvous for all instances (r, x, y, φ, τ, v, t, χ) for which τ = v = 1, φ = 0, χ = 1, and which satisfy the assumption t > dist((0, 0), (x, y)) − r, where dist is the Euclidean distance. For two agents, this is exactly the set of instances for which the gathering algorithm from [38] works (this set of instances was called the set of good configurations in [38]). Apart from these sets of instances, already handled by the algorithms from [18] and [38], respectively, our Algorithm AlmostUniversalRV guarantees rendezvous for many more instances: all those outside the small exception sets. This was neither the case in [18] nor in [38].
There are two major differences between [18] and our study. The first is that we consider arbitrary time delays between wake-ups of agents, while the authors of [18] restricted attention to simultaneous wakeups. The second difference is in the notion of rendezvous feasibility. The authors of [18] were interested in conditions under which rendezvous is feasible for all possible initial positions of agents, formulated such conditions, and designed a single algorithm guaranteeing rendezvous for all initial positions if the conditions are satisfied. By contrast, we first look at each instance separately, and characterize those for which rendezvous is possible even using an algorithm dedicated to this instance. We call such instances feasible. Then we design an algorithm guaranteeing rendezvous for "almost all" feasible instances with a precise meaning of "almost all". It is interesting to notice that large classes of instances rejected by [18] are not only possible to solve by a dedicated algorithm but can in fact be handled all together by our single algorithm. Such are e.g., many instances for which chiralities of the agents are different. As for [38], we differ from it by considering a much larger context: possibly different coordinate systems, clock rates and speeds of the agents.

Related work
The rendezvous problem for mobile agents, and more generally its version for many agents, called gathering, was extensively studied in the literature, in various environments. Models under which it was investigated can be classified along two main dichotomies. The first of them concerns the way in which agents move: it can be either deterministic or randomized. The second dichotomy is according to the type of environment in which agents navigate: it can be a network modeled as a graph or a terrain modeled as the plane, possibly with obstacles. The present paper considers deterministic rendezvous in the plane.
An excellent survey of randomized rendezvous in various models is [4], cf. also [2,3,6]. Deterministic gathering in networks was surveyed in [36]. Gathering many labeled agents in the presence of Byzantine agents was studied in [12,26]. The gathering problem was also studied in the context of oblivious robot systems in the plane, cf. [16,27], and fault-tolerant gathering of robots in the plane was studied, e.g., in [1,17].
Deterministic gathering in graphs of agents equipped with tokens used to mark nodes was considered, e.g., in [33]. Deterministic rendezvous of two agents with unique labels was studied in [23,31,39]. These papers considered the time of gathering in arbitrary graphs. In [23] the authors showed a rendezvous algorithm polynomial in the size of the graph, in the length of the shorter label and in the delay between the starting times of the agents. In [31,39] rendezvous time was polynomial in the first two of these parameters and independent of the delay. In [19,28] the optimization criterion for rendezvous was the memory size of the agents: it was considered in [28] for trees and in [19] for general graphs. Memory needed for randomized gathering in the ring was discussed, e.g., in [32].
Apart from the synchronous model when clocks of the agents tick at the same rate, measuring rounds, several authors considered asynchronous gathering in the plane [13,15,27] and in networks [9,20,22,25,29]. In [15,27] agents were anonymous, but were assumed to have total or restricted capability of seeing other agents. However, in the latter scenario only connected initial configurations were discussed. In [13], a related task of approach of two agents at distance 1 was investigated and agents were assumed to have distinct integer labels, which were used to break symmetry.
Computational tasks in anonymous networks were studied in the literature, starting with the seminal paper [8], followed, e.g., by [7,11,34]. While the considered tasks, such as leader election in message passing networks or computing Boolean functions, differ from rendezvous studied in the present paper, the main concern is usually symmetry breaking, similarly as in our case.
Deterministic rendezvous of anonymous agents in arbitrary anonymous graphs was previously studied in [19,24,29,37]. Papers [19,24] were concerned with the synchronous scenario. The authors of [29] characterized initial positions that allow asynchronous rendezvous. In [37], the authors considered the problem of synchronous rendezvous of two anonymous agents in arbitrary graphs. They used wake-up time to break symmetry between the agents, but the situation was very different from our present setting. While in [37] the authors designed a universal algorithm that guarantees rendezvous for all instances for which a dedicated rendezvous algorithm exists, in our setting such a single rendezvous algorithm in the plane cannot exist.
The two papers closest to our present study are [18] and [38]. Each of them considered a different particular scenario: in [18] it was assumed that wake-up times of agents were simultaneous, while in [38] the authors considered gathering of many agents but only with the same coordinate systems, clock rates and speeds. Our present paper generalizes both of them (the latter for the case of two agents). The relation between our results and those from [18] and [38] was described above in the subsection "Our results".

Terminology and preliminaries
While all our algorithms are executed by interpreting distances, directions and time segments according to the local attributes of each agent, in our analysis we will understand all these values in the absolute system of coordinates, absolute time and length units, i.e., according to our convention, those of agent A (unless explicitly specified otherwise). In particular dist((x, y), (x , y )) denotes the Euclidean distance between points (x, y) and (x , y ) in the system of coordinates of agent A, measured in its unit of length.
Instances (r, x, y, φ, τ, v, t, χ) for which τ = v = 1, i.e., those in which clock rates of both agents are the same and speeds are the same, are called synchronous.
We will use two procedures from the literature. In [18], the authors described a procedure guaranteeing rendezvous for all instances (r, x, y, φ, τ, v, t, χ) for which wakeup of the agents is simultaneous (i.e., t = 0), and either (1) the instance is not synchronous, or (2) orientations are different (i.e., 0 < φ < 2π) and the chirality is the same (i.e., χ = 1). They did not define precisely what are the allowed moves of the agents, but an inspection of their algorithms shows that they use two types of moves: straight segments and circles. Our model does not allow circles but it is easy to see that the procedure from [18] remains valid (i.e., guarantees rendezvous for the same instances) if each circle is replaced by the square inscribed in it with sides parallel to the axes of the system of coordinates of the agent. We call CGKK the procedure from [18] modified in this way. 1 Latecomers is the Algorithm GATHER(2) from [38]. It guarantees rendezvous for all synchronous instances (r, x, y, φ, τ, v, t, χ) for which the systems of coordinates of the agents are a shift of each other, and satisfying the assumption t > dist((0, 0), (x, y)) − r, i.e., for instances where τ = v = 1, φ = 0, χ = 1 and t > dist((0, 0), (x, y)) − r. In [38], the authors considered the problem of gathering n ≥ 2 agents with the same clock rates and speeds, and with systems of coordinates being shifts of one another. They designed an algorithm GATHER (n) which guarantees gathering under some condition on instances which is equivalent to t > dist((0, 0), (x, y)) − r, for n = 2.
We will need the following notion of canonical line. An example of an instance and of its canonical line is depicted in Figure 1.
We denote by proj A (s) (respectively, by proj B (s)) the orthogonal projection of the position of agent A (resp. agent B) at time s on the canonical line of instance I. To facilitate reading and when it is clear from the context, proj A (resp. proj B ) refers to proj A (0) (resp. proj B (0)). Sometimes, an agent will consider a local system Rot(α): this system is the coordinate system resulting from rotating the system of the agent by the angle α, counterclockwise w.r.t. this system.
We end this section by giving a simple lemma and its corollary that will be used recurrently throughout the paper.
Lemma 2.1 Consider any deterministic algorithm A and any synchronous instance I = (r, x, y, φ, τ, v, t, χ) such that χ = −1. Let z ≥ t be a time such that rendezvous does not occur before time z when applying algorithm A to the instance I and let u be the vector from proj A to proj B . The trajectory followed by the later agent B until time z is an image of the trajectory followed by agent A until time z − t by a transformation that is a composition of a shift by vector u with the axial symmetry using the canonical line of I.
Proof. Agent A starts time t ahead of agent B and instance I is synchronous: in particular τ = v = 1 and the length unit of each agent is 1. Moreover, by Definition 2.1, the agents are initially at the same distance d of the canonical line of I, one on either side of this line if d > 0. Hence, in view of χ = −1 and since the agents apply the same deterministic algorithm, the lemma follows.
Corollary 2.1 Consider any synchronous instance I = (r, x, y, φ, τ, v, t, χ) such that χ = −1 and any deterministic algorithm A. Let z ≥ t be a time such that rendezvous does not occur before time z when applying algorithm A to the instance I. We have the following equality: dist(proj A (z − t), proj B (z)) = dist(proj A , proj B ).

Characterization of Feasible Instances and Almost Universal Rendezvous
The aim of this section is to show two main results of this paper. The first result consists of a complete characterization of the feasible instances.
The second result is the design of an algorithm called AlmostUniversalRV, detailed later in this section, which achieves rendezvous for the set of instances that is given by the following theorem: obviously all these instances are feasible.

Theorem 3.2 Algorithm
AlmostUniversalRV guarantees rendezvous for all instances (r, x, y, φ, τ, v, t, χ) which are either non-synchronous or such that: • χ = 1 and φ = 0 or • χ = 1 and φ = 0 and t > dist((0, 0), (x, y)) − r, or Some feasible instances are not caught by our algorithm. Precisely, it is the case of the synchronous instances for which • either φ = 0, t = dist((0, 0), (x, y)) − r, and χ = 1 In Section 4, we explain why these two sets of exceptions are small, in a geometric sense, compared to the set of all feasible instances, and we show that no single algorithm can achieve rendezvous for all instances of either of these small sets.
Notice that the second theorem permits, roughly speaking, to show a big part of the "if" implication of the first theorem. Hence, in the rest of this section, we start by presenting Algorithm AlmostUniversalRV and proving Theorem 3.2, before proceeding with the proof of Theorem 3.1 that will rely in part on Theorem 3.2.

Algorithm
AlmostUniversalRV and proof of Theorem 3.2

Intuition
We begin with the following categorization of the instances described in Theorem 3.2 into four disjoint types.
• type 4. All instances described in Theorem 3.2 that are not of type 1, 2, or 3.
This categorization turns out to be pertinent for our purpose. Indeed, when thinking about the design of Algorithm AlmostUniversalRV, it appears that each of the above four types of instances calls for its own rendezvous strategy. Since combining these strategies into a single algorithm is pretty easy, and unnecessary to understand the intuitions, we focus below on describing the high-level idea of four algorithms, each of them being tailored to achieve rendezvous for all the instances of one of the above types.
First consider the instances of type 1. For this type, there is a particular subset for which rendezvous can be easily achieved. This subset is the one composed of every instance I in which the agents are initially on the canonical line L of I, with their x-axes parallel to L and going in the same direction. For instance I, rendezvous can be achieved simply by instructing the agents to execute a linear search procedure, derived from the literature on the Cow-Path Problem [10]. This procedure consists in applying successive steps i = 1, 2, . . . till seeing the other agent, where in each step i the sequence of move instructions is as follows: go East at distance 2 i , then go West at distance 2 i+1 , and then go back to the initial position by going East at distance 2 i . Using Corollary 2.1 together with the fact that instance I is synchronous and t > dist(proj A , proj B ) − r, it can be proved that the agents see each other by the time agent A finishes step λ, where λ is the smallest integer such that t ≤ 2 λ .
Actually, if the stop condition of the procedure were removed, we would even observe the agents getting regularly at a distance strictly smaller than r of each other from step λ on. This is closely related to the fact that t > dist(proj A , proj B ) − r. If t were exactly equal to dist(proj A , proj B ) − r, the agents would get regularly at a distance r but never less, while they would never see each other if t were strictly smaller than dist(proj A , proj B ) − r. Since getting the agents at distance exactly r of each other is already enough, there is room for possible deviations, i.e. a margin of error for which rendezvous could be still ensured even if the movements of the agents were not exactly on line L and/or parallel to L. Obviously, this is true only if the magnitude of these deviations remains "related" to the magnitude of the margin of error. Although possibly very small, this margin turns out to be crucial to generalize the strategy described above to any instance of type 1. This generalization can be done by requiring each agent to enumerate the triples of positive integers (i, j, k), and for each triple (i, j, k) to act as follows in a local system Rot( kπ 2 i ): go North at distance j 2 i and execute the first i steps of the linear search procedure, then go South at distance 2j 2 i and execute again the first i steps of the linear search procedure, and finally go back to the initial position by going North at distance j 2 i . In doing so, we are guaranteed to recreate at some point almost the same favorable conditions as those we naturally have when the agents are initially on the canonical line and meet by the end of their execution of step λ. This can be proven using, among others, Lemma 2.1 and the fact that χ = −1. Note that under the aforementioned term "almost the same favorable conditions", we mean in particular that the agents get pretty close to the canonical line and start a linear search that will last enough time and that will not deviate much from the canonical line, with respect to the authorized margin of error, to achieve rendezvous.
To conclude with the case of instances of type 1, it is interesting to observe that without room for error, it would be impossible to get a single algorithm achieving rendezvous for all the instances of type 1. This is highlighted by the instances that are like those of type 1 except that t = dist(proj A , proj B ) − r replaces t > dist(proj A , proj B ) − r: we show in Section 4 that there exists no algorithm achieving rendezvous for all these instances (cf. Theorem 4.1).
Concerning the instances of type 2, there is not much to say. This case can be directly solved via a procedure from the literature, called Latecomers, introduced in the preliminaries section. Just note that the smooth functioning of procedure Latecomers (resp. the approach described for the first type) heavily relies on the fact that χ = 1 and φ = 0 (resp. on the fact that χ = −1), and thus it cannot be used to handle the instances of type 1 (resp. of type 2). Now, let us turn attention to the instances of type 3, which presents a major contrast with the previous two types. Indeed, we face here instances that are not synchronous, as each of them has the particularity of having an agent whose time unit is different from 1. However, far from being a problem, this particularity can be exploited to our advantage. To see how, consider any planar search procedure P(a, b) that allows an agent, whose initial position is p and whose unit of length is u, to get at distance at most au of all points at distance at most bu from p. Although this question does not really matter here, note that there are multiple ways of designing such a procedure, for instance via spiral movements or via series of parallel linear searches: it is this latter option that will be used in our solution. Also consider an instance J of type 3 and suppose ideally that the two agents of J initially know all parameters of the instance. The agents can thus compute the distance d that initially separates them, the smaller (resp. larger) of the two time units τ min (resp. τ max ) and the unit of length u X of the agent X having time unit τ min . Hence, they can also determine the smallest integer ∆ such that ∆(τ max − τ min ) − t ≥ n, where n is the number of local time units spent by an agent to execute P( r u X , d u X ) (this number is the same for all agents whatever the value of its unit of time). Note that integer ∆ necessarily exists because τ max > τ min in view of the definition of an instance of type 3.
In such an ideal situation, rendezvous can be achieved by requiring each agent to apply two steps that are stopped before the end as soon as an agent sees the other. Here are the two steps: (1) wait time ∆ (w.r.t my local time unit), and (2) execute procedure P( r u X , d u X ). Actually, integer ∆ has been chosen so that agent X starts the second step at least time n ahead of the other agent, even if agent X is initially the later agent to wake up and to start the first step. As a result, agent X can execute entirely procedure P( r u X , d u X ), while the other agent stays idle at its initial position. Since u X is the unit of length of agent X, procedure P( r u X , d u X ) allows agent X to get at distance at most r of all points at distance at most d from its initial position. Hence, agent X necessarily sees the other agent and rendezvous is accomplished by the time it finishes executing the second step.
Unfortunately, we are never in such an ideal situation. That being said, with some appropriate arrangements, the same principle can be re-applied to achieve rendezvous from any instance of type 3. This can be done by instructing the agents to construct a series of assumptions about the useful parameters (i.e., τ min , τ max , d, etc.) and for each series to execute the aforementioned two steps using the newly made assumptions. For each series, we need to take the precaution of modulating the length of the waiting period of the second step according to the previous series that has been tested, in order to ensure that an agent stays idle while the other executes a planar search when the assumptions are good. In fact, it is true that we can never guarantee finding a series containing the exact values of the parameters. However, if the construction of the assumptions is conducted in an appropriate manner, we can obtain at some point lower and upper bounds on the parameters that are close enough to the reality to get the job done.
To finish with the intuitive explanations, it remains to address the case of the instances of type 4. These are all instances listed in Theorem 3.2 that are of none of the previous three types. At first sight, they form a heterogeneous set. We find there the non-synchronous instances for which τ = 1 and the synchronous instances for which χ = 1 and φ = 0 (since these latter instances are synchronous, they also have τ = 1). Each of these instances has at least one parameter whose value prevents it from being handled through one of the methods described earlier. In spite of their heterogeneity, the instances of type 4 all share two characteristics. The first characteristic is that they all have a time unit τ that is equal to 1. The second characteristic, that relies on the function h presented below, is that for each instance K of type 4, rendezvous can be achieved for instance h(K) by applying a procedure from the literature, called CGKK, introduced in the preliminaries section. The function h associates to any instance another one that is identical except that the visibility radius of the agents is divided by 2 and the delay between the starting times is set to 0 (if it was not the case). The two above characteristics, which can be found together only in the instances of type 4, can be used to design a mechanism that is outlined below and that achieves rendezvous for any instance of this type.
For a better understanding of the idea behind this mechanism, suppose ideally that the agents of a given instance K of type 4 initially know the delay t between their starting times as well as a positive number γ such that no agent of K can travel a distance greater than r 4 during a period lasting time γ or less. Under these ideal assumptions, rendezvous can be achieved through an algorithm that consists of an execution of procedure CGKK that is interrupted after each period lasting a time γ, called a segment. Each of these interruptions corresponds to a waiting period lasting exactly time t, at the end of which the execution of CGKK is resumed with the next segment. Naturally, as soon as an agent sees the other, it stops forever.
In order to explain why rendezvous is ensured here, we need to juggle two instances, namely K and its image h(K), and thus we need to bring in some precisions to avoid any ambiguity. For instance K, we keep the usual way to denote the reference agent by A and the other agent by B, while for instance h(K), the reference agent is denoted by A and the other agent by B . We also keep the usual way of describing a situation with respect to the coordinate system and the parameters of a reference agent, using indistinctly those of agents A or A as they are identical by definition.
The precisions being given, we can sketch our arguments. Consider an execution of procedure CGKK for instance h(K). According to the properties of this procedure, agents A and B achieve rendezvous at some time α in which they occupy some positions p and q respectively. According to the construction of h(K), we know that p and q are separated by a distance r 2 . Now, consider the execution of the algorithm described above for instance K. When agent A (resp. B) executes the α γ th segment of procedure CGKK, it can be shown that the agent passes through position p (resp. q ). Furthermore, each interruption of procedure CGKK lasts exactly the time equal to the delay between the agents, and neither A nor B can travel a distance greater than r 4 during a segment. Consequently, if rendezvous has not occurred before, it can be also shown that when agent A finishes its α γ th interruption, it is at distance at most r 4 from position p , while at the same time agent B starts its α γ th interruption and is at distance at most r 4 from position q . Note that the above arguments rely on the fact that parameter τ is 1 in instances K and h(K). From the fact that positions p and q are separated by a distance r 2 , it follows that the agents of K get at distance at most r of each other, and rendezvous is achieved by the time agent A finishes its α γ th interruption of procedure CGKK. Of course, all of this works for an ideal situation in which the agents of instance K initially know the values of some relevant parameters. However, similarly to what has been described for the instances of type 3, the agents do not need the exact values of these parameters. Instead, they can guess and use good approximations that will turn out be sufficient to achieve rendezvous for all instances of type 4.

Algorithm
Algorithm 1 gives the pseudocode of Algorithm AlmostUniversalRV. It is mainly composed of a repeat loop that is interrupted as soon as the executing agent sees the other one. This loop consists of four blocks of lines (marked by comments in Algorithm 1), each of them dedicated to the resolution of rendezvous for one of the types of instances mentioned earlier. Throughout the lines of each block, the reader will be able to recognize the corresponding strategy that is outlined in Section 3.1.1.
Algorithm AlmostUniversalRV is designed to ensure rendezvous by the time agent A finishes to execute the block 1 ≤ x ≤ 4 during the ith iteration of the repeat loop, if the instance is of type x and satisfies some conditions depending on i (e.g., the visibility radius is at least 1 2 i , the delay between the agents is at most 2 i , etc). Actually, in the proof of correctness, we will show that for every instance I of one of the four types, there exists a specific value of i such that rendezvous is guaranteed by the time any agent finishes the block dedicated to the type of I in the ith iteration of the repeat loop of Algorithm 1.
Algorithm 1 relies on procedure PlanarCowWalk, described in Algorithm 2 which in turn relies on procedure LinearCowWalk described in Algorithm 3. When an agent executes LinearCowWalk(i), for a positive integer i, it performs the first i steps of a linear search on a line l that is parallel to the x-axis of its local system. Each step 1 ≤ k ≤ i permits the agents to visit all points of the line l situated at distance at most 2 k (w.r.t its unit of length) from where it started LinearCowWalk(i). When an agent executes PlanarCowWalk(i) from a point p, it performs LinearCowWalk(i) from each point whose coordinates expressed in its local system are as follows: the x-coordinate is the same as the one of point p and the ycoordinate is k 2 i , where k is an integer such that |k| ≤ 2 2i . Procedure PlanarCowWalk is used to achieve rendezvous both for the instances of type 1 and of type 3. In particular, for the instances of type 3, procedure PlanarCowWalk plays the role of the planar search procedure mentioned in Section 3.1.1: as we will see in the proof of Lemma 3.4, the procedure allows an agent to get at distance at most r of all points belonging to an area of a "certain size" provided that the integer given as input is "large enough". For example, an execution of PlanarCowWalk(i) from a point p ensures that the agent gets at distance at most r of all points at distance at most d from p, if its unit of length is at least 1, d ≤ 2 i and 1 2 i ≤ r.
Algorithm 1 AlmostUniversalRV 1: execute the instructions of lines 2 to 22 given below and interrupt the execution as soon as the other agent is seen. i ← i + 1 22: end repeat

Correctness
In the sequel, we prove the correctness of Algorithm AlmostUniversalRV. Overall, the proof is split into four lemmas, each of them showing that the algorithm achieves rendezvous for all instances of one of the four types.
In this proof, every execution by an agent of the repeat loop of Algorithm 1 will be viewed as a series of consecutive phases i = 1, 2, 3, . . ., where phase i is the part of its execution corresponding to the ith iteration of the repeat loop. In a given phase i, every execution by an agent of the for loop of Algorithm 1 will be Algorithm 2 PlanarCowWalk(i) go (E, 2 j ); go (W, 2 j+1 ); go (E, 2 j ) 3: end for viewed as a series of consecutive epochs j = 1, 2, 3, . . . , 2 i+1 , where epoch j is the part of its execution corresponding to the jth iteration of the for loop.
Before addressing the lemmas dedicated to the four types, we give the following simple lemma that will be used several times and that is related to the position occupied by an agent at some points during its execution of Algorithm AlmostUniversalRV. Lemma 3.1 Consider Algorithm AlmostUniversalRV executed for an instance I = (r, x, y, φ, τ, v, t, χ). Each time agent A (resp. B) starts the execution of a line of Algorithm 1 whose number is not 11, 12, 19 or 20, it does so from its initial position (0, 0) (resp. (x, y)).
Proof. In view of Algorithm 3, each execution by an agent of procedure LinearCowWalk begins and ends at the same point. Thus, in view of Algorithm 2, each execution by an agent of procedure PlanarCowWalk begins and ends at the same point as well. Moreover, during the execution of Algorithm AlmostUniversalRV, each time an agent finishes processing line 12 (resp. line 20) without having seen the other agent, it is at the point from which it started the previous processing of line 10 (resp. line 18).
From the above explanations, it follows that within any given phase i executed by an agent, each time it starts a line of Algorithm 1 whose number is not 11, 12, 19 or 20, it does so from the point at which it started phase i. It also follows that the execution of phase i by an agent starts and ends at the same point if during this execution the agent does not see the other one.
As a result, we can prove by induction on i that the lemma is true due to the fact that the execution by agent A (resp. B) of phase 1 starts from its initial position (0, 0) (resp. (x, y)). Now, we enter the core of the proof with the following lemma showing that Algorithm AlmostUniversalRV can indeed deal with all instances of type 1.

Lemma 3.2 Algorithm
AlmostUniversalRV guarantees rendezvous for all instances of type 1.
Proof. Let I = (r, x, y, φ, τ, v, t, χ) be an arbitrary instance of type 1 and let e = t−dist(proj A , proj B )+r. Assume by contradiction that rendezvous does not occur by the time agent B finishes executing the for loop of Algorithm 1 during phase i = σ + ω, where σ and ω are defined as follows: • σ = log(t + r + e + x 2 + y 2 + ) .
In view of the definition of instance I, we know that t > dist(proj A , proj B ) − r. By the definition of e, we then have e > 0 and dist(proj A , proj B ) − r + e 2 < t. Recall that r > 0. Hence, we have To proceed further, we need to introduce some notations and conventions.
Let Σ be the system of coordinates resulting from the rotation of Γ (the coordinate system of A) around its origin that ensures that the following two conditions are met: (1) the x-axis of Σ is parallel to the canonical line L of instance I and (2) proj A is East of proj B in Σ or coincides with it. For ease of reading, the rest of this proof assumes the units of length and time of agent A but assumes the coordinates system Σ, unless specified otherwise. Moreover, when in this proof we speak of an angle between two lines, it is always the smallest unoriented angle between them.
According to lines 5 to 7 of Algorithm 1, there exists an integer 1 ≤ j ≤ 2 i+1 such that the system Rot( jπ 2 i ) constructed by agent A during epoch j of phase i, which will be denoted by Rot A ( jπ 2 i ), has the following two properties: (1) its x-axis forms an angle 0 ≤ α < π 2 i with the x-axis of Σ (as well as with L), and (2) the direction of its positive x-axis is between East (included) and North (excluded). Note that the North direction is naturally excluded in the second property because i ≥ 2 and thus α < π 4 . In the sequel, each time we refer to an epoch j, it is always the one of phase i, and thus we omit to mention it.
An example of the three coordinate systems Γ, Σ and Rot A ( jπ 2 i ) is depicted in Figure 2. Now we can start the substantial part of the proof with the following claim.  Figure 2: Illustration of the three coordinate systems Γ, Σ and Rot A ( jπ 2 i ) for an instance in which the chiralities of the agents A and B are different. The coordinate system Γ is the one represented with the solid axes at the bottom of the figure, while Σ (resp. Rot A ( jπ 2 i )) is the coordinate system represented with the dashed (resp. dotted) axes. As defined in the proof of Lemma 3.2, the x-axis of Σ (resp. Rot A ( jπ 2 i )) forms an angle 0 (resp. α) with the canonical line L of the instance.
Proof of the claim: In the proof of this claim, when we speak of some coordinates (resp. of the x-axis or y-axis), it is always implicit that they are expressed in (resp. they are those of) system Rot A ( jπ 2 i ). By Lemma 3.1, agent A is located at its initial position at the beginning of epoch j. By Definition 2.1, we know that the initial position of agent A is at distance at most √ x 2 +y 2 2 from line L. By the definition of epoch j, we also know that α is the angle between L and the x-axis. This means that the angle between the y-axis and the line perpendicular to L passing through proj A is also α as depicted in Figure 3. From these explanations, it follows that the distance between the initial position of agent A and the intersection o of the y-axis with L is at most √ x 2 +y 2 2 cos(α) . Since, in view of the definition of angle α, we have cos( π 4 ) < cos(α) ≤ cos(0), the distance between the initial position of agent A and the intersection o is at most x 2 + y 2 , which is at most 2 i by the definition of i. In the sequel, we denote by s the first time when agent A starts executing procedure LinearCowWalk(i) during epoch j from a point that is at a distance at most min{r,e}  Proof of the claim: If dist(proj A , proj B ) − r + e 2 ≤ 0 the lemma trivially holds. Hence, we assume in the proof of this claim that dist(proj A , proj B ) − r + e 2 > 0. Let t p (resp. t q ) be some time when agent A occupies point p (resp. q).
From Claim 3.2, we have the following equality By assumption, dist(p, q) = t. Moreover, by the definition of angle α and the fact that i ≥ 1, we know that 0 ≤ α < π 2 i ≤ π 2 . Hence, from equality (1), we get By the definition of i, we also have the following inequality The above inequality implies the one below From inequalities (2) and (4), it follows that dist(proj A (t p ), proj A (t q )) ≥ dist(proj A , proj B ) − r + e 2 , which proves the claim.
Let p A be the position occupied by agent A at time s. In view of Lemma 3.1 as well as Algorithms 1 and 2, we know that the coordinates of p A are (0, u) for some real u in system Rot A ( jπ 2 i ). Let k be the smallest positive integer such that t+r +e+1 ≤ 2 k and let λ be the time s+ k−1 z=1 2 z+2 . In view of Algorithm 3 and the fact that i ≥ k, we know that in system Rot A ( jπ 2 i ), agent A moves East from point p A to a point p A with coordinates (2 k , u) during the time interval [λ, λ + 2 k ]. Then, during the time interval [λ + 2 k , λ + 2 k+1 ], agent A goes back to point p A .
Note that, by definition, agent A starts time t ahead of agent B. Moreover, both agents execute Algorithm 1 that is deterministic, and instance I is synchronous. Hence, we know that, in the system Rot( jπ 2 i ) considered by agent B in epoch j, agent B moves East from a point p B with coordinates (0, u) to a point p B with coordinates (2 k , u) during the time interval [λ + t, λ + t + 2 k ]. Then, during the time interval [λ + t + 2 k , λ + t + 2 k+1 ], agent B goes back to point p B .
The move made by agent A (resp. B) during the time interval [λ, λ + 2 k ] (resp. [λ + t, λ + t + 2 k ]) will be called its positive move, while the move made by agent A (resp. B) during the time interval [λ+2 k , λ+2 k+1 ] (resp. [λ + t + 2 k , λ + t + 2 k+1 ]) will be called its negative move. Proof of the claim: In the light of Lemma 2.1 and the fact that the positive and negative moves of a given agent take place along the same segment, it is enough to show that the claim is true during the positive move of agent A.
According to the definitions of points p A and p A , these points are respectively the starting point and the endpoint point of the positive move of agent A which occurs from time λ to time λ + 2 k . It follows that proj A (λ) (resp. proj A (λ + 2 k )) is the orthogonal projection of p A (resp. p A ) on line L. By Claim 3.1, we have dist(p A , proj A (λ)) ≤ min{r,e} 8 . Moreover, by Claim 3.2, the angle between line L and line L , which passes through the segment [p A , p A ], is α. Hence, we can state that By the definition of a positive move, we know that dist(p A , p A ) ≤ 2 k . By the definition of angle α and the fact that i ≥ 1, we also know that 0 ≤ α < π 2 i ≤ π 2 . From (5), we get the following inequality By the definition of i, we also have the following inequality This implies By the definition of integer k, we know that 2 k ≤ 2(t + r + e + 1). As a result, from (6) and (8), we obtain dist(p A , proj A (λ + 2 k )) ≤ min{r, e} 8 + 2(t + r + e + 1) min{r, e} 16(t + r + e + 1) ≤ min{r, e} 4 (9) From Claim 3.1 and formula (9), we know that each point of the segment [p A , p A ] is at distance at most min{r,e} 4 from line L, which concludes the proof of the claim.

Claim 3.5 The distance between proj
Proof of the claim: By the definition of system Σ, we know that proj A is not West of proj B . Thus, by Lemma 2.1, we know that proj A (λ + 2 k ) is not West of proj B (λ + t + 2 k ). Moreover, by Corollary 2.1, we have dist(proj A (λ + 2 k ), proj B (λ + t + 2 k )) = dist(proj A , proj B ), which proves the claim.
Proof of the claim: In view of Claim 3.3 and the definition of the negative and positive moves, we know that the distance between proj A (λ − t + 2 k ) and proj A (λ + 2 k ) as well as the distance between proj A (λ + 2 k ) and proj A (λ + t + 2 k ) is at least dist(proj A , proj B ) − r + e 2 . By the definition of the negative and positive moves and the definition of system Rot A ( jπ 2 i ), we know that proj A (λ − t + 2 k ) is not East of proj A (λ + 2 k ) and proj A (λ + 2 k ) is not West of proj A (λ + t + 2 k ). From these explanations and Lemma 2.1, it also follows that proj B (λ + 2 k ) is not East of proj B (λ + t + 2 k ) and the distance between both these projections is at least dist(proj A , proj B ) − r + e 2 . This concludes the proof of the claim. In each of these two figures, the arrow from p A to p A (resp. p B to p B ) represents the part of the negative move (resp. positive move) made by agent A (resp. agent B) in the interval [λ + 2 k , λ + t + 2 k ].
Now, we want to argue that at some point during its negative move, agent A is at a distance at most r of agent B. There are two cases to consider.
First suppose that there is a time µ in the interval [λ + 2 k , λ + t + 2 k ] such that proj A (µ) = proj B (µ). For example, this can occur when the projections of A and B cross each other at time µ as depicted in Figure 4(a). Since from time λ+2 k to time λ+t+2 k , agent A (resp. B) executes a part of its negative (resp. positive) move, Claim 3.4 implies that at time µ the agents are at distance at most r 4 of proj A (µ) = proj B (µ) and thus at distance at most r 2 of each other. Now suppose that for every time µ in the interval [λ + 2 k , λ + t + 2 k ], we have proj A (µ) = proj B (µ). For example, this can occur when the distance between the projections of A and B continuously decreases during the interval [λ + 2 k , λ + t + 2 k ] without reaching 0, as depicted in Figure 4(b). Since the projections of A and B never coincide with each other during the interval [λ + 2 k , λ + t + 2 k ], Claims 3.5 and 3.6 imply that dist(proj A (λ + t + 2 k ), proj B (λ + t + 2 k )) = dist(proj A (λ + 2 k ), proj B (λ + t + 2 k )) − δ = dist(proj A , proj B )−δ, where δ is the distance traveled by the projection of A during the interval [λ+2 k , λ+ t + 2 k ], which respects the double inequality dist(proj A , proj B ) − r + e 2 ≤ δ < dist(proj A , proj B ). This means that dist(proj A (λ + t + 2 k ), proj B (λ + t + 2 k )) is at most equal to dist(proj A , proj B ) − (dist(proj A , proj B ) − r + 2 ) = r − 2 . Note that, since for every time µ in the interval [λ + 2 k , λ + t + 2 k ], we have proj A (µ) = proj B (µ), we can state that dist(proj A (λ + t + 2 k ), proj B (λ + t + 2 k )) is positive and thus r − 2 is positive. This implies r > 2 . Since from time λ + 2 k to time λ + t + 2 k , agent A (resp. B) executes a part of its negative (resp. positive) move, Claim 3.4 implies that at time λ + t + 2 k each agent is at distance at most e 4 from its projection onto line L. Hence, by Pythagoras' theorem, it follows that the distance between the agents at time λ + t + 2 k , is at most ( e 2 ) 2 + (r − e 2 ) 2 = e 2 4 + r 2 − 2r e 2 + e 2 4 . Since r > e 2 , we know that e 2 4 + r 2 − 2r e 2 + e 2 4 ≤ e 2 4 + r 2 − 2 e 2 4 + e 2 4 ≤ r. Hence, the distance between the agents at time λ + t + 2 k is at most r.
Consequently, in all cases, agents A and B are at distance at most r, and rendezvous is achieved in view of line 1 of Algorithm 1, by the time agent B completes the execution of the for loop of phase i: this is a contradiction and proves the lemma.
The following lemma shows that Algorithm AlmostUniversalRV can handle every instance of type 2. Proof. Fix an arbitrary instance I = (r, x, y, φ, τ, v, t, χ) of type 2, and consider the execution EX 1 of procedure Latecomers for I. According to the properties of this procedure (cf. Section 2), EX 1 lasts a finite time ∆, at the end of which rendezvous is achieved. Now, consider the execution EX 2 of Algorithm AlmostUniversalRV for I. Suppose by contradiction that rendezvous never occurs in EX 2 and denote by s the time when agent A starts executing line 10 of Algorithm 1 during phase log(t + ∆) . Note that, during this phase, processing lines 9 and 10 of Algorithm 1 consists, in the local system of each agent, respectively in waiting a time at least t and in executing procedure Latecomers during a time at least ∆. However, the units of time of both agents are identical because I, which is an instance of type 2, is by definition synchronous. Therefore, since rendezvous never occurs in EX 2 , we know that agent B waits during the time interval [s, s + t] (in which it processes line 9 of Algorithm 1), starts executing procedure Latecomers at time s + t and keeps running it till at least time s + t + ∆. We also know that agent A starts executing procedure Latecomers at time s and keeps running it till at least time s + ∆. Moreover, Lemma 3.1 implies that the position occupied by agent A (resp. B) in EX 2 at time s is the same as the initial position of agent A (resp. B) in EX 1 .
From the above arguments, it follows that for each time z ∈ [s, s + ∆], the position occupied by agent A (resp. agent B) in EX 2 is the same as the one occupied by agent A (resp. agent B) at time z − s in EX 1 . In particular, the position occupied by agent A (resp. agent B) at time s + ∆ in EX 2 is the same as the one occupied by agent A (resp. agent B) at time s + ∆ − s = ∆ in EX 1 . Note that, the positions occupied by the agents at time s + ∆ in EX 2 are necessarily separated by a distance greater than r as otherwise by Algorithm 1 rendezvous occurs at this time during this execution. As a result, agents A and B are separated by a distance greater than r at time ∆ in EX 1 . This implies, that rendezvous does not occurs at time ∆ in EX 1 , which is a contradiction and proves the lemma.
We continue with the next lemma that concerns the instances of type 3.

Lemma 3.4 Algorithm
AlmostUniversalRV guarantees rendezvous for all instances of type 3.
Proof. Fix an arbitrary instance I = (r, x, y, φ, τ, v, t, χ) of type 3. By definition of such an instance, the two agents have different clocks. The agent with the faster clock will be called agent X, while the other agent will be called agent Y . Denote by u X (resp. u Y ) the unit of length of agent X (resp. Y ). Also denote by τ X (resp. τ Y ) the unit of time of agent X (resp. Y ). As usual, all times and durations (resp. distances) are expressed w.r.t the unit of time (resp. length) of the reference agent A of I, unless explicitely stated otherwise. Note that, agent A is either X or Y .
To proceed with the proof, we will show that rendezvous occurs by the time agent X finishes the execution Claim 3.7 The execution by agent X of procedure PlanarCowWalk(i) from its initial position p X allows it to get at distance at most r of all points at distance at most 2 i u X from p X .
Proof of the claim: In the proof of this claim all coordinates and distances are expressed in the system of X (whose origin is p X ), except where otherwise specified.
Let (f, g) be the cartesian coordinates of a given point located at distance at most 2 i from point p X . We have |f | ≤ 2 i , and therefore there exist two integers −2 2i ≤ a ≤ 2 2i and − 1 Similarly, there exist two integers −2 2i ≤ c ≤ 2 2i and − 1 2 i+1 ≤ d ≤ 1 2 i+1 such that g = c 2 i + d. In view of Algorithm 2, we know that agent X ends up executing LinearCowWalk(i) from point (0, c 2 i ). By Algorithm 3, this execution of LinearCowWalk(i) allows the agent to traverse all the points (f , c 2 i ) such that −2 i ≤ f ≤ 2 i . Hence, there is a time when the agent occupies the position ( a 2 i , c 2 i ). The distance between (f, g) and ( a Recall that this distance of 1 2 i is expressed in the unit of length of agent X. Expressed in the global unit, this distance is equal to u X 2 i , which is at most r by the definition of i. This concludes the proof of this claim. In phase i, the instruction at line 15 of Algorithm 1 consists, for agent X, in executing PlanarCowWalk(i). By Lemma 3.1, this execution starts from the initial position p X of agent X. Hence, in view of Claim 3.7 and the fact that, by the definition of i, 2 i u X ≥ x 2 + y 2 , we know that if agent Y waits at its initial position p Y during the entire execution of line 15 of Algorithm 1 in phase i by agent X, rendezvous occurs by the time agent X finishes this execution.
Note that if agent Y executes the waiting period at line 14 of Algorithm 1 during phase i, it is located at its initial position p Y according to Lemma 3.1. So, in the light of the above arguments, it is enough to show the following two properties: • If agent X starts executing procedure PlanarCowWalk(i) at line 15 of Algorithm 1 in phase i, agent Y has at least started the waiting period of the previous line during the same phase.
• Agent Y cannot have started executing line 15 of Algorithm 1 in phase i before agent X finishes the execution of the same line in the same phase.
This is done through Claims 3.8 to 3.10 that are proved below and that therefore conclude the proof of this lemma.
Proof of the claim: The execution of an instruction by agent X takes time cτ X for some real c iff the execution of the same instruction by agent Y takes time cτ Y . As a result, it is enough to show that the claim holds for agent X. In the rest of the proof of this claim, all durations are in the units of time of agent X.
Let k be a positive integer. According to Algorithm 3 (resp. Algorithm 2), the execution by agent X of procedure LinearCowWalk(k) (resp. PlanarCowWalk(k)) takes time at most 2 k+3 (resp. at most 2 3k+5 ). This implies that the execution by agent X of lines 5 to 10 (resp. lines 14 to 18) of Algorithm 1 in phase k takes time at most 2 4k+6 + 2 k+1 (resp. at most 2 15k 2 + 2 3k+5 + 2 3k + 2 k ). The execution by agent X of line 12 of Algorithm 1 during phase k is upper bounded by 2 k . Moreover, since the execution by agent X of line 18 of Algorithm 1 in phase k takes time at most 2 3k + 2 k and consists in waiting at least time 2 3k , the execution of line 20 of Algorithm 1 in phase k takes time at most 2 k .
Hence, the execution by agent X of the first i − 1 phases of Algorithm 1 and of the lines 5 to 12 in phase i of Algorithm 1 lasts a time at most 2 4i+6 + 2 i+2 + k=i−1 k=1 2 15k 2 +1 . This is upper bounded by 2 4i+7 + 2 15(i−1) 2 +2 ≤ 2 15(i−1) 2 +4i+9 , which concludes the proof of this claim. Proof of the claim: Let q X (resp. q Y ) be the time, if any, when agent X (resp. Y ) starts the execution of line 15 (resp. line 14) of Algorithm 1 in phase i. q Y has higher value when agent Y is agent B than when it is agent A. q X has lower value when agent X is agent A than when it is agent B. In view of Claim 3.8 and the fact that 2 i ≥ t, by the definition of i, we have q Y ≤ 2 i + (2 15(i−1) 2 +4i+9 )τ Y and q X ≥ (2 15(i−1) 2 +4i+9 + 2 15i 2 )τ X .
Consequently we have the following inequality The above inequality can be rewritten as follows This implies Since, agent Y is the agent with slower clock, we know that τ Y ≥ 1. Moreover, we know that i ≥ 1 and Consequently, the difference q X − q Y is always positive, which concludes the proof of the claim. Proof of the claim: Let s X (resp. s Y ) be the time, if any, when agent X (resp. Y ) finishes (resp. starts) the execution of line 15 of Algorithm 1 in phase i. s Y has lower value when agent Y is agent A than when it is agent B. s X has higher value when agent X is agent B than when it is agent A. Note that according to Algorithms 3 and 2, an execution by agent X of PlanarCowWalk(i) takes time at most 2 3i+5 τ X . Moreover, by the definition of i, we know that 2 i ≥ t. Hence, in view of Claim 3.8, we can state that s X ≤ 2 i + (2 15(i−1) 2 +4i+9 + 2 15i 2 + 2 3i+5 )τ X and s Y ≥ (2 15(i−1) 2 +4i+9 + 2 15i 2 )τ Y .
Consequently, we have the following inequality By the definition of i, we have Hence, we have In view of the fact that τ Y ≥ 1 and i ≥ 1, inequality (17) implies that As a result, the difference s Y − s X is always positive, which concludes the proof of this claim. Now, it remains to deal with the instances of type 4. This is the aim of the following lemma. Proof. Let I = (r, x, y, φ, τ, v, t, χ) be an arbitrary instance of type 4 and let I = ( r 2 , x, y, φ, τ, v, 0, χ) be an instance of type 4 which is identical to I except that the visibility radius of the agents has been reduced by half and the delay between the starting times of the agents is 0 (while it is not necessarily the case in I).
By the definition of type 4, instances I and I belong to the set made of the non-synchronous instances for which τ = 1 and of the synchronous instances for which χ = 1 and φ = 0 (since these latter instances are synchronous, they also have τ = 1).
In instance I, we keep our usual way to denote the reference agent by A and the other agent by B. In instance I , the reference agent is denoted by A while the other agent is denoted by B . We also keep the usual way to describe a situation with respect to the coordinate system and the parameters of a reference agent, using indistinctly those of agent A or A as they are identical by convention. Note that, the four agents all have the same clock rate and agent A (resp. agent B) shares the same unit of length with agent A (resp. B ). These elements must be kept in mind when reading the rest of this proof, as they condition the validity of the arguments.
First consider the execution EX of procedure CGKK for instance I . According to the properties of this procedure (cf. Section 2), rendezvous occurs in EX after a finite time ∆, at the end of which the position p occupied by agent A is at distance at most r 2 from the position q occupied by agent B . Now, consider the execution EX of Algorithm AlmostUniversalRV for instance I and suppose by contradiction that rendezvous does not occur in EX by the time agent A finishes to execute phase i = log(t + ∆ + 4(v+1) r ) . Let S A,1 S A,2 . . . S A,2 2i (resp. S B,1 S B,2 . . . S B,2 2i ) be the solo execution of CGKK by agent A (resp. B) during time 2 i , where each segment S A,j (resp. S B,j ) takes time 1 2 i . Since 2 i ≥ ∆, we know that agent A (resp. B) executes at some point segment S A, 2 i ∆ (resp. S B, 2 i ∆ ) at line 18 of Algorithm 1 during phase i. When it does so, we know that agent A (resp. B) passes through position p (resp. q ) in view of execution EX and the fact that by Lemma 3.1 it always starts to execute line 18 of Algorithm 1 from its initial position (0, 0) (resp. (x, y)). Since 2 i ≥ t and the clock rates of the agents in instance I are identical, we also know that when agent A finishes, say at some time s, the waiting period lasting 2 i just after the execution of segment S A, 2 i ∆ in phase i, agent B finishes or is still executing the waiting period lasting 2 i just after segment S B, 2 i ∆ during the same phase.
As a result, at time s, agent A (resp. B) is located at a position p (resp. q) which is at distance at most 1 2 i (resp. v 2 i ) from p (resp. q ) because the execution by agent A (resp. B) of segment S A, 2 i ∆ (resp. S B, 2 i (∆−t) ) takes time 1 2 i . By the definition of i, we know that 1 2 i ≤ r 4(v+1) . Hence, position p (resp. q) is at distance at most r 4 from position p (resp q ). This implies that position p and q are separated by a distance greater than r 2 as otherwise, by Algorithm 1 rendezvous occurs at time s before agent A finishes to execute phase i = log(t + ∆ + 4(v+1) r ) . This contradicts the fact that the position p occupied by agent A is at distance at most r 2 from the position q occupied by agent B when rendezvous occurs in EX . As a result, we know that rendezvous occurs in EX by the time agent A finishes executing phase i = log(t + ∆ + 4(v+1) r ) , which concludes the proof of the lemma. Theorem 3.2 is a direct consequence of Lemmas 3.2, 3.3, 3.4, and 3.5.

Proof of Theorem 3.1
We are now able to address the proof of Theorem 3.1 that provides a characterization of the feasible instances.
The next two lemmas follow from Theorem 3.2.
The following lemma follows from [38]: Lemma 3.8 Every synchronous instance (r, x, y, φ, τ, v, t, χ) for which χ = 1 and φ = 0 is feasible if and only if t ≥ dist((0, 0), (x, y)) − r. This case is depicted in Figure 5 . Moreover, agent B moves towards proj A (z+t) (without reaching it) during the time interval [z, z+t]. Hence, dist(proj A (z + t), proj B (z + t)) = dist(proj A , proj B ) − t which is, as in the first case, exactly equal to r. Hence, agents A and B are at distance r of each other at time z + t and, according to the algorithm, never move thereafter.
Hence, in all cases, rendezvous is achieved, which concludes the proof of the "if" implication, and thus the proof of the lemma.
Using the above lemmas, we can now prove Theorem 3.1.

Proof of Theorem 3.1
The first statement of the theorem follows from Lemma 3.6. Hence, consider a synchronous instance. The "if" part of the second statement follows directly from Lemmas 3.7, 3.8, and 3.9.
It remains to prove the "only if" part of the second statement. First suppose that χ = −1. In this case, the conjunction of the negations of 2a, 2b, and 2c implies t < dist(proj A , proj B ) − r. Hence, the nonfeasibility follows from Lemma 3.9. Next suppose that χ = 1. In view of the negation of 2a, we have φ = 0. Hence, the negation of 2b implies t < dist((0, 0), (x, y)) − r, and the non-feasibility follows from Lemma 3.8.
Call these sets of instances S 1 and S 2 respectively.
We now argue that these exception sets, while of course infinite, are small in a geometric sense, compared to the set of all feasible instances. First consider all feasible instances (r, x, y, φ, τ, v, t, χ) and partition them into two sets: F 1 are those with χ = 1 and F 2 are those with χ = −1. Hence each of F 1 and F 2 can be formalized as a subset of R 7 . Since all non-synchronous instances are feasible, both for χ = 1 and for χ = −1, and synchronous instances (i.e., those for which τ = v = 1) are contained in two copies of the subspace R 5 , it follows that each of F 1 and F 2 contains a ball in R 7 of positive radius (intuitively these sets are "fat" in R 7 , i.e., not contained in any lower-dimension subspace of this space).
Now consider the exception sets S 1 ⊂ F 1 and S 2 ⊂ F 2 . S 1 is the set of synchronous instances in F 1 for which φ = 0 and t = dist((0, 0), (x, y)) − r. Hence these are instances satisfying four (independent) linear equations and consequently their set is contained in a copy of a subspace R 3 of R 7 . S 2 is the set of synchronous instances in F 2 for which t = dist(proj A , proj B ) − r. Hence these are instances satisfying three (independent) linear equations and consequently their set is contained in a copy of a subspace R 4 of R 7 . This shows that the "fat" set of feasible instances contains two exception sets that are very "slim" and Algorithm AlmostUniversalRV is a single rendezvous algorithm handling all feasible instances except those two sets. Another way of arguing that the exception sets are small compared to the set F 1 ∪ F 2 of all feasible instances is that the latter set has positive 7-dimensional Lebesgue measure (in fact it is easy to see that this measure is not only positive but infinite) while each of the exception sets S 1 and S 2 has 7-dimensional Lebesgue measure 0.
Moreover, it follows from [38] that there is no single algorithm guaranteeing rendezvous for all instances from set S 1 , and it follows from Theorem 4.1 below that there is no single determinictic algorithm handling all instances from set S 2 . Hence we miss little and cannot avoid it altogether.
Proof. Assume by contradiction that there exists an algorithm A guaranteeing rendezvous for every synchronous instance such that χ = −1 and t = dist(proj A , proj B ) − r.
Consider an instance I = (r, x, y, φ, τ, v, t, χ) as above such that t > 0 and suppose that agents execute algorithm A. From Definition 2.1, the inclination of the canonical line of I is φ 2 . By inclination, we mean the smallest positive angle α such that the x-axis of agent A is parallel to the canonical line after rotating the system of A by angle α. We have the following claim. Proof of the claim: When rendezvous occurs at a time z, we necessarily have dist(proj A (z), proj B (z)) ≤ r.
Suppose that z < t. At time z, agent B is still idle while agent A has traversed a distance at most z. Hence, dist(proj A (z), proj B (z)) ≥ dist(proj A , proj B ) − z > dist(proj A , proj B ) − t = r which is a contradiction. This proves z − t ≥ 0.
So, in view of Corollary 2.1, we have dist(proj A (z − t), proj B (z)) = dist(proj A , proj B ). Consequently, we know that dist(proj A (z − t), proj A (z)) ≥ dist(proj A , proj B )−r because dist(proj A (z), proj B (z)) ≤ r. Moreover, dist(proj A (z − t), proj A (z)) ≤ t = dist(proj A , proj B ) − r because the distance traveled by agent A during the time interval [z − t, z] is at most t. Hence, dist(proj A (z − t), proj A (z)) = t. This can occur only if agent A traverses a segment of length t parallel to the canonical line during the time interval [z − t, z]. Since, the inclination of the canonical line is φ 2 , the claim is proved. Now consider the solo execution of algorithm A by an agent and denote by P the polygonal line forming the trajectory of the agent in its system of coordinates. This line is composed of a possibly infinite but countable sequence of segments S 1 , S 2 , . . . . In view of Claim 4.1, we know that for every angle φ, one of these segments must have inclination φ 2 . However, the number of possible angles is uncountable. This is a contradiction.

Conclusion
In our considerations, we assumed the same visibility radius r for both agents, similarly as in [18,38], in order to facilitate the reading. However, all our results remain true if the visibility radii are different. Assume that the visibility radius r 1 of one of the agents is not smaller than the visibility radius r 2 of the other one. Rendezvous is defined similarly as before: agents have to see each other (i.e., be at distance at most r 2 ) and never move after this time.
First note that all our negative results remain true with r replaced by r 1 : in all these results, agents will still never see each other. We now argue that all our positive results (i.e., results concerning the algorithms) also remain correct, after replacing r by r 1 in their validity conditions. Consider either Algorithm AlmostUniversalRV or any algorithm working for a particular instance, executed as if both agents had the same radius r 1 . We have the guarantee that at some point, both agents get at distance r 1 . At this time, the agent with visibility radius r 1 sees the other agent and stops. Now the aim is for the other agent to get at distance r 2 from the agent with visibility radius r 1 , in order to guarantee rendezvous. This will happen without any change in the case of algorithm AlmostUniversalRV, as it contains in each phase a search procedure (i.e., procedure PlanarCowWalk), and can be done adding this search procedure as the last instruction in the other algorithms.
A natural open problem is to generalize the rendezvous task to that of gathering many agents and to see how conditions on feasibility of instances change with respect to rendezvous of two agents. Which of the feasible