++ed by:

1 non-PAUSE user.

Kevin Ryde
and 1 contributors

# NAME

Graph::Maker::Johnson - create Johnson graphs

# SYNOPSIS

`````` use Graph::Maker::Johnson;
\$graph = Graph::Maker->new ('Johnson', N => 8, K => 3);``````

# DESCRIPTION

`Graph::Maker::Johnson` creates `Graph.pm` graphs of Johnson graphs. Each vertex is a K-many subset of the integers 1 to N. Edges are between vertices which have K-1 integers the same and 1 integer different. Vertex names are the list of K integers separated by commas, such as "1,5,6,8".

An N,K graph is the same as an N,N-K but different vertex names.

K=1 or K=N-1 is the complete-N graph. For K=1, the vertex names are the same as `Graph::Maker::Complete` (integers 1 to N).

K=2 or K=N-2 is the triangular graph, which is the line graph of the complete-N graph.

N=5,K=2, which is triangular-5, is the complement of the Petersen graph. The Petersen graph can be considered as the Kneser 5,2 which is edges between pairs of integers with both different, whereas here edges between one different. (Neither has edges for none different as that would be self-loops.)

# FUNCTIONS

`\$graph = Graph::Maker->new('Johnson', key => value, ...)`

The key/value parameters are

``````    N  =>  integer
K  =>  integer
graph_maker => subr(key=>value) constructor, default Graph->new``````

Other parameters are passed to the constructor, either `graph_maker` or `Graph->new()`.

If the graph is directed (the default) then edges are added both forward and backward between vertices. Option `undirected => 1` creates an undirected graph and for it there is a single edge between vertices.

# HOUSE OF GRAPHS

House of Graphs entries for the graphs here include

N=4, K=2, https://hog.grinvin.org/ViewGraphInfo.action?id=226
N=5, K=2, https://hog.grinvin.org/ViewGraphInfo.action?id=21154 (complement of Petersen)