The difference between artificial intelligence and normal computer programming is, that the tools are different. Normal computer programming is about coding a given algorithm into sourcecode. A possible problem is, that somebody is using the wrong programming language, has forgotten to end a statement with a comma, or doesn't know how to search in a tree for a node. All these problems can be solved within the normal paradigm.
In contrast, the AI topic is dealing with inventing new algorithms. That means, that the algorithm is unclear. And the best practice method in describing problems is to figure out which literature is available which is describing the bottleneck. In this special case with finding a plan for putting railway elements together the fist step is to analyze why Depth-First-Search won't work, and in which paper this problem was addressed in the past. If the problem is completely new, then a paper has to identified which is describing a similar domain. For example a paper about heuristics for hierarchical path-planning.