|
What is the problem? |
|
In the visibility based pursuit-evasion game, one or more pursuers try to locate (see) an evader. The evader's initial position and strategy is unknown. Further, the evader is much more powerful than the pursuers: It knows the pursuers' locations at all times and can be much more faster than them. Guibas, Latombe, LaValle, Lin, and Motwani [2,3] studied this game and presented an algorithmic characterization of polygons where a single pursuer can locate the evader using a deterministic strategy. A demonstration of this result can be found here. Recently, we showed that, in fact, a single pursuer can locate the evader in any simply-connected polygon with probability arbitrarily close to one [1]. This requires a randomized strategy. |
|
The randomized strategy |
|
Here is an applet [4] that demonstrates the randomized strategy. The user-interface and the triangulation code is based on the Art Gallery Applet of Thierry Dagnino. You may also want to check out his nice Art Gallery Page to learn about polygon triangulation. The triangulation of a polygon is a partitioning of the polygon into disjoint triangles such that the vertices of the triangles are chosen from the vertices of the polygon. Here is an example: |
|
| The dual of a triangulation is a graph which has a vertex for each triangle. There is an edge between two vertices if the corresponding triangles share a side. The dual of a triangulation of any simply-connected polygon is always a tree. Here is the dual of the above triangulation. |
|
| The randomized strategy for finding the evader
is as follows: It is divided into rounds. At the beginning of each
round the pursuer is located at a leaf triangle, say t. We root the
triangulation tree at t. The pursuer randomly picks one of the
children of t and goes there. Each child is chosen with probability
proportional to the number of leaves of the subtree rooted at this
child. Afterwards, the pursuer recursively repeats this guessing
strategy until he arrives at a leaf. At this time, the round ends.
The pursuer repeats these rounds until he locates the evader. Please see the paper for a formal description and analysis of this strategy. You are now ready to play the game! |
|
How to use the applet |
|
First you need to draw a polygon. Here are Thierry Dagnino's instructions: |
|
Enter your points , maximum 100. You will not be allowed to enter a point that will cause intersection in the polygon. (Remember that we are working with simple polygons.) |
|
Close the polygon by clicking on the first point you entered. |
|
The triangulation will appear and the vertices will be colored. A white circle surrounds vertices representing guards. |
|
You can toggle the display by clicking on the buttons below the applet. |
|
The undo button will remove the last point you entered. |
|
The reset button will delete the polygon allowing you to enter a new one. |
| The coloring and guards are not relevant to the game but I left them untouched -- in case you want to play with them. Once you close the polygon, the game starts.. |
|
We will play an abstract version of the game. We will not worry about the actual positions of the players. What matters is which triangles the players are located in. The players will move from one triangle to another until the pursuer and the evader are located in the same triangle. For the visibility-based pursuit evasion game, if the pursuer and the evader are in the same triangle, clearly the pursuer can see the evader and win the game. The pursuer's triangle is the blue one. Initially, only the pursuer's location (triangle) is shown. The gray triangles adjacent to the blue triangle are possible next moves of the pursuer. Next, you can choose your (the evader's) initial triangle by clicking on it. You are the green player. Your goal is to avoid capture, i.e. being located in the same triangle..Good Luck!!
Oh, by the way, the pursuer does not see you until he is located in
your triangle..But you'll have to
trust me for that!
|
| Thanks for stopping by! I hope you enjoyed it. Please feel free to contact me if you have any comments. If you'd like to play with the source code, please see [4] below. | |
References
|