Take the square tiling of the plane, and imagine a finite, connected and simply connected subset D of tiles. D can of course also be interpreted as a particular subgraph of the square grid by taking a node for each tile and connecting adjacent nodes.
Let's say I have a start node/tile A and an end tile B both in D and in D's boundary.
Is there a simple, straightforward algorithm for finding reasonably long self-avoiding paths in D between A and B?
I've found literature referring to finding the absolute longest path, and suboptimal algorithms which while performing very good look extremely complex. I was wondering whether there exist tamer algorithms which do good enough.
My only idea here is to compute the shortest path through A*, then distorting it by "folding" laterally to fill as much space as possible, but I'm not sure whether that's a good idea.
Another idea is whether there is an almost stupidly easy "scanline" pattern that fills the space between A and B and therefore performs well for a "rectangleish" D. I suspect this exists, but I cannot find it.