Module Planar.Make

Random planar graphs

Parameters

module B : Builder.S with type G.V.label = int * int and type G.E.label = int

Signature

type graph = B.G.t
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).