Abstract
In this paper, we address the problem of determining whether a mobile robot, called the pursuer, is able to maintain strong mutual visibility (a visibility notion between regions over a convex partition of the environment) of an antagonist agent, called the evader. We frame the problem as a non cooperative game. We consider the case in which the pursuer and the evader move at bounded speed, traveling in a known polygonal environment with or without holes, and in which there are no restrictions as to the distance that might separate the agents. Unlike our previous efforts (MurrietaCid et al. in Int J Robot Res 26:233–253, 2007), we give special attention to the combinatorial problem that arises when searching for a solution through visiting several locations in an environment with obstacles. In this paper we take a step further, namely, we assume an antagonistic evader who moves continuously and unpredictably, but with a constraint over its set of admissible motion policies, as the evader moves in the shortestpath roadmap, also called the reduced visibility graph (RVG). The pursuer does not know which among the possible paths over the RVG the evader will choose, but the pursuer is free to move within all the environment. We provide a constructive method to solve the decision problem of determining whether or not the pursuer is able to maintain strong mutual visibility of the evader. This method is based on an algorithm that computes the safe areas (areas that keep evader surveillance) at all times. We prove decidability of this problem, and provide a complexity measure to this evader surveillance game; both contributions hold for any general polygonal environment that might or not contain holes. All our algorithms have been implemented and we show simulation results.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
In classic visibility two points are visible when a line segment between them does not intersect any obstacle Shermer (1992).
A reflex vertex is a polygon vertex of an internal angle greater than \(\pi \).
In the presented algorithms the computation of the reachable areas is done backwards from \(n_j\) to \(n_i\).
\(t_{c}(w,z)\) denotes the smallest time that takes to the player c to move from point w to point z.
The set \(Im^{1}( \mathbf R _{1,n}^{1}) \setminus Im^{1}( \mathbf R _{1,n}^{ k })\) is formed by the elements in \(Im^{1}( \mathbf R _{1,n}^{1})\) such that if the pursuer departs from them, it can maintain SMV of the evader for at most \(k1\) laps.
Also recall that in a tree the path of unrepeated nodes from \(n_i\) to \(n_a\) is unique and it can only be \(\rho _e(n_i,n_a)\).
Note that a reflex ray differs from an inflection ray, as defined in LaValle (2006). Whenever a robot crosses an inflection ray, a gap in the gap navigation tree (GNT) will (dis)appear.
We say that two points are visible when we can draw a line segment between them and it is not intersected by any obstacle.
References
Bandyopadhyay, T., Li, Y., Ang, M.H., & Hsu, D. (2006). A greedy strategy for tracking a locally predictable target among obstacles. In Proceedings of IEEE International Conference on Robotics and Automation.
Bandyopadhyay, T., Ang, M.H., & Hsu, D. (2007). Motion planning for 3D target tracking among obstacles. In International Symposium on Robotics Research.
Barrière, L., Flocchini, P., Fraigniaud, P., & Santoro, N. (2002). Capture of an intruder by mobile agents. In Proceedings of the 14th Annual ACM Symposium on Parallel Algorithms and Architectures (pp. 200–209). Winnipeg, Manitoba.
Başar, T., & Olsder, G. (1982). Dynamic noncooperative game theory. London: Academic Press.
Becerra, I., MurrietaCid, R., & Monroy, R. (2010). Evader surveillance under incomplete information. In IEEE International Conference on Robotics and Automation.
Becker, C., GonzálezBaños, H., Latombe, J.C., & Tomasi, C. (1995). An intelligent observer. In International Symposium on Experimental Robotics.
Bhattacharya, S., & Hutchinson, S. (2009). On the existence of nash equilibrium for a two player pursuitevasion game with visibility constraints. In International Journal on Robotics Research.
Bhattacharya, S., & Hutchinson, S. (2011). A Cell decomposition approach to visibilitybased pursuit evasion among obstacles. The International Journal of Robotics Research, 30(14), 1709–1727.
Chung, T.H. (2008). On probabilistic search decisions under searcher motion constraints. In WAFR 2008 (pp. 501–516).
Chung, T., Hollinger, G., & Isler, V. (2011). Search and pursuitevasion in mobile robotics: A survey. Autonomous Robots, 31(4), 299–316.
Cormen, T. H., Stein, C., Rivest, R. L., & Leiserson, C. E. (2001). Introduction to algorithms. Groveport: McGrawHill Higher Education.
Efrat, A., GonzalezBaños, H.H., Kobourov, S.G., & Palaniappan, L. (2003). Optimal motion strategies to track and capture a predictable target. In Proceedings of IEEE International Conference on Robotics and Automation (pp. 411–423). Taipei, Taiwan.
Fabiani, P., & Latombe, J.C. (1999). Tracking a partially predictable object with uncertainty and visibility constraints: A gametheoretic approach. In IJCAI.
Garey, M. R., & Johnson, D. S. (1979). Computers and intractability. New York: W. H. Freeman and Company.
González, H.H. et al. (2002). Realtime combinatorial tracking of a target moving unpredictably among obstacles. In Proceedings of IEEE International Conference on Robotics and Automation.
Guibas, L., Latombe, J.C., LaValle, S. M., Lin, D., & Motwani, R. (1999). Visibilitybased pursuitevasion in a polygonal environment. International Journal of Computational Geometry and Applications, 9(5), 471–494.
Hájek, O. (1965). Pursuit games. New York: Academic Press.
Hespanha, J., Prandini, M., & Sastry, S. (2000). Probabilistic pursuitevasion games: A onestep Nash approach. In Proceedings of Conference on Decision and Control.
Hollinger, G., Singh, S., Djugash, J., & Kehagias, A. (2009). Efficient multirobot search for a moving target. The International Journal of Robotics Research, 28(2), 201–219.
Isaacs, R. (1965). Differential games. New York: Wiley.
Isler, V., Kannan, S., & Khanna, S. (2005). Randomized pursuitevasion in a polygonal environment. IEEE Transactions on Robotics, 5(21), 864–875.
Jung, B., & Sukhatme, G. (2002). Tracking targets using multiple robots: The effect of environment occlusion. Journal Autonomous Robots, 12, 191–205.
Latombe, J.C. (1991). Robot motion planning. New York: Kluwer Academic Publishers.
LaValle, S.M., GonzálezBaños, H.H., Becker, C., & Latombe, J.C. (1997) Motion strategies for maintaining visibility of a moving target. In Proceedings of IEEE International Conference on Robotics and Automation.
LaValle, S. M. (2006). Planning algorithms. Cambridge: Cambridge University Press.
Merz, A.W. (1971). The homicidal chauffeur a differential game. PhD. Thesis. Stanford University.
MurrietaCid, R., Sarmiento, A., & Hutchinson, S. (2003). On the existence of a strategy to maintain a moving target within the sensing range of an observer reacting with delay. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems.
MurrietaCid, R., Tovar, B., & Hutchinson, S. (2005). A samplingbased motion planning approach to maintain visibility of unpredictable targets. Journal Autonomous Robots, 19(3), 285–300.
MurrietaCid, R., Muppirala, T., Sarmiento, A., Bhattacharya, S., & Hutchinson, S. (2007). Surveillance strategies for a pursuer with finite sensor range. International Journal of Robotics Research, 26(3), 233–253.
MurrietaCid, R., Monroy, R., Hutchinson, S., & Laumond, J.P. (2008). A complexity result for the pursuitevasion game of maintaining visibility of a moving evader. In IEEE International Conference on Robotics and Automation.
O’Rourke, J. (2000). Computational geometry in C. Cambridge: Cambridge University Press.
O’Rourke, J. (1987). Art gallery theorems and algorithms. Oxford: Oxford University Press.
O’Kane, J.M. (2008). On the value of ignorance: Balancing tracking and privacy using a twobit sensor. In Proceedings of International Workshop on the Algorithmic Foundations of Robotics.
Parker, L. (2002). Algorithms for multirobot observation of multiple targets. Journal Autonomous Robots, 12, 231–255.
Parsons, T. D. (1976). Pursuitevasion in a graph. In Y. Alani & D. R. Lick (Eds.), Theory and application of graphs (pp. 426–441). Berlin: Springer.
Pocchiola, M., & Vegter, G. (1996). The visibility complex. In International Journal of Computational Geometry and Applications.
Rappoport, A. (1966). Twoperson game theory. Dover: Courier Corporation.
Sachs, S., Rajko, S., & LaValle, S. M. (2004). Visibilitybased pursuitevasion in an unknown planar environment. International Journal on Robotics Research, 23(1), 3–26.
Shermer, T.C. (1992). Recent results in art galleries. In Proceedings of the IEEE (vol. 80, no. 9).
Stump, E., Michael, N., Kumar, V., & Isler, V. (2011). Visibilitybased deployment of robot formations for communication maintenance. In IEEE International Conference on Robotics and Automation 2011.
Suzuki, I., & Yamashita, M. (1992). Searching for a mobile intruder in a polygonal region. SIAM Journal on Computing, 21(5), 863–888.
Takeuti, G., & Zaring, W. M. (1971). Introduction to axiomatic set theory. New York: Springer.
Tekdas, O., Yang, W., & Isler, V. (2010). Robotic routers: Algorithms and implementation. The International Journal of Robotics Research, 29(1), 110–126.
Tovar, B., & LaValle, S. M. (2008). Visibilitybased pursuit—evasion with bounded speed. The International Journal of Robotics Research, 27(11–12), 1350–1360.
Vidal, R., et al. (2002). Probabilistic pursuitevasion games: Theory, implementation, and experimental evaluation. IEEE Transactions on Robotics and Automation, 18(5), 662–669.
Acknowledgments
This work was partially funded by CONACYT Project 106475 and NSFCONACYT Project J110.534/2006.
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version of a portion of this work has been presented at the IEEE International Conference on Robotics and Automation (MurrietaCid et al. 2008).
Appendices
Appendix 1: Proof of Theorem 1
Theorem 1
The proposed messagepassing scheme considers all the possible paths of unrepeated nodes that the evader might travel in the RVG. Furthermore, it also considers any path of repeated nodes.
Proof
We first elaborate for the case when the RVG has a tree topology. Later, we built upon the tree case to address when the RVG has cycles within it.
The proof for the case of a RVG with tree topology proceeds as follows. First, it considers the paths of unrepeated nodes. This class of paths is exhaustively decomposed into two types, one that starts from the root node \(n_r\) to any other node \(n_i \in RVG\) (refer to Fig. 19a), and the second, paths from any node \(n_i \in RVG\) to any node \(n_j \in RVG\), with \(n_i \ne n_j \ne n_r\) (refer to Fig. 19b). Later, paths with repeated nodes are considered and it is shown that such class of paths can be constructed as concatenations of paths with unrepeated nodes.
First, we prove that the messagepassing scheme considers the first type of unrepeated nodes paths. Let us consider then a path of unrepeated nodes from \(n_r\) to \(n_i\), with \(n_r \ne n_i\). When the message propagation starts from the leaf nodes all the way up to \(n_r\), at some iteration it surely reaches node \(n_i\), as \(n_r\) is the root node of the RVG and therefore \(n_i\) is a descendant node of \(n_r\); subsequently, the messagepassing scheme starts travelling the path from \(n_i\) up to \(n_r\), which is the unrepeated nodes path from \(n_r\) to \(n_i\) but in reverse order, passing the necessary surveillance restrictions for going from \(n_r\) to \(n_i\). The result follows.
Now, we prove that the messagepassing scheme considers the second type of unrepeated nodes paths. If the evader first visits \(n_r\) and then it decides to go to any other node \(n_i \in RVG\), there is always the possibility that after the evader arrives to \(n_i\), it might decide to move to any other node \(n_j \ne n_r\), that is, to follow a path of the second type. So let us assume such case when the evader first visits \(n_r\)–using \(n_r\) as an entry point to the RVG–, then it arrives to a node \(n_i\), and then it decides to follow a path of the second type to a node \(n_j\). Focusing on these last two nodes, \(n_i\) and \(n_j\), for each node a path can be tracked towards \(n_r\) until both paths have a common ancestor node, lets call it \(n_{a}\), see Fig. 19b. Following this procedure the path with unrepeated nodes between \(n_i\) and \(n_j\) can be found (in a tree this path is unique). Such path can be divided into two parts, the first one from \(n_i\) to \(n_{a}\) and the second one from \(n_{a}\) to \(n_j\). In the first part of the path, following the messagepassing scheme we already know that node \(n_{a}\) receives the proper information or restrictions (from the parent of \(n_i\), following a succession of ancestors nodes up to \(n_{a}\)), so that the pursuer can maintain SMV of an evader that first visits \(n_{a}\) and then follows a sequence of unrepeated nodes until \(n_i\). If the pursuer fulfils the restrictions passed to \(n_{a}\) (indeed, this is done by first fulfilling the restrictions passed to \(n_r\)) then there must exist a path \(\rho _p(n_a,n_i)\) from \(gP(n_a)\) to \(gP(n_{i})\) for the pursuer, such that it allows evader surveillance when the evader moves from \(n_{a}\) to \(n_i\); let us call that evader’s path \(\rho _e(n_a,n_i)\). If such path \(\rho _p(n_a,n_i)\) exists, the pursuer can simply follow \(\rho _p(n_a,n_i)\) in the opposite direction (that is \(\rho _p(n_i,n_a)\), successfully returning to \(gP(n_{a})\)) to maintain surveillance of an evader that follows \(\rho _e(n_a,n_i)\), but also in the opposite direction (that is \(\rho _e(n_i,n_a)\)).^{Footnote 6} Furthermore, for every viable path for the pursuer from \(gP(n_i)\) to \(gP(n_a)\), there must be its counterpart in the opposite direction, that is from \(gP(n_a)\) to \(gP(n_i)\), because if that does not hold means that there exists a path \(\rho _p(n_i,n_a)\) that the pursuer cannot follow in the opposite direction, which is not possible. Hence, no extra restrictions need to be passed to node \(n_a\) (and therefore to \(n_r\)) so that if the pursuer fulfils the restrictions passed to \(n_r\), which includes the ones from \(n_a\), the pursuer can maintain surveillance of an evader that moves starting from \(n_r\), passing though \(n_a\), then arriving to \(n_i\) and then moving back to \(n_a\).
Let us analyse the second part of the path, that is when the evader moves from \(n_a\) to \(n_j\). Following the messagepassing scheme, \(n_a\) receives the proper information or restrictions, so that if the pursuer fulfils such restrictions it can maintain SMV of an evader that visits \(n_a\) and then follows a sequence of unrepeated nodes until it reaches any node below \(n_a\), which also includes \(n_j\); it can be seen that the messagepassing scheme by itself considers the evader’s path from \(n_a\) to \(n_j\). Now, we can conclude that using the message passing scheme, node \(n_r\) receives all the necessary restrictions that the pursuer must fulfil to maintain surveillance of an evader that moves starting from \(n_r\), passing though \(n_a\), then arriving to \(n_i\) and then moving back to \(n_a\) and finally arriving to \(n_j\).
Any subsequent path of repeated nodes of the evader can be described as concatenations of paths with unrepeated nodes. This is done splitting the repeated nodes paths by considering a new unrepeated nodes subpath starting in a node before a repeated node appears. Therefore, every path of repeated nodes is a succession of paths of the type \(n_i \rightarrow \cdots \rightarrow n_a \rightarrow \cdots \rightarrow n_j\), and first fulfilling the restrictions passed to \(n_r\) (using it as an entry point to the RVG), always allows the pursuer to fulfil the restrictions related to any node \(n_a\), so a path \(n_i \rightarrow \cdots \rightarrow n_a\) followed by \(n_a \rightarrow \cdots \rightarrow n_j\) can always be traced by the pursuer as shown before, adding no extra restrictions to the ones already passed to \(n_r\) via the proposed messagepassing scheme.
In the message passingscheme, when the messages are passed from the leaf nodes all the way up to \(n_r\), any node only receives the surveillance restrictions from all the nodes below it. By propagating the messages from \(n_r\) all the way down to the leaf nodes, the remaining surveillance restrictions are sent to every node \(n_i \in RVG\) (restrictions from branches not bellow \(n_i\)), enabling any node \(n_i\) as an entry point to the RVG, i.e., as a root node. The result follows.
For the case of a RVG with cycles, it is possible to consider all the evader paths by unfolding the graph in a succession of trees (refer to Sect. 6.2 for a complete procedure to unfold the graph), therefore the result for this later case follows directly from the tree case. \(\square \)
Appendix 2: Workspace partitions
The notion of SMV relies on the availability of a convex partition of the workspace W. In this section we present a two steps algorithm that generates two different resolution partitions, however, we first introduce some terminology used along this section.
Notice that reflex vertices are crucial in our problem, since they break the convexity of the polygonal environment.
Definition 5
For a given reflex vertex v, a reflex ray is a line segment from v, to the boundary of W, collinear to the supporting line of the edge incident to v.^{Footnote 7} Each reflex vertex defines two reflex rays. See Fig. 20a.
Definition 6
For a given pair of visible^{Footnote 8} reflex vertices, v and u, an extended bitangent segment \(\mathcal{B}\) between them, is a line segment in the workspace W such that:

The endpoints of \(\mathcal{B}\) are neither v nor u.

\(\mathcal{B}\) is tangent to \(\partial W\) (boundary of W) in v and u.

Considering a ball \(B_r(x)\) with an arbitrarily small radius r centred at point x, then, \( \forall x \in \mathcal{B}\), \(B_r(x) \cap \partial W \cap \mathcal{B} = \{ x \}\) or \(B_r(x) \cap \partial W \cap \mathcal{B} = \emptyset \).

There is no other extended bitangent segment \(\mathcal{B}'\) related to v and u, such that \(\mathcal{B} \subset \mathcal{B}'\).
Figure 20b shows an example of a extended bitangent segment.
Definition 7
A line segment \(\overline{a\,b} \subset W\) is tangent to \(\partial W\) in a point p, iff:

\(p\ne a\) and \(p \ne b\).

Considering a ball \(B_r(p)\) with an arbitrarily small radius r centred at p, then, \(B_r(p) \cap \partial W \cap \overline{a\,b} = \{ p \}\).
Definition 8
A cornerguard polygon, cgP(v), for a given reflex vertex v, is the set of points within W delimited by the lines supporting v.^{Footnote 9} Refer to Fig. 21.
Our proposal for partitioning the environment follows a twostep approach, being purely based on the environment structure rather than on the current positioning of the players. The steps are as follows:

(1)
For every reflex vertex, trace both of its reflex rays.

(2)
For every pair of reflex vertices, trace an extended bitangent segment, whenever possible.
The first resolution partition comes from integrating reflex rays, considering a convex region \(R_i\) a convex polygon whose interior is not intersected by a reflex ray. Any convex region \(R_i\) is bounded by reflex rays, portions of them (as the reflex rays might intersect), or portions of the polygonal workspace boundary. The second resolution partition comes from considering both reflex rays and extended bitangent segments. In such case any convex region \(R_i\) might also be bounded by extended bitangent segments or portions of them.
1.1 First resolution partition (reflex rays)
Focusing on the first partition, notice that the first step of our approach yields for every reflex vertex, regions located over its related cornerguard polygons, which we name as cornerguard regions. Taking this into account, we get the next definition.
Definition 9
A region \(R_i\) is a cornerguard region for a given reflex vertex v, denoting it as cgR(v), iff it is fully contained in cgP(v), and at the same time, \(\forall p \in cgR(v)\), \(\overline{p\,v} \subset W\). Refer to Fig. 21.
Remark 7
A cornerguard polygon cgP(v) might have more than one cornerguard region.
The relevance behind the concept of cornerguard regions is that, since the reflex vertices are the ones that break convexity in a given polygon, the evader is obliged to use them to break SMV with the pursuer, and once the pursuer is over a cornerguard region cgR(v), the pursuer completely nullifies any attempt of the evader to break SMV with it making use exclusively of reflex vertex v. This happens because there is no point \(p \in cgR(v)\), where an open line segment is traceable to a point \(q \in R_i\), such that \(\overline{p\,q}\) is exclusively intersected by the edges incident to v. Our fist resolution partition generates the cornerguard regions, which nullifies all possible evader escape using only one single reflex vertex. An example of the resulting partition after applying the first step of the partitioning algorithm is shown in Fig. 22.
1.2 How to refine a given convex partition (pivot segments)
Intuitively, since maintaining SMV is a sufficient condition for surveillance, it is desirable to choose a partition that yields pairs of SMV regions that are as large as possible, and yields regions that are SMV with as many other regions as possible. Notice that both objectives have a tradeoff between them as we can keep splitting any region. On the other hand, we are also interested on keeping reflex rays as they generate cornerguard regions, nevertheless, we can still do a further refinement to the partition yielded from the first step of our approach, in order to generate new regions that are as large as possible and have a gain in SMV with respect to its regions of provenance. Keeping that in mind, denote by \(SMV(R_i)\) the set of regions that are SMV with region \(R_i\). The total area of these regions is then given by
in which \(\mu (R_k)\) denotes the area of region \(R_k\). If the summation of each \(\mathcal{V}_\mathrm{sm} (R_i)\) is done over all region \(R_i\), then \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) is a global measure intrinsic to a given partition, which depicts us a degree of interaction between its regions regarding to SMV. As it comes naturally from looking for a partition where every region is of the largest size and with the largest SMV relation, we are interested on a partition that gives a value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) as big as possible.
After applying the first step of our partitioning algorithm, we can then perform a further refinement of the yielded partition in order to increment \(\sum \mathcal{V}_\mathrm{sm} (R_i)\). Knowing that the reflex vertices are the features that break the convexity of the environment, without loss of generality, let us focus on a single reflex vertex v and assume that it only has a single cornerguard region related to it, further referred as cgR(v), and call \(R_1\) and \(R_2\), to the two regions adjacent to cgR(v) (see Fig. 23a). We know that cgR(v) is SMV with both \(R_1\) and \(R_2\), but \(R_1\) and \(R_2\) are not SMV with each other. To bring an increment on \(\sum \mathcal{V}_\mathrm{sm} (R_i)\), what we need to do is to partition both \(R_1\) and \(R_2\) in order to generate new regions over \(R_1\) and \(R_2\) that are now SMV. There are several ways for partitioning \(R_1\) and \(R_2\), however, in Theorem 5 we show that the best way to partition \(R_1\) and \(R_2\) in order to bring an increment to \(\sum \mathcal{V}_\mathrm{sm} (R_i)\), is to add pivot segments over v, consequently, let us first define a pivot segment.
Definition 10
A pivot segment \(\mathcal{S}\) for a given reflex vertex v, is a line segment in W such that:

The endpoints of \(\mathcal{S}\) are not v.

\(v \in \mathcal{S}\).

Considering a ball \(B_r(x)\) with an arbitrarily small radius r centered at point x. \( \forall x \in \mathcal{S}\), \(B_r(x) \cap \partial W \cap \mathcal{S} = \{ x \}\) or \(B_r(x) \cap \partial W \cap \mathcal{S} = \emptyset \).

There is no other pivot segment \(\mathcal{S}'\) related to v, such that \(\mathcal{S} \subset \mathcal{S}'\).
Theorem 5
For a given reflex vertex v, for any other procedure \(\varsigma \) for partitioning \(R_1\) and \(R_2\) into two new regions each, apart from drawing pivot segments, there exists a pivot segment \(\mathcal{S}\) that partitions both \(R_1\) and \(R_2\) that yields a bigger value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) than the one related to the partition obtained by applying \(\varsigma \).
Proof
First of all, we know that vertex v stands between regions \(R_1\) and \(R_2\), so they are not SMV. In order to bring an increment to \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) in the simplest way, \(R_1\) and \(R_2\) should be split into two new regions each, such that some of the new emerging regions are now SMV. Let us call the new regions, \(R_1^{g}\), \(R_1^{ng}\), \(R_2^{g}\) and \(R_2^{ng}\), where g stands for the fact that region \(R_i^{g}\) has a gain in visibility because it is now SMV with a region at the other side of cgR(v), and ng stands for the case where there is no gain in SMV for a region \(R_i^{ng}\) (Fig. 23a, b).
What it is done next, is to characterize the procedure \(\varsigma \) for partitioning the regions \(R_1\) and \(R_2\). To further partition \(R_1\) and \(R_2\) into two new regions each, also recalling that the resulting regions must be convex, both \(R_1\) and \(R_2\) are split with a line segment each. Therefore, the procedure \(\varsigma \), in order to be valid, must take the form of adding a couple of line segments that respectively split \(R_1\) and \(R_2\). Also, for \(\varsigma \) to be valid, regions \(R_1^{g}\) and \(R_2^{g}\) should emerge because if there is no gain in SMV, then there is no sense on applying \(\varsigma \).
Now let us assume that \(\varsigma \) is then a valid partitioning procedure, and that it adds two line segments \(s_1\) and \(s_2\), one for each respective region \(R_1\) and \(R_2\), but such that the endpoints of both \(s_1\) and \(s_2\) are not collinear (see Fig. 23b). If this is the case, there is always a procedure \(\varsigma '\) that adds two line segments \(s'_1\) and \(s'_2\), being all its four endpoints collinear, such that gives a greater value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\). To obtain such a procedure \(\varsigma '\) from \(\varsigma \), we only need to extend either \(s_1\) or \(s_2\) towards \(\partial W\), subsequently keep the segment \(s_j\) whose extension permits an increment on size for \(R_i^{g}\), and then make \(s'_j= s_j\) and \(s'_i\) equal to the intersection of the extension of \(s_j\) with \(R_i\) (see Fig. 23c). Applying this transformation is equivalently to growing region \(R_i^{g}\) towards \(R_i^{ng}\), such that \(R_i^{g}\) is still SMV with \(R_j^{g}\).
Let us consider a region \(R_k\) within a given partition, and call \(R_{nb}\) to a neighbor region of \(R_k\), both sharing a boundary bigger than a single point. Then, define the next sets: \(\mathcal{I}=SMV(R_k) \cap SMV(R_{nb}) \), \(\mathcal{E}_{k}=SMV(R_k) \setminus \mathcal{I}\) and \(\mathcal{E}_{nb}=SMV(R_{nb}) \setminus \mathcal{I}\). The set \(\mathcal{I}\) contains the regions SMV with both \(R_k\) and \(R_{nb}\), the set \(\mathcal{E}_{k}\) contains the regions exclusively SMV with region \(R_k\), and the set \(\mathcal{E}_{nb}\) contains the regions exclusively SMV with region \(R_{nb}\).
Under such definitions and returning to the resulting partition from applying \(\varsigma \), see Fig. 23b, make \(R_k = R_1^{g}\) and \(R_{nb} = R_1^{ng}\), then we have that \(\mathcal{I} = \{ cgP(v), R_1^{g}, R_1^{ng} \}\), \(\mathcal{E}_{k} = \{ R_2^{g} \}\) and \(\mathcal{E}_{nb} = \emptyset \), therefore growing \(R_k\) towards \(R_{nb}\) keeps \(\mathcal{E}_{nb} = \emptyset \), the terms \(\mathcal{V}_\mathrm{sm} (R_i)\) for any \(R_i \in \mathcal{I}\) remains equal, but terms \(\mathcal{V}_\mathrm{sm} (R_i)\) for any \(R_i \in \mathcal{E}_{k}\) have an increment if \(R_k\) grows towards \(R_{nb}\) up to \(s'_1\), as \(\mu (R_k)\) increases, producing an increment to \(\sum \mathcal{V}_\mathrm{sm} (R_i)\). We conclude that procedure \(\varsigma '\) yields a bigger value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) than the one obtained from \(\varsigma \), then, our current best way to partition \(R_1\) and \(R_2\) is to add a couple of line segments \(s_1\) and \(s_2\) whose endpoints are collinear.
Now let us consider again procedure \(\varsigma '\), which we assume to be valid and consists on adding a couple of segments \(s'_1\) and \(s'_2\), whose endpoints are collinear, but now add the restriction that the straight line that contains both \(s'_1\) and \(s'_2\) does not contain v. If this is the case, we can always generate a pivot segment \(\mathcal{S}\) from \(\varsigma '\), which yields a greater value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) than the one yielded from \(\varsigma '\), all by just following the next steps: choose either \(s'_1\) or \(s'_2\), and name it as \(s'_i\), then trace a line segment from the endpoint of \(s'_i\) in contact with \(\partial W\), towards v location, extending it as long as possible (see Fig. 23d). Let us call such procedure \(\varsigma ^\star \). \(\mathcal{S}\) now defines new potential boundaries for \(R_1^{g}\) and \(R_2^{g}\). This procedure would be equivalent to both growing \(R_1^{g}\) towards \(R_1^{ng}\), and \(R_2^{g}\) towards \(R_2^{ng}\), growing both regions as much as possible still maintaining \(R_1^{g}\) and \(R_2^{g}\) mutually visible (see Fig. 23d). Following equivalent arguments to the ones used to compare \(\varsigma \) against \(\varsigma '\), it is shown that the partition yielded by \(\varsigma ^\star \) gives a greater value of \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) than the one obtained through \(\varsigma '\). Since our best current method to partition \(R_1\) and \(R_2\) was to add a couple of segments \(s_1\) and \(s_2\) whose endpoints are collinear, and since we have proved that within that category the best option is to trace a pivot segment \(\mathcal{S}\), then the result follows. \(\square \)
It is interesting to notice that as we increase the number of pivot segments that partition the environment touching a reflex vertex, the number of regions that are SMV also increases, and \(\sum \mathcal{V}_\mathrm{sm} (R_i)\) also increases, see Fig. 24. In the same sense, Theorem 5 is of importance because it tells us that no matter how many lines we want to add to refine the current environment’s partition in order to increment \(\sum \mathcal{V}_\mathrm{sm} (R_i)\), the lines that we should add should be pivot segments. Indeed, if the number of partitioning pivot segments tends to infinity, SMV tends to classical visibility, therefore, a solution based on SMV is a solution for classical visibility for a given resolution. It is possible to think about this as if we had a line pivoting over the reflex vertex, starting being parallel to one of the reflex rays, and ending up being parallel to the other reflex ray. However, the behavior of the algorithms to compute the safeareas, and the approximation of the solution for a given partition to classical visibility, do depend on the used partition, and a deeper analysis is left for future work.
Remark 8
Alternatively, Theorem 5 states that no matter how many lines we want to add to refine a current environment’s partition in order to increase \(\sum \mathcal{V}_\mathrm{sm} (R_i)\), the lines that we should add must be pivot segments. Furthermore, if the number of partitioning pivot segments tends to infinity, SMV tends to classical visibility, therefore, a solution based on SMV is a solution for classical visibility for a given resolution.
1.3 Second resolution partition (reflex rays and extended bitangent segments)
Actually, what we propose in our second step of our partitioning algorithm is to add pivot segments between reflex rays in order to bring a further refinement to the partition yielded from the first step. The pivot segments that we add are the extended bitangent segments, which happen to be pivot segments that a pair of reflex vertices have in common. Adding them results into a further refinement that increases \(\sum \mathcal{V}_\mathrm{sm} (R_i)\), which seeks to avoid generating a big number of regions that will lately translate into more computational work for the surveillance algorithms of the previous sections.
The complete two steps partitioning procedure is based on the notion of visibility complex (Pocchiola and Vegter 1996). However, to construct our partition we make use of some specific maximal free segments (reflex rays and extended bitangent segments) in order to yield equivalence classes (the regions \(\{R_i\}\)), where the positions within a class (\(R_i\)) share the same approximation to the visibility polygon [the approximation is \(SMV(R_i)\)]. An example of the resulting partition after applying the second step of the partitioning algorithm is shown in Fig. 25.
General notation  
\(\{R_i\}\) or \(R_{1},\ldots ,R_{n}\)  Convex environment partition 
\(R_i\) or R  Convex region 
W  Workspace 
\(\partial W\)  Workspace boundary 
MVG  Mutual visibility graph 
SMV(R)  Set of regions that are SMV with region R 
AG  Accessibility graph 
RVG  Reduced visibility graph 
\(n_i\)  Node in RVG 
E  Current evader’s region 
P  Current pursuer’s region 
\(V_{e}\)  Evader’s speed 
\(V_{p}\)  Pursuer’s speed 
\(q_i\)  Critical point 
\(q_1 \rightarrow q_2 \rightarrow \cdots \rightarrow q_{n1} \rightarrow q_n \)  Critical points sequence 
gP(q)  Guard polygon of point q 
\(t_{e}^k\)  Smallest time that takes to the evader to reach the critical point 
\(k+1\) from its k Critical point  
\(t_{p}^k\)  Smallest time that takes the pursuer to reach its corresponding 
\(k+1\) guard polygon departing from the k Guard polygon  
\(sA(n_i)\)  Safe area 
\(q_1 \rightarrow q_2 \rightarrow \cdots \rightarrow q_{n1} \rightarrow q_1 \)  Critical points cycle 
Algorithm and pursuit strategies specific notation  
\(n_r\)  Root node in RVG 
\(C_{ij}^k\)  The kth cluster of regions from \(n_i\) towards \(n_j\) 
\(o_{ij}^k\)  The transition point between clusters \(C_{ij}^k\) and \(C_{ij}^{k+1}\) 
\(l_{ij}^k\)  The kth subedge over line segment that joins nodes \(n_i\) and \(n_j\) 
\(SMV(cR_{ij}^k)\)  Set of regions SMV with cluster \(cR_{ij}^k\) 
\(sA(q_1)^{k}\)  Safe area calculated in the kth iteration of the cycles algorithm 
S  Set of local solution 
\(\mathbf {V}\)  Set of reflex vertices used to calculate the S set 
\(t_e(e,v)\)  Smallest time that takes to the evader to travel from its current 
position e to point v  
\(t_p(q,sA(v))\)  Smallest time that takes to the pursuer to reach sA(v) from point q, 
respecting surveillance restrictions between sA(v) and q  
\(e_{init}\)  Initial evader’s position 
Decidability specific notation  
\(\mathbf R _{i,i+1}\)  Relation that models a mapping between \(gP(q_i)\) and \(gP(q_{i+1})\) 
\(Im^{1}(\mathbf R _{i,i+1})\)  Preimage of \(R_{i,i+1}\) 
\(\mathbf R _{i+1,i+2} \circ \mathbf R _{i,i+1}\)  Composition of relations \(\mathbf R _{i,i+1}\) and \(\mathbf R _{i+1,i+2}\) 
\(\mathbf R _{1,n}\)  Composition of relations \(\mathbf R _{1,2}\), \(\mathbf R _{2,3}\), ..., \(\mathbf R _{n1,n}\) 
\(\mathbf R _{1,n}^{N}\)  Relation of \(N1\) compositions of relation \(\mathbf R _{1,n}\) 
\(\mathbf R _{1,n}^{\infty }\)  Relation of an infinite number of compositions of relation \(\mathbf R _{1,n}\) 
Complexity specific notation  
(V, A)  \(RVG=(V,A)\); V is set of vertices; A is set of edges 
\(V_{ratio}\)  \({V_p}/{V_e}\) 
\(\Lambda \)  Size of the paths that the evader travels in terms of the number of 
critical points that it visits  
\(\Pi \)  Set of particular properties that define the evader’s paths 
Partition specific notation  
\(\mathcal{B}\)  Bitangent segment 
v or u  Reflex vertices 
cgP(v)  The cornerguard polygon related to reflex vertex v 
cgR(v)  A cornerguard region related to reflex vertex v 
\(\mu (R_i)\)  Area of \(R_i\) 
\(\mathcal{V}_\mathrm{sm} (R_i)\)  Total area of regions SMV with \(R_i\) 
\(\mathcal{S}\)  Pivot segment 
\(\varsigma \)  A procedure to refine an environment’s partition 
Rights and permissions
About this article
Cite this article
Becerra, I., MurrietaCid, R., Monroy, R. et al. Maintaining strong mutual visibility of an evader moving over the reduced visibility graph. Auton Robot 40, 395–423 (2016). https://doi.org/10.1007/s1051401594775
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s1051401594775