NAME
Graph::Maker::BiStar  create bistar graphs
SYNOPSIS
use Graph::Maker::BiStar;
$graph = Graph::Maker>new ('bi_star', N=>5, M=>4);
DESCRIPTION
Graph::Maker::BiStar
creates Graph.pm
bistar graphs. A bistar graph is two stars with an edge connecting their centres. Parameters N and M are how many vertices in each star, for total N+M vertices.
3 2 9
\ / \ N=>5 M=>4
168
/ \ / total vertices N+M = 9
4 5 7
Vertices of the first star are numbered per Graph::Maker::Star
, then the second star.
vertices
1 first star centre
2 to N inclusive first star surrounding
N+1 second star centre
N+2 to N+M inclusive second star surrounding
If N=0 then that star is no vertices and there is no middle edge, leaving just star M. Likewise conversely if M=0. If both N=0 and M=0 then the graph is empty.
If N=1 or M=1 then that star is a single vertex only and so is like an extra arm on the other, giving a single star N+M.
FUNCTIONS
$graph = Graph::Maker>new('bi_star', key => value, ...)

The key/value parameters are
N => integer, number of vertices in first star M => integer, number of vertices in second star graph_maker => subr(key=>value) constructor, default Graph>new
Other parameters are passed to the constructor, either
graph_maker
orGraph>new()
.If the graph is directed (the default) then edges are added in both directions (like
Graph::Maker::Star
does). Optionundirected => 1
creates an undirected graph and for it there is a single edge between vertices.
FORMULAS
The graph diameter is 3 when both N,M>=2. The smaller cases can be written
diameter(N,M) = (N>=2) + (M>=2) + (N>=3  M>=3  (N>=1&&M>=1))
The Wiener index (total distance between vertex pairs) follows from counts and measures between the leaf and centre vertices. Cases M=0 or N=0 reduce to a single star which are exceptions.
Wiener(N,M) = N^2 + 3*N*M + M^2  3*N  3*M + 2
if M=0 then + N1
if N=0 then + M1
= (N+M)*(N+M3) + N*M + 2
if M=0 then + N1
if N=0 then + M1
With N+M vertices, the number of pairs of distinct vertices is
Pairs(N,M) = (N+M)*(N+M1)/2
Mean distance between vertices is then Wiener/Pairs. A bistar with some particular desired mean distance can be found by solving for N,M in
Wiener(N,M) = Pairs(N,M) * mean
which becomes a binary quadratic form.
HOUSE OF GRAPHS
House of Graphs entries for the graphs here include
 2,2, https://hog.grinvin.org/ViewGraphInfo.action?id=594 (path4)
 3,2, https://hog.grinvin.org/ViewGraphInfo.action?id=30 (fork)
 3,3, https://hog.grinvin.org/ViewGraphInfo.action?id=334 (H graph)
 4,2, https://hog.grinvin.org/ViewGraphInfo.action?id=208 (cross)
 4,3, https://hog.grinvin.org/ViewGraphInfo.action?id=452
 4,4, https://hog.grinvin.org/ViewGraphInfo.action?id=586 (Ethane)
 5,2, https://hog.grinvin.org/ViewGraphInfo.action?id=266
 5,4, https://hog.grinvin.org/ViewGraphInfo.action?id=634
 5,5, https://hog.grinvin.org/ViewGraphInfo.action?id=112
 6,2, https://hog.grinvin.org/ViewGraphInfo.action?id=332
 6,5, https://hog.grinvin.org/ViewGraphInfo.action?id=650
 6,6, https://hog.grinvin.org/ViewGraphInfo.action?id=36
 7,2, https://hog.grinvin.org/ViewGraphInfo.action?id=366
 7,6, https://hog.grinvin.org/ViewGraphInfo.action?id=38
 7,7, https://hog.grinvin.org/ViewGraphInfo.action?id=166
 8,2, https://hog.grinvin.org/ViewGraphInfo.action?id=436
 8,7, https://hog.grinvin.org/ViewGraphInfo.action?id=168
 9,2, https://hog.grinvin.org/ViewGraphInfo.action?id=316
 10,2, https://hog.grinvin.org/ViewGraphInfo.action?id=320
 10,6, https://hog.grinvin.org/ViewGraphInfo.action?id=27414
SEE ALSO
Graph::Maker, Graph::Maker::Star
LICENSE
Copyright 2017 Kevin Ryde
This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with This file. If not, see http://www.gnu.org/licenses/.