# Please, advice for specific layouting task

Please, advice for specific layouting task

Hello community :)

I'm a programmer, new to Graphviz. I have a specific task, and wonder if I can use Graphviz to solve that. If it's possible (to solve with Graphviz), please also advice me a configuration, such as: which algorithm would apply better, and other parameters. If Graphviz is not proper for that - maybe you could suggest me to look elsewhere? Or mention useful algorithm?

My task:
I have a specification for graph with 35 nodes, and around 100 REQUIREMENTS about edges (each edge has 1 requirement). I need to make a program which would generate a random graph, based on the requirements.
Examples of requirements:
DISTANCE(A->B, MIN:  10, MAX: 100)
DISTANCE(A->C, MIN:  10, MAX: N/A)
DISTANCE(B->C, MIN: N/A, MAX: 100)
I also have a restriction, that whole graph fits into a box. F.e. 1000x1000.
The graph does not contain hard-resolvable (in sense of layouting) subgraphs. Edges are direct and free to cross. And there's a high priority on randomness of layouting (when comparing generation results).

I hope to hear your advices. :)

### Re: Please, advice for specific layouting task

Dear logarithm,

That's an interesting problem, but Graphviz is not a good choice for solving those constraints.

You probably need a more sophisticated kind of constraint solver.  I haven't looked into this
area much, but you might check out the work of Tim Dwyer and Kim Marriott.  Also, I noticed
this paper published a few years ago, and the abstract mentions that a prototype was written.
http://dl.acm.org/citation.cfm?id=1982428

There are other 2D geometric constraint solvers, like Cheetah.
http://www.3dcadworld.com/cheetah-creo-2d-geometric-constraint-solvers/

If you find a solution, please come back here and let us know. It seems promising to use
more sophisticated solvers to improve graph layout.

Stephen North