module I: functor (
G
:
Sig.I
with type V.label = int * int and type E.label = int
) ->
S
with type graph = G.t
Random imperative planar graphs
Parameters: |
G |
: |
Sig.I with type V.label = int * int and type E.label = int
|
|
type
graph
val graph : ?loops:bool ->
xrange:int * int ->
yrange:int * int -> prob:float -> int -> graph
graph xrange yrange prob v
generates a random planar graph with exactly v
vertices.
Vertices are labeled with integer coordinates, randomly distributed
according to xrange
and yrange
.
Edges are built as follows: the full Delaunay triangulation is
constructed and then each edge is discarded with probabiblity prob
(which should lie in 0..1
). In particular prob = 0.0
gives the
full triangulation.
Edges are labeled with the (rounded) Euclidean distance between
the two vertices.
The boolean loops
indicates whether loops are allowed;
default value is no loop (false
).