cs0002014/paper.tex
1: %
2: % PAPER ON Y-GRAPH
3: %
4: % Last modified by RG on Feb 24 2000
5: %
6: \documentclass[]{article}
7: \usepackage{psfrag,graphicx}
8: \oddsidemargin 0.1in
9: \evensidemargin 0.1in
10: \topmargin 0in
11: \headheight 0.2in
12: \headsep 0.2in
13: \textwidth 6.5in
14: \textheight 8.75in
15: \def\bfE{\mbox{\boldmath$E$}}
16: \def\bfG{\mbox{\boldmath$G$}}
17: 
18: \bibliographystyle{abbrv}
19: 
20: 
21: \begin{document}
22: 
23: \title{Safe Cooperative Robot Dynamics on Graphs\thanks{Supported 
24: 	in part by National Science Foundation Grant IRI-9510673 [DK]
25: 	and by National Science Foundation Grant DMS-9971629 [RG].
26: 	A sketch of these ideas appeared as a conference proceedings
27: 	\cite{GK:japan}.}}
28: 
29: \author{Robert W. Ghrist\thanks{
30:  School of Mathematics,
31:  Georgia Institute of Technology,
32:  Atlanta, GA 30017, USA. {\tt ghrist@math.gatech.edu}}
33: \and
34:  Daniel E. Koditschek\thanks{
35:  Department of Electrical Engineering and Computer Science,
36:  The University of Michigan,
37:  Ann Arbor, MI 48109-2110, USA. {\tt kod@eecs.umich.edu}}
38: }
39: 
40: \maketitle
41: 
42: \input setups.tex
43: 
44: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45: 
46: \begin{abstract}
47: 
48: This paper initiates the use of vector fields to design, optimize, 
49: and implement reactive schedules for safe cooperative robot 
50: patterns on planar graphs.  
51: We consider Automated Guided Vehicles (AGV's) operating upon 
52: a predefined network of pathways. In contrast to the case of
53: locally Euclidean configuration spaces, regularization of 
54: collisions is no longer a local procedure, and issues concerning
55: the global topology of configuration spaces must be addressed.
56: The focus of the present inquiry is the achievement of safe, efficient, 
57: cooperative patterns in the simplest nontrivial example
58: (a pair of robots on a Y-network) by means of a state-event 
59: heirarchical controller.
60: 
61: 
62: \end{abstract}
63: 
64: %\begin{keywords} 
65: %configuration spaces, AGV, graph network
66: %\end{keywords}
67: 
68: %\begin{AMS}
69: %primary: 93C85, 68T40; secondary: 93C25, 37N35
70: %\end{AMS}
71: 
72: \pagestyle{myheadings}
73: \thispagestyle{plain}
74: \markboth{ROBERT W. GHRIST AND DANIEL E. KODITSCHEK}{SAFE ROBOT DYNAMICS}
75: 
76: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
77: 
78: %\input{sec_1.tex}
79: \section{Introduction}
80: \label{sec_1}
81: 
82: Recent literature suggests the growing awareness of a need for
83: ``reactive'' scheduling wherein one desires not merely a single
84: deployment of resources but a plan for successive re-deployments
85: against a changing environment \cite{smith.reactive}.  But
86: scheduling problems have been traditionally solved by appeal to a
87: discrete representation of the domain at hand.  Thus the need for
88: ``tracking'' changing goals introduces a conceptual dilemma: there is
89: no obvious topology by which proximity to the target of a given
90: deployment can be measured.  In contrast to problems entailing the
91: management of information alone, problems in many robotics and
92: automation settings involve the management of { \em work } --- the
93: exchange of energy in the presence of geometric constraints.  In these
94: settings, it may be desirable to postpone the imposition of a
95: discrete representation long enough to gain the benefit of the natural
96: topology that accompanies the original domain.
97: 
98: This paper explores the use of vector fields for 
99: reactive scheduling of safe cooperative robot patterns
100: on graphs.  The word ``safe'' means that obstacles --- designated
101: illegal portions of the configuration space --- are avoided.  The word
102: ``cooperative'' connotes situations wherein physically distributed
103: agents are collectively responsible for executing the schedule.  The
104: word ``pattern'' refers to tasks that cannot be encoded simply in terms
105: of a point goal in the configuration space.  The word ``reactive''
106: will be interpreted as requiring that the desired pattern
107: reject perturbations:  conditions close but slightly removed from
108: those desired remain close and, indeed, converge toward the exactly
109: desired pattern.
110: 
111: 
112: 
113: \subsection{Setting: AGV's on a Guidepath Network of Wires}
114: 
115: An automated guided vehicle (AGV) is an unmanned powered cart
116: ``capable of following an external guidance signal to deliver a unit
117: load from destination to destination'' where, in most common
118: applications, the guidepath signal is buried in the floor
119: \cite{agvhandbook}.  Thus, the AGV's workspace is a network of wires
120: --- a graph.
121: The motivation to choose AGV based materials handling systems over
122: more conventional fixed conveyors rests not simply in their ease of
123: reconfigurability but in the potential they offer for graceful
124: response to perturbations in normal plant operation.  In real
125: production facilities, the flow of work in process fluctuates
126: constantly in the face of unanticipated workstation downtime,
127: variations in process rate, and, indeed, variations in materials
128: transport and delivery rates \cite{gershwin}.
129: Of course, realizing their potential robustness against these
130: fluctuations in work flow remains an only
131: partially fulfilled goal of contemporary AGV systems.
132: 
133: Choreographing the interacting routes of multiple AGVs in a
134: non-conflicting manner presents a novel, complicated, and necessarily
135: on-line planning problem.  Nominal routes might be designed offline
136: but they can never truly be traversed with the nominal timing, for all
137: the reasons described above.  Even under normal operating conditions,
138: no single nominal schedule can suffice to coordinate the workflow as
139: the production volume or product mix changes over time: new vehicles
140: need to be added or deleted and the routing scheme adapted.
141: In any case, abnormal conditions --- unscheduled process down times; blocked
142: work stations; failed vehicles --- continually arise, demanding  
143: altered routes.
144: 
145: The traffic control schemes deployed in
146: contemporary AGV systems are designed  to  simplify the real-time
147: route planning and  adaptation process by  ``blocking zone control''
148: strategies.
149: The workspace is partitioned into a small number of cells and,
150: regardless of the details of their source and destination tasks, no two
151: AGVs are
152: ever allowed into the same cell at the same time \cite{agvhandbook}.
153: Clearly, this simplification results in significant loss of a
154: network's traffic capacity.
155: 
156: In this paper, we will consider a centralized approach that employs
157: dynamical systems theory to focus on real-time responsiveness and
158: efficiency as opposed to computational complexity or average
159: throughput.  No doubt, beyond a certain maximum number of vehicles,
160:  the necessity to compute in the high dimensional configuration
161: space will limit the applicability of any algorithms that arise.
162: However, this point of view seems not to have been carefully explored
163: in the literature.  Indeed, we will sketch some ideas about how an
164: approach that starts from the coupled version of the problem may lend
165:  sufficient insight to move back and forth between the individuals'
166: and the group's configuration spaces even in real time.  For the sake
167: of concreteness we will work in the so-called ``pickup and delivery''
168: (as opposed to the ``stop and go'' \cite{bozer.iie91}) paradigm of
169: assembly or fabrication, and we will not be concerned with
170: warehousing style  AGV applications.
171: 
172: \subsection{Contributions of the Paper}
173: 
174: The paper is organized as follows.  In \S\ref{sec_2}, we review
175: fundamental facts about the topology of graphs, with which we
176: define the class of {\em edge point
177: fields} ---  locally defined dynamics that realize 
178: single letter patterns. These  act collectively as a toolbox 
179: from which to build a hybrid controller for achieving arbitrary 
180: patterns with a single AGV. This represents a slight generalization of
181: the scheme the second author and colleagues have proposed in
182: \cite{kod&burridge.ijrr}. 
183: 
184: The problem of dynamics and control on non-trivial graphs is then
185: considered in \S\ref{sec_3}, beginning with a detailed discussion of
186: a natural intrinsic coordinate system in which to frame the
187: configuration space. We present a topological analysis of
188: the configuration space for a pair of AGV's on a Y-shaped graph ---
189: the simplest nontrivial situation. Here, a clarification of the 
190: configuration space presentation leads easily to a vector field 
191: construction that brings all initial conditions of two robots
192: on the graph to any desired pair of goal points while guaranteeing
193: safety (i.e., no collisions along the way). The desire
194: for a more decoupled controller --- the hope of an ``interleaving'' of
195: otherwise independent individual  patterns --- impels  a revised approach to
196: safe navigation leading to the construction of a vector field that enables
197: the AGV's to ``dance'' about one other at a vertex.
198: 
199: The dynamical features of this {\em circulating field} are suggestive
200: of a hybrid construction that would allow multiple independent
201: patterns to be safely interleaved. We proceed in \S\ref{sec_4} to 
202: construct a 12-symbol grammar of so-called ``monotone'' cycles: those
203: patterns which exclude multiple robots on a single edge of the graph. 
204: The goal of this excursion is to tune limit cycles visiting 
205: various docking stations in such a way as to be optimal with 
206: respect to certain notions of distance or performance.
207: 
208: We complete our treatment of this fundamental example by 
209: synthesizing the grammar results into a state-event controlled hybrid
210: system for achieving cooperative patterns.
211: Appendix A is included to place on a rigorous foundation 
212: the use of vector fields on graphs and configuration spaces
213: thereof. 
214: 
215: 
216: 
217: 
218: %\input{sec_2.tex}
219: \section{Notation and Background}
220: \label{sec_2}
221: 
222: \subsection{Graph Topology}
223: 
224: A {\em graph}, $\Graph$, consists of a finite collection of 
225: 0-dimensional vertices $\Vs \ldf \{ v_{i}\}_1^N$, 
226: and 1-dimensional edges $\Es \ldf \{ e_{j} \}_1^M$ assembled
227: as follows. Each edge is homeomorphic to the closed interval
228: $[0,1]$ attached to $\Vs$ along its boundary points $\{0\}$ 
229: and $\{1\}$.\footnote{
230: We will assume away in the sequel the possibility of ``homoclinic''
231: edges whose  boundary points are attached to the 
232: same vertex.}
233: We place upon $\Graph$ the quotient topology
234: given by the endpoint identifications:
235: Neighborhoods of a point in the interior of $e_j$ are homeomorphic
236: images of interval neighborhoods of the corresponding point in $[0,1]$, 
237: and neighborhoods of a vertex $v_i$ consist of the union 
238: of homeomorphic images of half-open neighborhoods of the 
239: endpoints for all incident edges.
240: 
241: The configuration spaces we consider in \S\ref{sec_3} and following 
242: are self-products of graphs. The topology of $\Graph\times\Graph$ 
243: is easily understood in terms of the topology of $\Graph$ as 
244: follows \cite{munkres}. Let $(x,y)\in\Graph\times\Graph$ denote
245: an ordered pair in the product. Then any small neighborhood of
246: $(x,y)$ within $\Graph\times\Graph$ is the union of neighborhoods 
247: of the form $\Ns(u)\times \Ns(v)$, where $\Ns(\cdot)$
248: denotes neighborhood within $\Graph$. In other words, the 
249: products of neighborhoods form a {\em basis} of neighborhoods
250: in the product space. 
251: 
252: Given a graph, $\Graph$, outfitted with a finite number $N$ of 
253: non-colliding AGV's constrained to move on $\Graph$, the
254: (labeled) configuration space of safe motions is defined as
255: \be
256: 	\Cs\ldf \left(\Graph\times\ldots\times\Graph\right) - 
257: 	\Ns(\Diag),
258: \ee
259: where $\Diag\ldf\{(x_i)\in\Graph\times\ldots\times\Graph :
260: x_j = x_k$ for some $j\neq k\}$ denotes the pairwise
261: diagonal and $\Ns(\cdot)$ denotes (small) neighborhood. 
262: 
263: For general graphs, the topological features of $\Cs$ can be extremely
264: complicated.
265: We do not treat the general aspects of this problem comprehensively in
266: this paper; rather, we restrict attention to the simplest nontrivial 
267: example which illustrates nicely the relevant features present in the 
268: more general situation. The topological characteristics 
269: of general configuration spaces
270: on graphs is treated in \cite{Ghr:birman,Ghr:homotopytype}. 
271: Mathematically, it is usually most interesting to pass to 
272: the quotient of $\Cs$ by the action of the permutation group
273: on $N$ elements, thus forgetting the identities of the AGV 
274: elements; however, as such spaces are almost completely divorced
275: from any applications involving coordinated transport, we work on the 
276: ``full'' configuration space $\Cs$.
277: 
278: In order to proceed, it is necessary to clarify what we mean by a
279: vector field on a simplicial complex that fails to be a manifold. This
280: is a nontrivial issue: for example, in the case of a graph, the
281: tangent space to a vertex with incidence number greater than two is
282: not well-defined.
283: We defer a more detailed discussion of these statements to 
284: Appendix A. The essential difference is that we construct
285: {\em semiflows}: flows which possess unique forward orbits.
286: 
287: % -----------------------------------------------------------
288:  \subsection{Edge Point Fields for Single AGV Control}
289: % -----------------------------------------------------------
290: 
291: In the context of describing and executing {\em patterns} or periodic
292: motions on a graph, one desires a set of building blocks for moving
293: from one goal to the next. We introduce the terminology and 
294: philosophy for constructing patterns by way of the simplest 
295: possible examples: a single AGV on a graph. This avoids the 
296: additional topological complications present in the context of 
297: cooperative motion. 
298: 
299: We thus introduce the class of {\em edge 
300: point fields} as a dynamical toolbox for a hybrid controller. 
301: Given a specified goal point $\goal\in e_{j}$ within an edge of
302: $\Graph$, an {\em edge point field} is a locally defined vector field 
303: $\EPF_\goal$ on $\Graph$ with the following properties:
304: \begin{description}
305: 
306:         \item[Locally Defined:] $\EPF_\goal$ is defined on a
307: 	neighborhood $\Ns(e_j)$ of the goal-edge $e_j$ within the graph 
308: 	topology. Furthermore, forward orbits under $\EPF_\goal$ 
309: 	are uniquely defined.
310: 
311:         \item[Point Attractor:]  every forward orbit of $\EPF_\goal$ 
312: 	asymptotically approaches the unique fixed point 
313: 	$\goal\in e_j$.\footnote{
314: 	When it is not clear from the context, we shall denote the
315: 	goal point achieved by an edge point flow as
316:         $\Goal(\EPF_\goal) = \{ \goal \}.$}
317: 
318:         \item[Navigation-Like:] $X_\goal$ admits a $C^0$ Lyapunov 
319: 	function, $\obj_\goal:\Graph\rightarrow\real$.
320: 
321: \end{description}
322: 
323: 
324: The following existence lemma (whose trivial proof we omit) holds.
325: \llem{EPF}
326: {
327: Given any edge $e_j\subset\Graph$ which is contractible within
328: $\Graph$, there exists an edge point field $\EPF_\goal$ for 
329: any desired goal $\goal\in e_j$.
330: }\label{lem_EdgePoint}
331: 
332: The only occasion for which an edge $e_j$ is not contractible in
333: $\Graph$ is in the ``homoclinic case'' when both endpoints of $e_j$
334: are attached to the same vertex, forming a loop. In such instances,
335: one may avoid the problem by subdividing the edge to include more
336: vertices, which is very natural in the setting of this paper, since
337: vertices correspond to workstations along a path.
338: 
339: % --------------------------------------------------
340: \subsection{Discrete Regulation of Patterns}
341: % --------------------------------------------------
342: 
343: We adopt the standard framework of symbolic dynamics
344: \cite{lind&marcus}.  By an excursion on a graph is meant a (possibly
345: infinite) sequence of edges from the graph, 
346: $E=e_{i_{1}}\ldots e_{i_{N}}\ldots \in \Es^{Z}$,
347: having the property that each pair of contiguous edges, $e_{i_{j}}$ 
348: and $e_{i_{j+1}}$ share a vertex in common.
349: The set of excursions forms a language, $\Ls$: the
350: so-called {\em subshift} on the alphabet defined by the named edges
351: (we assume each name is unique) \cite{lind&marcus}.  The {\em shift
352: operator}, $\sigma$, defines a discrete dynamical system on the set of
353: excursions, mapping the set of infinite sequences into itself by
354: decrementing the time index.  An {\em $M$-block extension} of the 
355: original language arises in the obvious way from grouping together each
356: successive block of $M$ contiguous letters from an original sequence,
357: and it is clear how $\sigma$ induces a shift operator, $\sigma^{M}$
358: on this derived set of sequences.
359: 
360: Given a legal block, $B=e_{i_{1}}\ldots e_{i_{M}}\in \Ls$, 
361: we will say that an excursion realizes that pattern if its $M$-block
362: extension eventually reaches the ``goal'' $BBBBB \ldots $ under the
363: iterates of $\sigma^{M}$. In other words, after some finite number of
364: applications of $\sigma$,  the excursion consists of repetitions
365: of the block $B$ (terminating possibly with the empty edge).
366: 
367: In a previous paper \cite{kod&burridge.ijrr}, the second author and
368: colleagues introduced a very simple but effective discrete event
369: controller for regulating patterns on graphs from all reachable
370: initial edges by pruning the graph back to a tree (imposing an
371: ordering).  Of course, this simple idea has a much longer history. In
372: robotics it was introduced in \cite{lmt} as ``pre-image
373: backchaining;'' pursued in \cite{mason.funnel} as a method for
374: building verifiable hardened automation via the metaphor of a
375: funneling; and in \cite{erdmann.sensors} as a means of prescribing
376: sensor specifications from goals and action sets.  In the discrete
377: event systems literature an optimal version of this procedure has been
378: introduced in \cite{heyman.is93} and a generalization recently has
379: been proposed in
380: \cite{stephane.opt}.
381: 
382: 
383:  Let $\Es^{0} 
384: \ldf B \subset \Es $ denote the edges of $\Graph$ that appear in the
385: block of letters specifying the desired  pattern. Denote by
386: \[
387: \Es^{n+1} \subset \Es -  \bigcup_{k\leq n}\Es^{k}
388: \]
389: those edges that share a vertex with an edge in $\Es^{n}$ but are not
390: in any of the previously defined subsets.  This yields a finite
391: partition of $\Es$ into ``levels,'' $\{ \Es^{p} \}_{p=0}^{P}$,
392: such that for each edge, $e^p_i \in \Es^{p}$, there can be found a
393: legal successor edge, $e^{p-1}_j \in \Es^{p-1}$, such that
394: $e^p_ie^{p-1}_j \in \Ls$ is a legal block in the language.  Note
395: that we have implicitly assumed $\Es^{0}$ is reachable from the
396: entire graph --- otherwise, there will be some ``leftover'' component
397: of $\Es$ forming the last cell in the partition starting within which
398: it is not possible to achieve the pattern. Note as well that we impose
399: some ordering of each cell $\Es^{p} = \{ e^p_i \}_{i=1}^{M_{p}}$: 
400: the edges of $\Es^{0}=B$ are ordered by their appearance in the block; 
401: the ordering of edges in higher level cells is arbitrary.
402: 
403: 
404: We may now define a ``graph controller'' law, $G \st \Es
405: \rightarrow \Es$ as follows. From the nature of the partition 
406: $\{\Es^p\}$ above, it is clear that the least legal successor function,
407: \beq{successor}
408: {
409: \choicetwo{L(e_i^p)}
410: {i+1 \: {\mbox{mod}} \: M}{\, p=0}
411: {\min \{ j \leq M_p \,\st\, e^p_ie^{p-1}_j \in \Ls \}}{\, p>0} ,
412: }
413: is well-defined. From this, we construct the graph controller:
414: \beq{graph_control}
415: {
416: G(e^p_i) \ldf e^{p-1}_{L(p,i)} .
417: }
418: It follows almost directly from the definition of this function that
419: its successive application to any edge leads eventually to a
420: repetition of the desired pattern:
421: \lprop{successor}
422: {
423: The iterates of $G$ on $\Es$ achieve the pattern $B$.
424: }
425: 
426: 
427: 
428: \subsection{Hybrid Edge Point Fields}
429: 
430: 
431: A semiflow, $(X)^t$, on the graph induces excursions in $\Ls$  
432: parametrized by an initial condition as follows.  The
433: first letter corresponds to the edge in which the initial condition is
434: located (initial conditions at vertices are assigned to the
435: incident edge along which the semiflow points).  
436: The next letter is added to the sequence by motion
437: through a vertex from one edge to the next.
438: 
439: We will say of two edge point fields, $\EPF_{1},\EPF_{2}$ on a graph,
440: $\Graph$, that $\EPF_{1}$ { \em prepares } $\EPF_{2}$, denoted 
441: $\EPF_{1} \succ \EPF_{2},$ if the goal of the first is in the 
442: domain of attraction of the second,
443: $ \Goal(\EPF_{1}) \subset \Ns(\EPF_{2}).  $
444: Given any finite collection of edge point fields on
445: $\Graph$, we will choose some $0 < \alpha < 1$ and assume that their 
446: associated Lyapunov functions have been scaled in such a
447: fashion that $\EPF_{1} \succ  \EPF_{2},$ implies
448: $
449: \inv{\prl{\obj_{1}}}[0,\alpha] \subset \Ns(\EPF_{2}).
450: $
451: In other words, an $\alpha$ crossing of the trajectory
452: $\obj_{1} \circ \prl{\EPF_{1}}^{t}$
453: signals arrival in  $\Ns(\EPF_{2})$.
454: 
455: Suppose now that for every edge in some pattern block, $e^0_i \in
456: \Es^{0}$, there has been designated a goal point, $\goal^0_i$, 
457: along with an edge point field $\EPF^0_i$ taking that goal, 
458: $\Goal(\EPF^0_i)=\goal^0_i$.
459: Assume as well that the edge point field  associated with  each previous
460: edge in the pattern prepares the flow associated with the next edge,
461: in other words, using the successor function \req{successor} we have,
462: \[
463: \Goal \prl{ \EPF^0_{j} } \subset \Ns\prl{\EPF^0_{L(j)}}.
464: \]
465: Now construct edge point fields on all the edges of $\Graph$ such that
466: the tree representation of their $\succ$ relations is exactly the tree
467: pruned from the original graph above ---  namely we have
468: \[
469: \Goal \prl{ \EPF^p_{j} } \subset \Ns \prl{\EPF^{p-1}_{L(j)}}.
470: \]
471: % ****************************************************
472: 
473: 
474: We are finally in a position to construct a hybrid semi-flow on
475: $\Graph$. This feedback controller will run the piece-wise
476: smooth vector field, $\dot x = \EPF$, as follows
477: \beq{hybrid}
478: {
479: \choicetwo{\EPF}
480: {\EPF^p_j}{ x \in e^p_j {\mbox{ and }} \obj^p_j > \alpha }
481: {\EPF^{p-1}_{L(j)} }{x \in e^{p-1}_{L(j)} {\mbox{ or }} \obj^p_j \leq 
482: 	\alpha } .
483: }
484: It is clear from the construction that progress from edge to edge
485: of the state of this flow echoes the graph transition rule $G$,
486: constructed above.
487: 
488: \lprop{hybrid}
489: {The edge transitions induced by the hybrid controller \req{hybrid}
490: are precisely the iterates of the graph map, $G$,
491: \req{graph_control} in the language, $\Ls$.
492: }
493: 
494: 
495: 
496: 
497: 
498: %\input{sec_3.tex}
499: \section{The Y-Graph}
500: \label{sec_3}
501: % *********************************************************
502: 
503: We now turn our attention to the safe control of multiple AGV's 
504: on a graph work-space via vector fields. 
505: For the remainder of this work, we consider the simplest example
506: of a non-trivial configuration space: that associated to 
507: the {\em Y-graph}, $\Ygraph$, having four vertices $\{v_i\}_0^3$
508: and three edges $\{e_i\}_1^3$, as illustrated in Figure~\ref{fig_Y}. 
509: Although this is a simple scenario compared to what one 
510: finds in a typical setting, there are several 
511: reasons why this example is in many respects canonical. 
512: \begin{enumerate}
513: \item	{\bf Simplicity:} 
514: 	Any graph may be constructed by gluing 
515: 	$K$-prong graphs together for various $K$. The 
516: 	$K=3$ model we consider is the simplest nontrivial
517: 	case and is instructive for understanding the richness
518: 	and challenges of local cooperative dynamics on graphs.
519: \item 	{\bf Genericity with respect to graphs:}
520: 	Graphs which consist of copies of $\Ygraph$ glued
521: 	together, the {\em trivalent graphs}, are generic in the
522: 	sense that any nontrivial graph may be perturbed 
523: 	in a neighborhood of the vertex set so as to be trivalent.
524: 	For example, the 4-valent graph resembling the letter
525: 	`X' may be perturbed slightly to resemble the letter
526: 	`H' --- a trivalent graph. An induction argument shows
527: 	that this is true for all graphs. Hence, the dynamics 
528: 	on an arbitrary graph are approximated by patching
529: 	together dynamics on copies of $\Ygraph$.
530: \item	{\bf Genericity with respect to local dynamics:} 
531: 	Finally, pairwise local AGV interactions on an arbitrary
532: 	graph restrict precisely to the dynamics of two agents on
533: 	$\Ygraph$ as follows. Given a vertex $v$ of a graph $\Gamma$,
534: 	assume that two AGV's, $x$ and $y$, are on different edges
535: 	$e_1$ and $e_2$ incident to $v$ and moving towards 
536: 	$v$ with the goal of switching positions. A collision is 
537: 	imminent unless one AGV ``moves out of the way'' onto
538: 	some other edge $e_3$ incident to $v$. The local interactions
539: 	thus restrict to dynamics of a pair of AGV's on the subgraph 
540: 	defined by $\{v;e_1,e_2,e_3\}$. Hence, the case we treat in
541: 	this paper is the generic scenario for the local resolution 
542: 	of collision singularities in cooperative dynamics on graphs.
543: \end{enumerate}
544: 
545: % *********************************************************
546: \subsection{Intrinsic Coordinates}
547: % *********************************************************
548: 
549: The configuration space of $N$ points on $\Ygraph$ is a 
550: subset of the $N$-fold cartesian product 
551: $\Ygraph\times\Ygraph\times\cdots\times\Ygraph$. Since each 
552: graph which is physically relevant to the setting of this paper
553: is embedded in a factory floor or ceiling and thus planar, 
554: the configuration space $\Cs^N(\Ygraph)$ embeds 
555: naturally in $R^{2N}$. We wish to modify this embedding 
556: to facilitate both analysis on and visualization of the configuration
557: space. We will present alternate embeddings in both higher and 
558: lower dimensional Euclidean spaces for these purposes.
559: 
560: We begin with representing the configuration space within a 
561: higher-dimensional Euclidean space via a coordinate system 
562: which is {\em intrinsic}: it is independent 
563: of how the graph is embedded in space. We illustrate this 
564: coordinate system with the Y-graph $\Ygraph$, noting that 
565: a few simple modifications yields a coordinate scheme for 
566: more general graphs. 
567: 
568: Let $\{e_i\}_1^3$ denote the three edges in $\Ygraph$, parametrized
569: so that $e_i$ is identified with $[0,1]$ with each $\{0\}$ at the 
570: center $v_0$ of $\Ygraph$. Any point in 
571: $\Ygraph$ is thus given by a vector $x$ in the
572: $\{e_i\}$ basis whose magnitude $\Value{x}\in[0,1]$ determines the 
573: position of the point in the $e_i$ direction. Denote by 
574: $\Index{x}$ the value of $i$ so that $x=\Value{x}e_{\Index{x}}$.
575: This parametrization embeds $\Ygraph$
576: as the positive unit axis frame in $R^3$.
577: Likewise, a point in $\Cs$ is given as a pair of distinct vectors
578: $(x,y)$, i.e., as the positive unit axis frame in $R^3$ cross itself
579: sitting inside of $R^3\times R^3\cong R^6$. We have thus embedded
580: the configuration space of two distinct points on $\Ygraph$ 
581: in the positive orthant of $R^6$. It is clear that one can embed the
582: more general configuration space of $N$ points on $\Ygraph$ 
583: in $R^{3N}$ in this manner.
584: 
585: This coordinate system is particularly well-suited to describing 
586: vector fields on $\Cs$ and in implementing numerical simulations
587: of dynamics, as the coordinates explicitly keep track of the 
588: physical position of each point on the graph. 
589: 
590: % *********************************************************
591: \subsection{A Topological Analysis}
592: % *********************************************************
593: 
594: More useful for visualization purposes, however, is the following 
595: construction which embeds $\Cs$ within $R^3$.
596: 
597: % =========================================
598: \begin{figure}[htb]
599: \begin{center}
600: \psfragscanon
601: \psfrag{0}[][]{$v_0$}
602: \psfrag{1}[][]{$v_1$}
603: \psfrag{2}[][]{$v_2$}
604: \psfrag{3}[][]{$v_3$}
605: \psfrag{a}[][]{$e_1$}
606: \psfrag{b}[][]{$e_2$}
607: \psfrag{c}[][]{$e_3$}
608: 	{%\centerline{
609: 	\includegraphics[width=1.6in]{{y.eps}}
610: \hspace{0.2in}
611: 	\includegraphics[width=3.0in]{{pin5.eps}}}
612: \end{center}
613: \vspace{-0.1in}
614: 
615: \caption{[left] The $Y$-graph $\Upsilon$; [right] the 
616: configuration space $\Cs$ embedded in $R^3$.} 
617: \label{fig_pin5}\label{fig_Y}
618: \end{figure}
619: % =========================================
620: 
621: \begin{thm}\label{thm_Space}
622: The configuration space $\Cs$ associated to a pair of AGV's 
623: restricted to the $Y$-graph $\Ygraph$ is homeomorphic to 
624: a punctured disc with six 2-simplices attached as in 
625: Figure~\ref{fig_pin5}.
626: \end{thm}
627: 
628: \begpf
629: Recall that $\Cs$ consists of pairs of distinct vectors $(x,y)$ in intrinsic 
630: coordinates. Restrict attention to the subspace $\Finless\subset\Cs$ 
631: defined by 
632: \be
633: 	\Finless := \{(x,y)\in\Cs : \Index{x}\neq\Index{y}\} ,
634: \ee 
635: where an undefined index is considered to be different than
636: one which is defined. Thus, $\Finless$ consists of those configurations 
637: for which both AGV's do not occupy the same edge interior.
638: 
639: The set $\Finless$ has a natural cellular decomposition 
640: as follows. There are $2$ AGV's and $3$ edges in $\Ygraph$; hence,
641: there are $3\cdot 2 = 6$ cells $\Finless_{i,j}\subset\Finless$ where
642: $i:=\Index{x}\neq\Index{y}=:j$. Since (the closure of) 
643: each edge in $\Ygraph$ is homeomorphic to $[0,1]$ (determined by 
644: $\Value{\cdot}$), the cell $\Finless_{i,j}$ is homeomorphic to 
645: $([0,1]\times[0,1])-\{(0,0)\}$, where, of course, the origin $(0,0)$ 
646: is removed as it belongs to the diagonal $\Diag$. 
647: A path in $\Finless$ can move from cell to cell only along the subsets 
648: where the index of one AGV changes: e.g., $\Value{x}=0$ or 
649: $\Value{y}=0$. Thus, the edges $\{0\}\times(0,1]$ and 
650: $(0,1]\times\{0\}$ of the punctured square $\Finless_{i,j}$ 
651: are attached respectively to $\Finless_{k,j}$ and $\Finless_{i,k}$,
652: where $k$ is the unique index not equal to $i$ or $j$.
653: 
654: Furthermore, each 2-cell $\Finless_{i,j}$ has a product structure
655: as follows: decompose $\Finless_{i,j}$ along lines of constant 
656: $\theta := \tan^{-1}\left(\frac{\Value{y}}{\Value{x}}\right)$.
657: It is clear that $\theta$ is the angle in the unit first quadrant in 
658: which $\Finless_{i,j}$ sits. Hence, each $\Finless_{i,j}$ is decomposed
659: into a product of a closed interval $S_{i,j}:=\theta\in[0,\pi/2]$ 
660: (an `angular' coordinate) with the 
661: half-open interval $(0,1]$ (a `radial' coordinate). As this product
662: decomposition is respected along the gluing edges, we have a decomposition
663: of all of $\Finless$ into the product of $(0,1]\times S$, where $S$
664: is a cellular complex given by gluing the six segments $S_{i,j}$ 
665: end-to-end cyclically along their endpoints. 
666: The set $S$ is a 1-manifold without boundary since each $S_{i,j}$ 
667: is a closed interval, each of whose endpoints is glued to precisely one 
668: other $S_{i,j}$. Hence, by the classification of 1-manifolds, 
669: $S$ is homeomorphic to a circle. We have thus decomposed 
670: $\Finless$ as the cross product of a circle with $(0,1]$ --- 
671: a punctured unit disc. 
672: 
673: The complement of $\Finless$ in $\Cs$ consists of those regions 
674: where $\Index{x}=\Index{y}$. For each $i=1..3$, the subset of 
675: $\Cs$ where $\Index{x}=\Index{y}=i$ is homeomorphic to 
676: $((0,1]\times(0,1])-\{\Value{x}=\Value{y}\}$: this consists of 
677: two disjoint triangular ``fins.'' A total of six such fins are thus 
678: attached to $\Finless$ along the six edges where $\Value{x}$ or
679: $\Value{y}=0$. In the coordinates of the product decomposition 
680: for $\Finless$, these fins emanate along the radial lines where 
681: $\theta$ equals zero or $\pi/2$, yielding the topological space 
682: illustrated in Figure~\ref{fig_pin5}.
683: \endpf
684: 
685: The precise drawing of Figure~\ref{fig_pin5} represents this 
686: punctured disc $\Finless$ as a hexagon-shaped complex with a
687: punctured center: this follows from the cellular structure of 
688: $\Finless$ as being built from six squares sewn together. 
689: 
690: \lcor{sphereworld}
691: {
692: Given any pair of goals $\goal\ldf(\goal_1,\goal_2)$ where 
693: $\goal_1$ and $\goal_2$ live on different branches of $\Ygraph$, 
694: there exists a navigation function (of class piecewise real-analytic) 
695: generating a semiflow which sends all but a measure-zero set of 
696: initial conditions to $\goal$ under the gradient semiflow. 
697: }
698: 
699: \begpf
700: The subset $\Finless\subset\Cs$ is homeomorphic to a punctured disc
701: $S\times(0,1]$, and may be easily compactified to an annulus
702: $S\times[0,1]$ by removing an open neighborhood of the diagonal. Then, 
703: the conditions for the theorems of Koditschek and Rimon
704: \cite{kod&rimon.aam} are met, since an annulus is a {\em sphereworld}.
705: Hence, not only does a navigation function $\Phi$ on this subspace exist,
706: but an explicit procedure for determining $\Phi$ is given 
707: \cite{kod&rimon.aam}. One may then 
708: extend $\Phi$ to the remainder of $\Cs$ as follows: choose a point 
709: $(x,y)$ on the fin and define 
710: \be
711: \Phi(x,y) := \left\{
712: \begin{array} {ccc}
713: \frac{\ds 1}{\ds 1-\Value{x}}\Phi(0,y) & ; & \Value{x}<\Value{y} \\
714: \frac{\ds 1}{\ds 1-\Value{y}}\Phi(x,0) & ; & \Value{y}<\Value{x}
715: \end{array} \right.,
716: \ee
717: so that $\Phi$ increases sharply along the fins. This directs the 
718: gradient flow to monotonically ``descend'' away from the diagonal 
719: and onto $\Finless$.
720: Note that $\Finless$ is forward-invariant under the dynamics, and, 
721: that upon prescribing the vector field on the fins to point 
722: transversally into $\Finless$, we have 
723: defined a semiflow, and hence a well-defined navigational procedure.
724: \endpf
725: 
726: This result is very satisfying in the sense that it guarantees a
727: navigation function by applying existing theory to a situation 
728: which, from the definition alone, would not appear to 
729: be remotely related to a sphereworld.  However, a deeper 
730: analysis of configuration spaces of graphs \cite{Ghr:homotopytype}
731: reveals that for more than two AGV's, the configuration 
732: space is never a sphereworld.\footnote{The configuration space
733: of a graph turns out to be {\em aspherical}: there are no
734: essential closed spheres of dimension larger than one.}
735: Hence, we consider an alternate 
736: solution to the problem of realizing compatible goals by means 
737: of a vector field on the configuration space. This 
738: method is adaptable to more complicated settings.
739: 
740: 
741: % *********************************************************
742: \subsection{Example: a Circulating Flow}
743: % *********************************************************
744: 
745: Before proceeding with a general scheme for controlling two agents
746: on the Y-graph, we present a simple example of a vector field
747: on the configuration space which can be used to regularize 
748: collisions about a generic trivalent vertex. 
749: Theorem~\ref{thm_Space} and Figure~\ref{fig_pin5} suggest a 
750: natural {\em circulating flow} on the configuration 
751: space $\Cs$ which has the effect of inducing a ``dance'' 
752: between the pair of AGV's which cycles through all combinations 
753: of distinct point goals.
754: 
755: \begin{thm}
756: There exists a piecewise-smooth vector field $X$ on $\Cs$ which 
757: has the following properties:
758: \begin{enumerate}
759: \item $X$ defines a nonsingular semiflow on $\Cs$;
760: \item The diagonal $\Diag$ is repelling with respect to $X$; and
761: \item Every orbit of $X$ approaches a unique attracting limit cycle
762: 	on $\Cs$ which cycles through all possible ordered pairs of 
763: 	distinct edge-states.
764: \end{enumerate}
765: \end{thm}
766: \begpf
767: Denote by $\Finless$ that portion of the configuration space 
768: which corresponds to the AGV's being on distinct edges of the 
769: graph: as proven earlier, $\Finless$ is homeomorphic to a punctured disc. 
770: The intrinsic coordinates on the configuration space $\Cs$ is 
771: illustrated in Figure~\ref{fig_Coords}, where only $\Finless$ is shown
772: for illustration purposes. The reader should think of this as
773: a collection of six square coordinate planes, attached together
774: pairwise along axes with the origin removed
775: (this is actually an isometry for the natural product metric). The six 
776: triangular fins are then attached as per Figure~\ref{fig_pin5}.
777: 
778: % =========================================
779: \begin{figure}[htb]
780: \begin{center}
781: \psfragscanon
782: \psfrag{1}[bl][bl]{$(e_1,0)$}
783: \psfrag{2}[b][b]{$(0,e_3)$}
784: \psfrag{3}[b][b]{$(e_2,0)$}
785: \psfrag{4}[br][br]{$(0,e_1)$}
786: \psfrag{5}[b][]{$(e_3,0)$}
787: \psfrag{6}[b][]{$(0,e_2)$}
788: 	{%\centerline{
789: 	\includegraphics[width=2.1in]{{coords.eps}}
790: \hspace{0.3in}
791: 	\includegraphics[width=2.1in]{{field.eps}}}
792: \end{center}
793: \caption{[left] The coordinate system on the unfinned region $\Finless$ of $\Cs$; [right] The circulating flow with a typical orbit.} 
794: \label{fig_Coords}\label{fig_field}
795: \end{figure}
796: % =========================================
797: 
798: Recal that any point in the graph is represented as a vector 
799: $x=\Value{x}e_i$ for some $i$. Denote by $\hat{e}_i$ the unit tangent
800: vector in each tangent space $T_xe_i$ pointing in the positive
801: (outward) direction towards the endpoint $v_i$. 
802: The vector field we propose is the following: given $(x,y)\in\Cs$, 
803: \begin{enumerate}
804: \item
805: 	If $\Index{x}=\Index{y}$ then
806: \bea\label{eq_Dance1}
807: 	\left\{\begin{array}{l}
808: 	\dot{x} = -\Value{y}\hat{e}_{\Index{x}} \\
809: 	\dot{y} = \Value{y}(1-\Value{y})\hat{e}_{\Index{y}}
810: 	\end{array}\right\}
811: 	& 0<\Value{x}<\Value{y} 
812: \\
813: 	\left\{\begin{array}{l}
814: 	\dot{x} = \Value{x}(1-\Value{x})\hat{e}_{\Index{x}} \\
815: 	\dot{y} = -\Value{x}\hat{e}_{\Index{y}} 	
816: 	\end{array}\right\} 
817: 	& 0<\Value{y}<\Value{x} 
818: \eea
819: \item
820: 	If $\Index{x} = \Index{y}+1$ or $\Value{x}=0$ then
821: \bea\label{eq_Dance2}
822: 	\left\{\begin{array}{l}
823: 	\dot{x} = \Value{y}\hat{e}_{(\Index{y}+1)} \\
824: 	\dot{y} = \Value{y}(1-\Value{y})\hat{e}_{\Index{y}}
825: 	\end{array}\right\}
826: 	& 0\leq\Value{x}<\Value{y} 
827: \\
828: 	\left\{\begin{array}{l}
829: 	\dot{x} = \Value{x}(1-\Value{x})\hat{e}_{\Index{x}} \\
830: 	\dot{y} = -\Value{x}\hat{e}_{\Index{y}} 	
831: 	\end{array}\right\} 
832: 	& 0<\Value{y}\leq\Value{x} 
833: \eea
834: \item
835: 	If $\Index{y} = \Index{x}+1$ or $\Value{y}=0$ then
836: \bea\label{eq_Dance3}
837: 	\left\{\begin{array}{l}
838: 	\dot{x} = -\Value{y}\hat{e}_{\Index{x}} \\
839: 	\dot{y} = \Value{y}(1-\Value{y})\hat{e}_{\Index{y}}
840: 	\end{array}\right\} 
841: 	& 0<\Value{x}\leq\Value{y} 
842: \\
843: 	\left\{\begin{array}{l}
844: 	\dot{x} = \Value{x}(1-\Value{x})\hat{e}_{\Index{x}} \\
845: 	\dot{y} = \Value{x}\hat{e}_{(\Index{x}+1)} 	
846: 	\end{array}\right\} 
847: 	& 0\leq\Value{y}<\Value{x} 
848: \eea
849: \end{enumerate}
850: Note that all addition operations on $\Index{x}$ and $\Index{y}$
851: are performed mod three.
852: 
853: The vector field is nonsingular as follows: if $\Value{x}\Value{y}\neq 0$, 
854: then the vector field is by inspection nonsingular. If $\Value{x}=0$, 
855: then $\Value{y}>0=\Value{x}$ since the points are distinct. It then 
856: follows from Equation~(\ref{eq_Dance2}) that the vector field on this 
857: region has $d\Value{x}/dt=\Value{y}\neq 0$. A similar argument 
858: holds for the case where $\Value{y}=0$.
859: 
860: The vector field defines a semiflow as follows: on those 
861: regions where $0\neq\Value{x}\neq\Value{y}\neq 0$, the vector 
862: field is smooth and hence defines a true flow. Along the lines where
863: $\Value{x}=\Value{y}$, the vector field is only $C^0$, 
864: but nevertheless is constructed so as to define unique solution curves;
865: hence the region $\Finless$, where $\Index{x}\neq\Index{y}$, is invariant 
866: under the flow. Finally, along the branch line curves where 
867: $\Value{x}=0$ or $\Value{y}=0$, the vector field points into the 
868: the branch lines from the fins, implying that the dynamics is a semiflow
869: (see the remarks in Appendix A).
870: 
871: This vector field admits a $C^0$ Lyapunov function 
872: $\obj:\Cs\rightarrow[0,1)$ of the form
873: \be
874: 	\obj(x,y) \ldf \left\{
875: 	\begin{array}{rl}
876: 	1-\left\vert (\Value{x}-\Value{y}) \right\vert & :\, 
877: 		\Index{x}=\Index{y} \\
878: 	1-{\mbox{max}}\left\{\Value{x},\Value{y}\right\} & :\, 
879: 		\Index{x}\neq\Index{y}
880: 	\end{array}\right.  .
881: \ee
882: From Equation~(\ref{eq_Dance1}), one computes that on the fins
883: ($\Index{x}=\Index{y}$), 
884: \be
885: 	\frac{d\obj}{dt} = -\abs{(\frac{d\Value{x}}{dt}-
886: 			\frac{d\Value{y}}{dt})}<0 , 
887: \ee
888: since here $\Value{x}\neq\Value{y}$. Furthermore, on the disc $\Finless$ ($\Index{x}\neq\Index{y}$),  $\obj$ changes as 
889: \be
890: 	\frac{d\obj}{dt} = \obj(\obj-1) .
891: \ee
892: Hence, $\obj$ strictly decreases off of the boundary of the disc 
893: \be
894: 	\del\Finless \ldf \left\{(x,y) : \Value{x}=1 {\mbox{ or }}
895: 		\Value{y}=1 \right\} = \obj^{-1}(0) .
896: \ee
897: It follows from the computation of $d\obj/dt$
898: that the diagonal set $\Diag$ of $\Ygraph\times\Ygraph$ is repelling, 
899: and that the boundary cycle $\del\Finless$ is an attracting limit cycle. 
900: \endpf
901: 
902: The action of the vector field is to descend off of the ``fins''
903: of $\Cs$ onto the region $\Finless$, and then to circulate about
904: while pushing out to the boundary cycle $\del\Finless$, as in 
905: Figure~\ref{fig_field}. 
906: 
907: This example illustrates how one can use a relatively simple vector
908: field on the configuration space to construct a pattern which is 
909: free from collisions. In fact, one could use this circulating flow to 
910: regularize potential collisions between AGV's in a general graph setting 
911: by localizing the dynamics near a pairwise collision to those on a trivalent 
912: subgraph. 
913: 
914: 
915: 
916: 
917: 
918: 
919: 
920: %\input{sec_5.tex}
921: \section{Patterns and Vector Fields for Monotone Cycles}
922: \label{sec_5}\label{sec_4}
923: % ****************************************************
924: 
925: Optimization of patterns in the workspace is deeply entwined with
926: the geometry of the configuration space: in \cite{Ghr:geods},
927: it is shown that various Finsler structures on $\Cs$ can
928: be chosen to optimize total distance traveled or net time
929: elapsed.  The net result of this inquiry is that minimizing
930: Euclidean distance (in the product of the graph metric) on 
931: the cells of the configuration space yields locally optimal 
932: configuration sequences with respect to both distance traversed 
933: and elapsed time. In this section, we consider the problem of 
934: constructing vector fields which are tuned to trace out specific 
935: patterns of cooperative dynamics. We begin with a specification 
936: of a suitable language for describing patterns.
937: 
938: % ****************************************************
939: \subsection{A Grammar for Patterns}
940: % ****************************************************
941: 
942: The setting we envisage is as follows: the three ends of the graph
943: $\Ygraph$ are stations at which an AGV can perform some function. 
944: The AGV pair is required to execute an ordered sequence of 
945: functions, requiring an interleaved sequence of visitations. 
946: In order to proceed with vector field controls for cooperative
947: patterns, it is helpful to construct the appropriate symbolic language, 
948: as done in \S\ref{sec_2} for single AGV systems. 
949: Denote the pair of AGV states as 
950: $x$ and $y$ respectively. Also, denote the three docking stations 
951: as vertices $v_1$ through $v_3$ as in Figure~\ref{fig_Y}. 
952: The grammar $\Gs$ we use is defined as follows:
953: \begin{itemize}
954: \item 
955: 	$\GramX{i}$: These represent configurations for 
956: 	which the AGV $x$ is docked at the vertex $v_i$, $i=1..3$.
957: 	The AGV $y$ is at an unspecified undocked position.
958: \item
959: 	$\GramY{i}$: These represent configurations for 
960: 	which the AGV $y$ is docked at the vertex $v_i$, $i=1..3$.
961: 	The AGV $x$ is at an unspecified undocked position.
962: \item 
963: 	$\GramXY{i}{j}$: These represent configurations for which
964: 	the AGV $x$ is docked at vertex $v_i$ while the AGV $y$ 
965: 	is simultaneously docked at the vertex $v_j$, $j\neq i$.
966: \end{itemize}
967: For example, the word $\GramX{1}\GramY{2}\GramXY{3}{2}$
968: executes a sequence in which the first AGV docks at Station $v_1$, then 
969: undocks while the second AGV docks at Station $v_2$. Finally, 
970: the AGV's simultaneously dock at Stations $v_3$ and $v_2$ 
971: respectively.
972: 
973: As we have assumed from the beginning, the one-dimensional 
974: nature of the graph-constraints precludes the presence of multiple
975: agents at a single docking station; hence, there are exactly twelve
976: symbols in the grammar $\Gs$. 
977: From this assumption, it follows that particular attention is to be 
978: paid to those trajectories which do not make excursions onto the 
979: ``fins'' of the configuration space. It is obvious from the physical
980: nature of the problem that planning paths which involve traveling
981: on the fins is not a locally optimal trajectory with respect to minimizing
982: distance or elapsed time. Suffice to say that
983: we restrict attention for the moment to trajectories, and limit 
984: cycles for patterns in particular, which are constrained
985: to the region $\Finless\subset\Cs$.
986: 
987: We identify each symbol with a region of the boundary of the 
988: unbranched portion of $\Cs$; namely, $\del\Finless$ is partitioned 
989: into twelve {\em docking zones} 
990: as in Figure~\ref{fig_Zones}. 
991: Note further that there is a cyclic ordering, $\lhd_\del$, on $\Gs$ 
992: induced by the orientation on the boundary of the disc along 
993: which the zones lie. By a cyclic ordering, we mean a way of 
994: determining whether a point $q$ lies between any ordered pair
995: of points $(p_1,p_2)$. 
996: 
997: %FIGURE ZONES
998: % =========================================
999: \begin{figure}[htb]
1000: \begin{center}
1001: \psfragscanon
1002: \psfrag{1}[l][r]{$\GramX{1}$}
1003: \psfrag{2}[b][t]{$\GramXY{1}{2}$}
1004: \psfrag{3}[b][t]{$\GramY{2}$}
1005: \psfrag{4}[b][t]{$\GramXY{3}{2}$}
1006: \psfrag{5}[b][t]{$\GramX{3}$}
1007: \psfrag{6}[b][t]{$\GramXY{3}{1}$}
1008: \psfrag{7}[r][l]{$\GramY{1}$}
1009: \psfrag{8}[t][]{$\GramXY{2}{1}$}
1010: \psfrag{9}[tr][]{$\GramX{2}$}
1011: \psfrag{0}[t][]{$\GramXY{2}{3}$}
1012: \psfrag{a}[tl][]{$\GramY{3}$}
1013: \psfrag{b}[t][]{$\GramXY{1}{3}$}
1014: 	\includegraphics[width=2.0in\centerline]{{zones.eps}}
1015: \end{center}
1016: 
1017: 
1018: \caption{The six pairs of contiguous edges in $\del\Finless$ 
1019: 	each corresponds to a configuration
1020: 	where one AGV is docked at an extreme vertex
1021: 	of the graph. Outermost vertices of $\del\Finless$ 
1022: 	are points where both AGV's are docked. Labelling the
1023: 	edges $\GramX{i}$ and $\GramY{j}$ and the vertices
1024: 	$\GramXY{i}{j}$ yieldsd the cyclically 
1025: 	ordered grammar $\Gs$.} 
1026: \label{fig_Zones}
1027: \end{figure}
1028: % =========================================
1029: 
1030: We proceed with the analysis of limit cycles on $\Cs$.
1031: Consider the class of {\em pattern vector fields}, ${\cal X}_P$, 
1032: on $\Cs$: for every $X\in{\cal X}_P$,
1033: \begin{enumerate}
1034: \item 
1035: 	$X$ defines a semiflow on $\Cs$ and a genuine flow off of the 
1036: 	non-manifold set of $\Cs$;
1037: \item
1038: 	There is a unique limit cycle $\gamma$ which is attracting
1039: 	and which traces out a nonempty word in the grammar $\Gs$;
1040: \item
1041: 	The diagonal set $\Diag$ is a repellor with respect to $X$;
1042: \item
1043: 	There are no fixed invariant sets of $X$ which 
1044: 	attract a subset of positive measure save $\gamma$. 	
1045: \end{enumerate}
1046: Then, the class of {\em monotone vector fields}, ${\cal X}_{M}$,
1047: is that subset of ${\cal X}_P$ for which the limit cycle, $\gamma$, 
1048: lies in $\Finless$. A
1049: word ${\bf w}$ composed of elements ${\bf w}=w_1w_2...w_n$ 
1050: in the grammar $\Gs$ said to be {\em monotone} with respect 
1051: to the cyclic ordering $\lhd_\del$ if $w_{i-1}\lhd w_i\lhd w_{i+1}$ for 
1052: every $i$ (index operations all mod $n$).
1053: The following result justifies our use of the term {\em monotone} 
1054: in describing those limit cycles which lie on the disc.
1055: 
1056: \begin{thm}
1057: Within the class of vector fields ${\cal X}_{M}$, the 
1058: limit cycles trace out monotone words in the cyclically ordered 
1059: grammar $(\Gs,\lhd_\del)$. 
1060: \end{thm}
1061: 
1062: \begpf
1063: Any limit cycle of the flow 
1064: must be embedded (the curve does not intersect itself). 
1065: After a small perturbation, one may assume that the boundary zone 
1066: $\del\Finless$ is visited by $\gamma$ in a finite number of points,
1067: $Q:=\gamma\cap\del\Finless$. There is a cyclic order $\lhd_t$, defined
1068: via time with respect to the 
1069: dynamics of the limit cycle: i.e., the order in which points are
1070: visited by $\gamma$. This is contrasted with the induced cyclic ordering 
1071: $\lhd_\del$ on the set $Q$ given by the orientation of the boundary curve 
1072: $\del\Finless$, up to a choice between clockwise and 
1073: counterclockwise. The theorem follows from showing that 
1074: $\lhd_t=\lhd_\del$ up to a cyclic permutation and a choice of 
1075: orientation of $\del\Finless$. 
1076: 
1077: Induct on $J$ the number of points in $Q$. For $J=1$, the theorem 
1078: is trivially true, so assume that the orderings are equivalent for all 
1079: embedded curves on a disc with less than $J$ boundary-intersections.
1080: Consider two points $p, q\in Q$ which are consecutive in the $\lhd_t$ 
1081: ordering. There is an embedded sub-arc $\alpha\subset\gamma$ which 
1082: connects $p$ to $q$ within the interior of $\Finless$. By the Jordan Curve 
1083: Theorem \cite{munkres}, $\alpha$ separates $\Finless$ into two topological 
1084: discs; hence, $\gamma$ must lie entirely within the closure of one of 
1085: these discs. Consider the open subdisc whose intersection with $\gamma$
1086: is empty and collapse the closure of this disc to a point: this   
1087: yields a modified curve $\tilde\gamma$ which 
1088: is still embedded in a disc having $J-1$ intersections with the boundary,
1089: as illustrated in Figure~\ref{fig_Collapse}.
1090: By induction, the ordering $\lhd_t$ equals $\lhd_\del$ up
1091: to orientation on this subdisc. Reinserting the distinct points 
1092: $p$ and $q$ by ``blowing up'' the crushed disc does not change 
1093: the ordering properties, since these were chosen to be adjacent.
1094: \endpf
1095: 
1096: %FIGURE COLLAPSE
1097: % =========================================
1098: \begin{figure}[htb]
1099: \begin{center}
1100: \psfragscanon
1101: \psfrag{p}[br][]{$p$}
1102: \psfrag{q}[bl][]{$q$}
1103: \psfrag{s}[tr][]{$x$}
1104: \psfrag{a}[][]{$\alpha$}{%\centerline{
1105: 	\includegraphics[width=1.4in]{{collapse.eps}}
1106: \hspace{0.15in}
1107: 	\includegraphics[width=1.4in]{{collaps2.eps}}}
1108: \end{center}
1109: \vspace{-0.1in}
1110: 
1111: \caption{The embedded arc $\alpha$ divides $\Finless$ (pictured as a smooth
1112: 	disc) into two discs, one of which is collapsed to a point $x$.} 
1113: \label{fig_Collapse}
1114: \end{figure}
1115: % =========================================
1116: 
1117: Hence, the ony admissible words in the grammar $\Gs$ are those 
1118: which are monotone. 
1119: It is, however, possible to realize many if not all of the non-monotone 
1120: cycles as limit cycles for a semiflow on the {\em full} configuration space
1121: $\Cs$; one must design the semiflow so as to utilize the fins for ``jumping''
1122: over regions of $\Finless$ cut off by the limit cycle. Such vector 
1123: fields quickly become very convoluted, even for relatively simple
1124: non-monotone limit cycles.
1125: 
1126: %_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!
1127: \subsection{Isotopy Classes of Limit Cycles}
1128: %_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!_!
1129: 
1130: Given a limit cycle $\gamma$ which traces out a pattern by visiting
1131: the boundary zone $\del\Finless$ in the ordered set 
1132: $Q\subset\del\Finless$, one 
1133: wants to know which other limit cycles minimize a given performance
1134: functional while still visiting $Q$ in the proper sequence. The 
1135: mathematical framework for dealing with this problem is the notion 
1136: of {\em isotopy classes of curves}. 
1137: 
1138: Two subsets $A_0$ and $A_1$ of a set $B$ are said to be (ambiently) 
1139: {\em isotopic rel $C$} (where $C\subset B$) if there exists a continuous 
1140: 1-parameter family of homeomorphisms, $f_t:B\ra B$ such that 
1141: \begin{enumerate}
1142: \item $f_0$ is the identity map on $B$;
1143: \item $f_1(A_0)=A_1$; and
1144: \item $\rest{f_t}{C}$ is the identity map on $C$ for all $t$. 
1145: \end{enumerate}
1146: As $t$ increases, $f_t$ deforms $B$, pushing  $A_0$ to $A_1$ 
1147: without cutting or tearing the spaces and without disturbing $C$. 
1148: 
1149: There are two ways in which optimization questions relate
1150: to isotopy classes of limit cycles: (1) Given an element of 
1151: the grammar $\Gs$, 
1152: in which isotopy class (rel the docking zones) of curves does an 
1153: optimal limit cycle reside? (2) Within a given isotopy class
1154: of cycles rel $Q$, which particular cycle is optimal?
1155: 
1156: For a monotone limit cycle on $\Finless$, the above 
1157: question (1) focuses on the location of the cycle with respect to 
1158: the central point $(0,0)$, which is deleted from the disc $\Finless$. 
1159: It is a standard fact from planar topology that every curve in 
1160: the punctured disc has a well-defined {\em winding number}, which 
1161: measures how many times the cycle goes about the origin, and, 
1162: furthermore, that this number is either -1, 0, or 1 if the cycle is 
1163: an embedded curve. This winding number
1164: determines the isotopy class of the curve in $\Finless$. 
1165: Hence, the problem presents itself: given an element of the 
1166: grammar $\Gs$, which isotopy class rel the docking zones 
1167: is optimal (with respect to any/all of the functionals defined)?
1168: Is the winding number zero or nonzero?\footnote{The difference between 
1169: +1 and -1 is the orientation of time.} 
1170: 
1171: To briefly address this question, we define the {\em gap angles} 
1172: associated to a limit cycle. Given the docking zones 
1173: $Q=\{q_1, q_2, \ldots, q_J\}$ ordered with respect to time, 
1174: we define the gap angles to be the successive differences in 
1175: the angular coordinates of the $q_j$: thus $ga_j:=P(q_{j+1})-P(q_j)$,
1176: where $P$ denotes projection of points in $\Finless$ onto their 
1177: angular coordinates and subtraction is performed with respect to the
1178: orientation on $\partial\Finless$. 
1179: 
1180: For simplicity, we consider the optimization--isotopy problem 
1181: in the case of a discrete cost functional $\DWork$, defined
1182: to be the intersection number of the path with the branch
1183: locus of $\Cs$ --- i.e., the number of times an AGV occupies
1184: the central vertex (the shared resource in the problem). 
1185: Similar arguments are possible for other natural  
1186: performance metrics \cite{Ghr:geods}.
1187: 
1188: \begin{prop}
1189: There is a $\DWork$-minimizing embedded monotone cycle on $\Finless$ 
1190: (rel a given docking zone $Q$) having  
1191: winding number zero with respect to the origin if 
1192: there is a gap angle greater than $\pi$. Conversely, if 
1193: there are no gap angles greater than $\pi$, then there is 
1194: a $\DWork$-minimizing embedded cycle of index $\pm 1$.
1195: \end{prop}
1196: 
1197:  \begpf
1198:  Let $Q$ consist of the points $\{q_j\}_1^J$ on the boundary circle. 
1199:  The gap angles $\{ga_j\}_1^{J}$ are the differences of the 
1200:  angles between the points $q_j$ and $q_{j+1}$ (indices mod $J$). Since 
1201:  $\sum_j{ga}_j=2\pi$, there can be at most one gap angle greater than $\pi$. 
1202:  To simplify the problem, use a 1-parameter family $P_t$ of 
1203:  maps from the identity $P_0$ to the projection $P=P_1$ 
1204:  which deforms $\Finless$ to the boundary circle $S:=\del\Finless$ 
1205:  by projecting continuously 
1206:  along radial lines. The index of a curve on $\Finless$ is invariant 
1207:  under this deformation, as is the function $\DWork$. 
1208: 
1209:  Denote by $\gamma_j$, the subarc of $\gamma$ between points $q_{j}$
1210:  and $q_{j+1}$ (all indices mod $J$). Denote by $\alpha_j$ the subarc 
1211:  of the boundary $S$ between points $q_j$ and $q_{j+1}$, where the 
1212:  arc is chosen to subtend the gap angle $ga_j$. Since the boundary
1213:  curve $S=\cup_j\alpha_j$ is a curve of index $\pm 1$, the arcs 
1214:  $\gamma_j$ and $\alpha_j$ are isotopic in $\Finless$ rel their 
1215:  endpoints for all $j$ if and only if $\gamma$ is a curve of index $\pm 1$. 
1216: 
1217:  Assume first that there is a gap angle $ga_j>\pi$ with $\gamma$ 
1218:  an index $\pm 1$ curve on $S$ which intersects the branch angles 
1219:  $\Theta=\{n\pi/3 : n\in Z\}$ in a minimal number
1220:  of points among all other closed curves on $S$ which visit the points
1221:  $Q$ in the specified order. 
1222:  It follows that the arc $P(\ga_j)$ subtends an angle greater than
1223:  $\pi$ and thus increments $\DWork$ by at least three. 
1224:  One may replace $\ga_j$ by a curve $\ga_j'$ which substitutes for the 
1225:  arc $\ga_j$ one which wraps around `the other way' monotonically.
1226:  This changes the index of $\ga$ from nonzero to zero, since the 
1227:  arc $\ga_j'$ is no longer isotopic to $\alpha_j$. Also, 
1228:  it is clear that this either decreases the number of intersections 
1229:  with $\Theta$ or leaves this number unchanged. 
1230: 
1231:  We must show that the replacement arc $\ga_j'$ can be 
1232:  chosen in such a way that is does not intersect the remainder of 
1233:  $\ga$. However, since $\ga$ is a curve of index $\pm 1$, we may 
1234:  isotope each arc $\ga_i$ to the boundary curve $\alpha_i$ without 
1235:  changing the value of $\DWork$. Thus, we may remove $\ga_j$ and 
1236:  replace it with the curve which is, say, a geodesic (in the natural
1237:  metric geometry)  
1238:  from $q_j$ to $q_{j+1}$. As this curve does not approach the 
1239:  boundary $S$ apart from its ends, the new curve $\ga'$ is an 
1240:  embedded curve of index zero without an increase in $\DWork$.
1241: 
1242:  Assume now, on the contrary, that $\gamma$ is a $\DWork$ minimizer
1243:  of index zero which has all gap angles strictly less than $\pi$. 
1244:  Then each arc from $\ga_i$ must intersect the branch set
1245:  $\Theta$ in at most three components, since, otherwise, the 
1246:  subtended arc would be in excess of $4\pi/3$.
1247:  In the case where there exists an arc with exactly three 
1248:  intersections with the branch set, this arc may be replaced 
1249:  by an arc which goes around the singularity in the other direction 
1250:  without changing the number of intersections with the branch set
1251:  (since there are a total of six branch lines); however, the 
1252:  index of the curve is toggled between zero and nonzero. 
1253: 
1254:  The final case is that in which each arc intersects the branch 
1255:  set in at most two places. However, since $\ga$ is a curve of index
1256:  zero, some arc $\ga_j$ must not be isotopic to $\alpha_j$. Hence, 
1257:  the projection deformations $P_t$ must push $\ga_j$ to a curve in 
1258:  the boundary which $S$ whose subtended gap 
1259:  angle is $2\pi - ga_j > \pi$. Thus, $\gamma_j$ intersects the branch 
1260:  set in at least three places, yielding a contradiction. Replacing 
1261:  $\ga_j$ by the appropriate arc which is isotopic to $\alpha_j$ 
1262:  yields a $\DWork$-minimal cycle of nonzero index.
1263:  \endpf
1264: 
1265: 
1266: % ****************************************************
1267: \subsection{Tuning Cycles}
1268: % ****************************************************
1269: 
1270: In order to proceed with the construction of vector fields which 
1271: realize monotone cycles, we work with vector fields 
1272: on the smooth unit disc in $R^2$ and map these to the annular 
1273: region $\Finless$ of the configuration space via the push-forward induced
1274: by the natural homeomorphism. It will be convenient to keep track 
1275: of which ``wedge'' of the annular region a point $(r,\theta)$ is. 
1276: To do so, we introduce a parity function 
1277: \be\label{eq_Parity}
1278: P(\theta) := (-1)^{\left\{ \floor{3\theta/\pi}+
1279: 			  \floor{6\theta/\pi} \right\}}
1280: ,\ee
1281: where $\floor{t}$ is the integer-valued floor function.
1282: Recall the notation for the intrinsic coordinates for a point 
1283: $x$ on the graph $\Ygraph$: $x=\Value{x}\hat{e}_{\Index{x}}$, 
1284: where $\Value{x}\in[0,1]$ is the distance from $x$ to the 
1285: central vertex, and $\hat{e}_{\Index{x}}$ is the unit tangent vector
1286: pointing along the direction of the $\Index{x}$-edge. Here
1287: the index, $\Index{x}$ is an integer (defined modulo 3) and 
1288: will be undefined in the case when $\Value{x}=0$, i.e., $x$ 
1289: is at the central vertex. 
1290: 
1291: \begin{lem}
1292: The following is a piecewise-linear homeomorphism from the punctured 
1293: unit disc in $R^2$ to the subset $\Finless$: 
1294: $F(r,\theta) = (x, y)$ where,
1295: \be \label{eq_Homeo}
1296: \begin{array}{rl}
1297: 	& \Value{x} = \left\{\begin{array}{cl}
1298: 		r & \Prt{\theta}=+1 \\
1299: 		r\abs{\cot\frac{\ds 3}{\ds 2}\theta} & \Prt{\theta}=-1
1300: 		\end{array}\right.   \\
1301: 	& \Value{y} =    \left\{\begin{array}{cl}
1302: 		r\abs{\tan\frac{\ds 3}{\ds 2}\theta} & \Prt{\theta}=+1 \\
1303: 		r & \Prt{\theta}=-1 
1304: 		\end{array}\right.   \\
1305: 	& \Index{x} = \floor{-\frac{\ds 3}{\ds 2\pi}(\theta-\pi)}   \\
1306: 	& \Index{y} = \floor{-\frac{\ds 3}{\ds 2\pi}\theta}   
1307: \end{array} .
1308: \ee
1309: The inverse of this homeomorphism is given by
1310: $F^{-1}(x,y) =  (r,\theta)$, where,
1311: \be \label{eq_Inverse}
1312: \begin{array}{l}
1313: 	\theta = \left\{\begin{array}{cl}
1314: 		\frac{\ds 2}{\ds 3}\tan^{-1}\frac{\ds\Value{y}}{\ds\Value{x}}
1315: 		- \frac{\ds 2\pi}{\ds 3}(\Index{y}+1) 
1316: 		& \begin{array}{c}
1317: 			\Index{y}=\Index{x}+1 \\
1318: 			{\mbox{ or }} \Value{x}=0 
1319: 		     \end{array}  \\
1320: 		 -\frac{\ds 2}{\ds 3}\tan^{-1}\frac{\ds\Value{y}}{\ds\Value{x}}
1321: 		- \frac{\ds 2\pi}{\ds 3}(\Index{x}-1) 
1322: 		& \begin{array}{c}
1323: 			\Index{x}=\Index{y}+1 \\
1324: 			{\mbox{ or }} \Value{y}=0
1325: 		     \end{array}  
1326: 		\end{array}\right.   \\
1327: 	r  = \left\{\begin{array}{cl}
1328: 			\Value{x} & \Prt{\theta} = +1 \\
1329: 			\Value{y} & \Prt{\theta} = -1
1330: 		\end{array}\right.
1331: \end{array} . \ee
1332: \end{lem}
1333: Note that all $\theta$ values are defined modulo $2\pi$ and 
1334: all index values are integers defined modulo $3$.
1335: 
1336: \begpf
1337: Begin by working on the region $\Finless_{1,2}\subset
1338: \Finless$ where $\Index{x}=1$ and $\Index{y}=2$. As noted earlier, this 
1339: subspace is isometric to the positive unit square in $R^2$ with 
1340: the origin removed. We need to map this to the subset 
1341: $\{(r,\theta): r\in(0,1], \theta\in[0,\pi/3]\}$. The simplest such 
1342: homeomorphism is to first shrink along radial lines, leaving the 
1343: angle invariant; hence
1344: \be \label{eq_r}
1345: 	r = \left\{ \begin{array}{cl}
1346: 		\Value{x} &: \Value{x}\leq\Value{y} \\
1347: 		\Value{y} &: \Value{y}\leq\Value{x}
1348: 	\end{array}
1349: \right.\ee
1350: Next, we squeeze the quarter-circle into a sixth of a circle by 
1351: multiplying the angle by $2/3$, leaving the radial coordinate 
1352: invariant:
1353: \be\label{eq_theta}
1354: 	\theta = \frac{\ds 2}{\ds 3}\tan^{-1}\frac{\ds\Value{y}}{\ds\Value{x}} .
1355: \ee
1356: This gives the basic form of $F^{-1}$ as per Equation~(\ref{eq_Inverse}).
1357: To extend this to the remainder of $\Finless$, it is necessary to
1358: carefully keep track of $\Index{x}$ and $\Index{y}$ and subtract
1359: off the appropriate angle from the computation of $\theta$. Also, 
1360: the condition of $\Value{x}\leq\Value{y}$, etc., in 
1361: Equation~(\ref{eq_r}) is incorrect 
1362: on other domains of $\Finless$, since the inequalities flip as one 
1363: traverses from square to square: the parity function $\Prt{\theta}$ 
1364: keeps track of which ``wedge'' one is working on. 
1365: 
1366: To determine $F$ from $F^{-1}$ is a tedious but unenlightening
1367: calculation, made more unpleasant by the various indices to be 
1368: kept track of. Briefly, given $r$ and $\theta$ on the first sixth 
1369: of the unit disc, one knows from Equation~(\ref{eq_r}) that either
1370: $\Value{x}=r$ or $\Value{y}=r$, depending on whether $\theta$
1371: is above or below $\pi/4$. To solve for the other magnitude, one 
1372: inverts Equation~(\ref{eq_theta}) to obtain $\Value{y} = 
1373: r\abs{\tan\frac{\ds 3}{\ds 2}\theta}$ or $\Value{x} = 
1374: r\abs{\cot\frac{\ds 3}{\ds 2}\theta}$
1375: respectively. To generalize this to the other 
1376: $\Finless_{i,j}$ domains of $\Finless$, 
1377: it is necessary to take absolute values and to use the parity 
1378: function $\Prt{\theta}$ as before. Finally, the computation of the
1379: index is obtainable from the combinatorics of the coordinate 
1380: system as illustrated in Figure~\ref{fig_Coords}.
1381: \endpf
1382: 
1383: Hence, by taking the push-forward of a vector field $X=(\dot{r} ,
1384: \dot{\theta})$ with respect to $F$, one obtains the piecewise smooth 
1385: vector field, 
1386: \be \label{eq_Pushforward}
1387: 	\left\{\begin{array}{rc}
1388: 	\left( \begin{array}{l}
1389: 		\dot{\Value{x}} = \dot{r} \\
1390: 		\dot{\Value{y}} = \dot{r}\abs{\tan(\frac{\ds 3}{\ds 2}\theta)}
1391: 			+\frac{\ds 3}{\ds 2}r\dot{\theta}\sec^2(\frac{\ds 3}{\ds 2}\theta)
1392: 	\end{array}\right) & \Prt{\theta}=+1 \\
1393: 	\left( \begin{array}{l}
1394: 		\dot{\Value{x}} = \dot{r}\abs{\cot(\frac{\ds 3}{\ds 2}\theta)}
1395: 			+\frac{\ds 3}{\ds 2}r\dot{\theta}\csc^2(\frac{\ds 3}{\ds 2}\theta) \\
1396: 		\dot{\Value{y}} = \dot{r}
1397: 	\end{array}\right) & \Prt{\theta}=-1 
1398: \end{array}\right. ,\ee
1399: which simplifies to:
1400: \be \label{eq_Pushforward2}
1401: 	\left\{\begin{array}{rc}
1402: 	\left( \begin{array}{l}
1403: 		\dot{\Value{x}} = \dot{r} \\
1404: 		\dot{\Value{y}} = \dot{r}\frac{\ds \Value{y}}{\ds \Value{x}}
1405: 			+\frac{\ds 3}{\ds 2}\dot{\theta}\frac{\ds \Value{x}}
1406: 			{\ds 1+\left(\frac{\ds \Value{y}}{\ds \Value{x}}\right)^2} 
1407: 	\end{array}\right) & \Prt{\theta}=+1 \\
1408: 	\left( \begin{array}{l}
1409: 		\dot{\Value{x}} = \dot{r}\frac{\ds\Value{x}}{\ds\Value{y}}
1410: 			+\frac{\ds 3}{\ds 2}\dot{\theta}\frac{\ds \Value{y}}
1411: 			{\ds 1+\left(\frac{\ds\Value{x}}{\ds\Value{y}}\right)^2}  \\
1412: 		\dot{\Value{y}} = \dot{r}
1413: 	\end{array}\right) & \Prt{\theta}=-1 
1414: \end{array}\right. .\ee
1415: 
1416: 
1417: Given a simple closed curve $\gamma$ in $R^2$ which has nonzero
1418: winding number with respect to the origin, $\gamma$ may be 
1419: parametrized as $\{(r,\theta) : r=f(\theta)\}$ for some periodic
1420: positive function $f$. To construct a vector field on $R^2$ 
1421: whose limit sets consist of the origin as a source and $\gamma$ as an 
1422: attracting limit cycle, it suffices to take the push-forward of 
1423: the vector field 
1424: $ 	\dot{r} = r(1-r) \hspace{0.3in} \dot{\theta}=\omega $
1425: under the planar homeomorphism 
1426: $	\phi:(r,\theta)\mapsto (f(\theta)r,\theta), $
1427: which rescales linearly in the angular component. The calculations follow: 
1428: \be\label{eq_PushCycle}
1429: \begin{array}{rl}
1430: \phi_*\left(\begin{array}{c} \dot{r} \\ \dot{\theta}\end{array}\right)
1431: & = \left. D\phi
1432: 	\left(\begin{array}{c}\dot{r} \\ \dot{\theta}\end{array}\right)
1433: 	\right\vert_{r\mapsto\frac{\ds r}{\ds f}} 
1434:  = \left.\left[\begin{array}{cc}
1435: 	f & rf' \\ 0 & 1 \end{array}\right]
1436: 	\left(\begin{array}{c}r(1-r) \\ \omega \end{array}\right)
1437: 	\right\vert_{r\mapsto\frac{\ds r}{\ds f}} \\
1438: & = \left(\begin{array}{c}
1439: 	r\left(1-\frac{\ds r-f'\omega}{\ds f}\right) \\
1440: 	\omega	\end{array}\right)
1441: \end{array} .\ee
1442: Hence, given $f(\theta)$, we may tune a vector field to trace out 
1443: the desired limit cycle and then use Equations~(\ref{eq_Homeo})
1444: and (\ref{eq_Inverse}) to map it into intrinsic coordinates.
1445: 
1446: 
1447: % ****************************************************
1448: \subsection{Optimal Chords within a Hybrid Controller} 
1449: % ****************************************************
1450: 
1451: 
1452: To design optimal cycles with winding number zero, then, we 
1453: turn to constructing customized portions of limit cycles, or 
1454: {\em chords} which can be pieced together via a state-actuated 
1455: hybrid controller, much as in \S\ref{sec_2}. 
1456: In other words, instead of building a simple fixed
1457: vector field with a limit cycle, we will use a set of vector
1458: fields which vary discretely in time and which may be pieced 
1459: together so as to tune a limit cycle to the desired specifications. 
1460: There is nothing in this construction which relies on the index-zero
1461: property and thus these chords can be used to generate all 
1462: monotone limit cycles on $\Cs$.
1463: 
1464: Let $\Goalword$ denote a word representing a desired monotone 
1465: limit cycle on the configurations space $\Cs$. Choose points 
1466: $\{q_i\}$ on the boundary of $\Finless$ which correspond to the 
1467: docking zones for the cycle given by $\Goalword$. Choose 
1468: arcs $\alpha_i$ on $\Finless$ which connect $q_i$ to $q_{i+1}$
1469: (using cyclic index notation). The arcs $\alpha_i$ are assumed 
1470: given in the intrinsic coordinates on $\Finless$, as would be the
1471: case if one were determining a length-minimizing curve. 
1472: 
1473: In the case where the limit cycle $\alpha:=\cup_i\alpha_i$ is an 
1474: embedded curve of nonzero index, the procedure of the previous subsection
1475: determines a vector field $X_\alpha$ on $\Cs$ which realizes $\alpha$ as an 
1476: attracting limit cycle with the appropriate dynamics on the 
1477: complementary region. Recall: one translates $\alpha$ to a curve 
1478: on the disc model via the homeomorphism of Equation~(\ref{eq_Inverse}).
1479: Then, representing the limit cycle $\alpha$ as a function 
1480: $f_\alpha(\theta)$, one takes the vector field of 
1481: Equation~(\ref{eq_PushCycle}) and, if desired, takes the 
1482: image of this vector field under Equation~(\ref{eq_Pushforward2}).  
1483: 
1484: If, however, this is not the case, consider
1485: the arc $\alpha_j$ for a fixed $j$ and construct an index $\pm 1$ 
1486: cycle $\beta^j=\cup_i\beta_i^j$ which has docking zones $\{q_i\}$ 
1487: such that $\beta_j^j=\alpha_j$. Then the vector field $X^j$ 
1488: as constructed above has $\beta$ as an attracting 
1489: limit cycle. Denote by $\Phi^j$ the Lyapunov function which measures 
1490: proximity to $\beta$: $\Phi^j(p) := \norm{p-\beta^j}$ 
1491: (with distance measured in say the product metric on $\Cs$). 
1492: Then, consider the modified Lyapunov function 
1493: %\begin{equation}
1494: %\label{eq_ModLyap}
1495: $	\Psi^j(p) := \Phi^j(p) + \norm{p-q_{j+1}},$
1496: %\end{equation}
1497: which measures the distance to the endpoint of the arc $\beta_j^j$
1498: in addition to the proximity to $\beta^j$. 
1499: 
1500: Repeat this procedure for each $j$, yielding the vector fields 
1501: $\{X^j\}$ which attract respectively to limit cycles $\beta^j$. 
1502: It follows that $X^j$ prepares $X^{j+1}$ 
1503: since the goal point of $X^j$, $q_{j+1}$ lies on the attracting 
1504: set of $X^{j+1}$. The Lyapunov functions $\{\Psi^j\}$ serve as 
1505: a set of funnels which channel the orbit into the sequence of 
1506: arcs $\alpha_j$, forming $\alpha$. One scales the $\Psi^j$ so that 
1507: a $\Psi^j<\epsilon$ event triggers the switching in the hybrid 
1508: controller from $X^j$ to $X^{j+1}$:
1509: \begin{equation}
1510: \label{eq_Controller}
1511: X := \left\{ \begin{array}{ccl}
1512: X^1 &:& \Phi^j>\epsilon \, \forall\, j \\
1513: X^j &:& \Phi^j<\epsilon {\mbox{ and }} \Psi^j>\eps
1514: \end{array}\right.
1515: \end{equation} 
1516: 
1517: By construction, the hybrid controller (\ref{eq_Controller}) 
1518: realizes a limit cycle within $\epsilon$ of 
1519: $\alpha$ as the attracting set.
1520: 
1521: 
1522: 
1523: 
1524: 
1525: %\input{conclusion.tex}
1526: \section{Future Directions}
1527: \label{sec_6}
1528: 
1529: A point of primary concern is the adaptability of the global 
1530: topological approach to systems which increase in complexity, 
1531: either through more intricate graphs or through increased 
1532: numbers of AGV's. The latter is of greater difficulty than the 
1533: former, since the dimension of the resulting configuration 
1534: space is equal to the number of AGV's. Hence, no matter how 
1535: simple the underlying graph is, a system with ten independent 
1536: AGV's will require a dynamical controller on a (topologically 
1537: complicated) ten-dimensional space: a formidable problem 
1538: both from the topological, dynamical, and computational 
1539: viewpoints. 
1540: 
1541: However, there are some approaches which may facilitate working 
1542: with such spaces. Consider the model space $\Cs$ with which this 
1543: paper is concerned: although a two-dimensional space, $\Cs$ 
1544: can be realized as the product of a graph (a circle with six 
1545: radial edges attached) with the interval $(0,1]$. In fact, if we consider 
1546: the circulating flow of Equations~(\ref{eq_Dance1})-(\ref{eq_Dance3}), 
1547: one can view this as a product field of a semiflow on the graph 
1548: (which ``circulates'') with a vector field on the factor $(0,1]$ 
1549: (which ``pushes out'' to the boundary). 
1550: 
1551: A similar approach is feasible for arbitrary graphs. 
1552: The following result has recently been proven \cite{Ghr:birman}:
1553: %
1554: \begin{thm}
1555: Given a graph $\Gamma$, the configuration space of $N$ distinct 
1556: points on $\Gamma$ can be deformation retracted to a subcomplex 
1557: whose dimension is bounded above by the number of vertices of 
1558: $\Gamma$ of valency greater than two.\footnote{We have since
1559: learned of two others who have independently proved this result: 
1560: \cite{MK99}, having learned of these spaces fron \cite{GK:japan}; 
1561: and \cite{AA99}, who discovered these spaces while working on 
1562: the topology of Brownian motion on graphs.}
1563: \end{thm}
1564: %
1565: 
1566: This theorem implies the existence of low-dimensional {\em spines} 
1567: which carry all of the topology of the configuration space. 
1568: For example, the above theorem implies that the configuration 
1569: space of $N$ points on the Y-graph can be continuously deformed 
1570: to a one-dimensional graph, regardless of the size of $N$. Since 
1571: the full space can be deformation retracted onto the spine, 
1572: a vector field defined on the spine can be pulled 
1573: back continuously to the full configuration space, thus opening 
1574: up the possibility of reducing the control problem to that 
1575: on a simpler space. Addtional results about the topology of
1576: configuration spaces on graphs may yield computationally
1577: tractible means of dealing with complex path planning: for
1578: example, having a presentation for the fundamental 
1579: group of a configuration space of a graph in terms of 
1580: a suitably simple set of cycles would be extremely well-suited
1581: to a hybrid control algorithm based on ``localized'' 
1582: vector fields supported on small portions of the full 
1583: configuration space.
1584: 
1585: The optimization problem is another avenue for inquiry. The 
1586: fact that a dynamical approach allows for increased density
1587: of AGV's on a graph (as compared with blocking-zone strategies)
1588: would indicate an increased efficiency with respect to, say,
1589: elapsed time-of-flight. However, a more careful investigation
1590: of the tuning of optimal cycles is warranted.
1591: 
1592: We believe that the benefits associated with using the 
1593: full configuration space to tune optimal dynamical cycles 
1594: justifies a careful exploration of these challenging spaces. 
1595: 
1596: 
1597: 
1598: 
1599: 
1600: 
1601: 
1602: \appendix
1603: 
1604: %\input{app_a.tex}
1605: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1606: \section{The Topology and Dynamics of Graphs}
1607: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1608: 
1609: In this appendix, we provide a careful basis for the 
1610: use of vector fields on configuration spaces of graphs.
1611: In the setting of manifolds, all of the constructions 
1612: used in this paper are entirely natural and well-defined.
1613: However, on spaces like $\Cs$, the most fundamental of
1614: notions (like the Existence and Uniqueness Theorems for
1615: ODEs) are not in general valid.
1616: 
1617: 
1618: We begin by defining vector fields on graphs.
1619: For present purposes, we find it convenient to work with an intrinsic
1620: formulation (i.e., directly in the graph rather than via an embedding in a
1621: Euclidean space) of these objects. To this end, denote by
1622: $v$ a vertex with $K$ incident edges $\{e_i\}_1^K$, and by
1623: $\{X_i\}_1^K$ a collection of nonsingular vector fields locally
1624: defined on a neighborhood of the endpoint of each $e_i$ (homeomorphic
1625: to $[0,1)$). 
1626: 
1627: \begin{lem}\label{lem_Semiflow}
1628: A set of nonsingular vector fields $\{X_i\}$ on the 
1629: local edge set of a graph $\Gamma$ 
1630: generates a well-defined semiflow on $\Gamma$ if
1631: \begin{enumerate}
1632: \item Each edge field $X_i$ generates a well-defined local semiflow
1633: on (0,1); and
1634: \item The magnitude of the endpoint vectors $\norm{X_i(0)}$ (taken with
1635: respect to the attaching homeomorphisms) are all identical; and
1636: \item Among the {\em signs} of the endpoint vectors $X_i(0)$ 
1637: (either positive if pointing into $[0,\epsilon)$ or negative if 
1638: pointing out) there is a single positive sign.
1639: \end{enumerate}
1640: \end{lem}
1641: 
1642: \begpf
1643: Since the vector field is well-defined away from the vertex, 
1644: it is only necessary to have the magnitudes $\norm{X_i(0)}$ agree
1645: in order to have a well-defined function $\norm{X}$ on $\Gamma$.
1646: In order to make this a well-defined field of directions, we
1647: must also consider in which direction the vector is pointing.
1648: Again, this is determined off of the vertex by (1). Condition
1649: (3) means that at the vertex, there is a unique direction 
1650: along which the vector field is pointing out: all other
1651: edges point in. Hence, the direction field, as well as the magnitude
1652: field, is well-defined.
1653: 
1654: The semiflow property follows naturally from this. Assume that 
1655: the $N^{th}$ edge of $\Gamma$ has the positive sign. Then, given an initial
1656: point $x\in\Gamma$, if $x\in e_N$, then the orbit of $x$ under the 
1657: local field $X_N$ remains in $e_N$ and is well-defined. If 
1658: $x\in e_j$ for some $j\neq N$, then the union of the edges
1659: $e_j\cup e_N$ is a manifold homeomorphic to $R$ on which the
1660: vector fields $X_j$ and $X_N$ combine to yield a well-defined
1661: vector field, since the directions are ``opposite.'' 
1662: As we are now on a manifold, the standard Existence
1663: Theorem implies that $x$ has a forward orbit (which passes through the
1664: vertex and continues into $e_N$). Thus every point on $\Gamma$ 
1665: has a well-defined forward orbit.
1666: \endpf
1667: 
1668: In the case where the vector fields have singularities, it is a 
1669: simpler matter. If the singularities are not at the vertex, then 
1670: there is no difference. If there is a singularity at the vertex, 
1671: then condition (3) in Lemma~\ref{lem_Semiflow} is void --- 
1672: all such vector fields are well-defined.
1673: 
1674: In order to extend these results to the configuration space of 
1675: this paper, consider the space $\Cs=\Ygraph\times\Ygraph-\Diag$ and 
1676: let $(x,y)\in\Cs$ denote a point on the branch set of $\Cs$. 
1677: Because of the structure of $\Ygraph$ and the fact that the
1678: diagonal points are deleted, it follows that at most one AGV
1679: may occupy a non-manifold point of $\Ygraph$. Hence, a neighborhood
1680: of $(x,y)$ in $\Cs$ has a natural product structure
1681: $N\cong\Ygraph\times R$. Let $P:N\rightarrow\Ygraph$ denote 
1682: projection onto the first factor. 
1683: 
1684: \begin{lem}
1685: \label{lem_Semiflow2}
1686: A nonsingular vector field $X$ on the individual cells of $\Cs$ 
1687: generates a well-defined semiflow if (1) the projection of the local  
1688: vector fields onto the graph factor, $P_*(\rest{X}{\{x\}\times\Ygraph})$, 
1689: satisfies Lemma~\ref{lem_Semiflow} for each point $x$ in the branch
1690: set of $\Cs$; and (2) the projections of the vector fields on the branch
1691: set to the $R$-factor are equal up to the attaching maps.
1692: \end{lem}
1693: 
1694: \begpf
1695: Off of the branch set, the space is a manifold and hence the 
1696: vector field gives a well-defined flow. If $p$ is a point on the 
1697: branch line, condition (2) implieds that the vector field is well-defined 
1698: with respect to the attaching maps and the net effect in the $R$-factor
1699: is a drift in this direction. In the graph factor, condition (1) and
1700: the proof of Lemma~\ref{lem_Semiflow} implies that there is a unique
1701: forward orbit through $p$.
1702: \endpf
1703: 
1704: Heuristically, this condition means that, as in the case of 
1705: a graph, the vector field must point ``in'' on all but one
1706: sheet of the configuration space in order to have well-defined
1707: orbits. We may thus lift the criteria of Lemma~\ref{lem_Semiflow}
1708: to the product configuration space. All of the vector fields
1709: in this paper are so constructed.
1710: 
1711: 
1712: 
1713: 
1714: 
1715: 
1716: \bibliography{}
1717: 
1718: 
1719: \end{document}
1720: 
1721: 
1722: 
1723: 
1724: 
1725: 
1726: 
1727: