Situations like this are already well-solved in EDA tools like gEDA and other schematic capture and physical layout packages. These challenges would be a good place for Higher-Order Perl applications, as they're microworld problems like the 'Blocks World' problem detailed in AI books like Patrick Winston
's Artificial Intelligence. What you describe is actually a fairly straightforward 2D+layers situation, and if you limit the allowable turnout designs and curve-piece radii, a recursive try-and-test application becomes very doable. It would work a lot like the Tetris solver used as an example in the Jaguar book, although the solution network would be much more complex and certainly the visualizer would, too.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.