20.02.2013 Views

Shortest path in a multiply-connected domain having curved ...

Shortest path in a multiply-connected domain having curved ...

Shortest path in a multiply-connected domain having curved ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(a) Rejected <strong>path</strong> (<strong>in</strong><br />

blue)<br />

(b) Rejected <strong>path</strong> (<strong>in</strong><br />

blue)<br />

BT1<br />

ζ2<br />

ζ1<br />

(c) ζ1 conta<strong>in</strong>s BT1<br />

Figure 6: Rejected and merged <strong>path</strong>s (<strong>in</strong> blue)<br />

(d) Merged <strong>path</strong>s<br />

section 4.2. To do this, a dummy tangent l<strong>in</strong>e start<strong>in</strong>g at S <strong>in</strong> the direction φ as clockwise<br />

is added to the BT process<strong>in</strong>g algorithm. Similar procedure is followed for counter-clockwise<br />

direction and for the end po<strong>in</strong>t E.<br />

4.3 Further elim<strong>in</strong>ation of <strong>path</strong>s<br />

Sections 4.1 and 4.2 detailed how the PCTs/BTs can be elim<strong>in</strong>ated based on the region<br />

formulation us<strong>in</strong>g Lemma 4. However, there are further elim<strong>in</strong>ation of PCTs/BTs is possible.<br />

This is done through the application of Lemma 3 which stated that a <strong>path</strong> cannot <strong>in</strong>tersect<br />

certa<strong>in</strong> PCTs/BTs <strong>in</strong> specific ways. Thus a check is made to elim<strong>in</strong>ate <strong>path</strong>s that are not<br />

valid. Figures 6(a) and 6(b) show the <strong>path</strong> <strong>in</strong> blue that can be elim<strong>in</strong>ated us<strong>in</strong>g Lemma 3.<br />

4.4 Merg<strong>in</strong>g of <strong>path</strong>s<br />

A tree structure is ma<strong>in</strong>ta<strong>in</strong>ed to store the computed <strong>path</strong>s thus far. The tree starts with a<br />

s<strong>in</strong>gle node S, and the children for each node is the list of valid tangents obta<strong>in</strong>ed us<strong>in</strong>g the<br />

node. The procedure processes every child recursively till E is reached via. the term<strong>in</strong>ation<br />

list (which conta<strong>in</strong>s the PCTs processed from E) or no further valid tangent is available.<br />

Along with every node, the length from S up to that node is also stored by comput<strong>in</strong>g the<br />

Euclidean distance for tangents and l<strong>in</strong>e <strong>in</strong>tegral for <strong>curved</strong> portions. Thus the length of leaf<br />

node when it reaches E will be the length of that particular <strong>path</strong>.<br />

While the above procedures are followed recursively, a merg<strong>in</strong>g step is performed to avoid<br />

redundant computations. Simply, <strong>path</strong>s are merged if a bitanget to be processed has been<br />

already traversed. In this case all subtree of <strong>path</strong>s already computed is added to the current<br />

<strong>path</strong>. The length correspond<strong>in</strong>g to each node is updated accord<strong>in</strong>gly. An example of merg<strong>in</strong>g<br />

is shown <strong>in</strong> Figures 6(c) and 6(d). In Figure 6(c), the bitangent BT1 is already traversed by<br />

the <strong>path</strong> ζ1 and hence the <strong>path</strong> ζ2 is merged when BT1 is reached. Algorithm 2 (<strong>in</strong> appendix)<br />

gives the pseudocode for process<strong>in</strong>g the bitangents.<br />

10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!