[Up] [Previous] [Next] [Index]

3 Functions to inspect graphs, vertices and edges

Sections

  1. IsGraph
  2. OrderGraph
  3. IsVertex
  4. VertexName
  5. VertexNames
  6. Vertices
  7. VertexDegree
  8. VertexDegrees
  9. IsLoopy
  10. IsSimpleGraph
  11. Adjacency
  12. IsEdge
  13. DirectedEdges
  14. UndirectedEdges
  15. Distance
  16. Diameter
  17. Girth
  18. IsConnectedGraph
  19. IsBipartite
  20. IsNullGraph
  21. IsCompleteGraph

This chapter describes functions to inspect graphs, vertices and edges.

3.1 IsGraph

  • IsGraph( obj )

    This boolean function returns true if and only if obj, which can be an object of arbitrary type, is a graph.

    gap> IsGraph( 1 );
    false
    gap> IsGraph( JohnsonGraph( 3, 2 ) );
    true 
    

    3.2 OrderGraph

  • OrderGraph( gamma )

    This function returns the number of vertices (the order) of the graph gamma.

    gap> OrderGraph( JohnsonGraph( 4, 2 ) );
    6 
    

    3.3 IsVertex

  • IsVertex( gamma, v )

    This boolean function returns true if and only if v is vertex of the graph gamma.

    gap> gamma := JohnsonGraph( 3, 2 );;
    gap> IsVertex( gamma, 1 );
    true
    gap> IsVertex( gamma, 4 );
    false 
    

    3.4 VertexName

  • VertexName( gamma, v )

    This function returns (an immutable copy of) the name of vertex v in the graph gamma.

    See also VertexNames and AssignVertexNames.

    gap> VertexName( JohnsonGraph(4,2), 6 );
    [ 3, 4 ] 
    

    3.5 VertexNames

  • VertexNames( gamma )

    This function returns (an immutable copy of) the list of vertex-names for the graph gamma. The i-th element of this list is the name of vertex i.

    See also VertexName and AssignVertexNames.

    gap> VertexNames( JohnsonGraph(4,2) );
    [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]                 
    

    3.6 Vertices

  • Vertices( gamma )

    This function returns the vertex-set {1,..., gamma.order} of the graph gamma.

    gap> Vertices( JohnsonGraph( 4, 2 ) );
    [ 1 .. 6 ] 
    

    3.7 VertexDegree

  • VertexDegree( gamma, v )

    This function returns the (out)degree of the vertex v of the graph gamma.

    gap> VertexDegree( JohnsonGraph( 3, 2 ), 1 );
    2 
    

    3.8 VertexDegrees

  • VertexDegrees( gamma )

    This function returns the set of vertex (out)degrees for the graph gamma.

    gap> VertexDegrees( JohnsonGraph( 4, 2 ) );
    [ 4 ] 
    

    3.9 IsLoopy

  • IsLoopy( gamma )

    This boolean function returns true if and only if the graph gamma has a loop, i.e. an edge of the form [x,x].

    gap> IsLoopy( JohnsonGraph( 4, 2 ) );
    false
    gap> IsLoopy( CompleteGraph( Group( (1,2,3), (1,2) ), 3 ) );
    false
    gap> IsLoopy( CompleteGraph( Group( (1,2,3), (1,2) ), 3, true ) );
    true 
    

    3.10 IsSimpleGraph

  • IsSimpleGraph( gamma )

    This boolean function returns true if and only if the graph gamma is simple, i.e. has no loops and whenever [x,y] is an edge then so is [y,x].

    gap> IsSimpleGraph( CompleteGraph( Group( (1,2,3) ), 3 ) );
    true
    gap> IsSimpleGraph( CompleteGraph( Group( (1,2,3) ), 3, true ) );
    false 
    

    3.11 Adjacency

  • Adjacency( gamma, v )

    This function returns (a copy of) the set of vertices of the graph gamma adjacent to the vertex v of gamma. A vertex w is adjacent to v if and only if [v,w] is an edge.

    gap> Adjacency( JohnsonGraph( 4, 2 ), 1 );
    [ 2, 3, 4, 5 ]
    gap> Adjacency( JohnsonGraph( 4, 2 ), 6 );
    [ 2, 3, 4, 5 ] 
    

    3.12 IsEdge

  • IsEdge( gamma, e )

    This boolean function returns true if and only if e is an edge of the graph gamma.

    gap> IsEdge( JohnsonGraph( 4, 2 ), [ 1, 2 ] );
    true
    gap> IsEdge( JohnsonGraph( 4, 2 ), [ 1, 6 ] );
    false 
    

    3.13 DirectedEdges

  • DirectedEdges( gamma )

    This function returns the set of directed (ordered) edges of the graph gamma.

    See also UndirectedEdges.

    gap> gamma := JohnsonGraph( 4, 3 );
    rec( isGraph := true, order := 4, group := Group([ (1,4,3,2), (3,4) ]), 
      schreierVector := [ -1, 1, 1, 1 ], adjacencies := [ [ 2, 3, 4 ] ], 
      representatives := [ 1 ], 
      names := [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ], 
      isSimple := true )
    gap> DirectedEdges( gamma );
    [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 1 ], [ 2, 3 ], [ 2, 4 ], [ 3, 1 ], 
      [ 3, 2 ], [ 3, 4 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ] ]
    gap> UndirectedEdges( gamma );
    [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
    

    3.14 UndirectedEdges

  • UndirectedEdges( gamma )

    This function returns the set of undirected (unordered) edges of gamma, which must be a simple graph.

    See also DirectedEdges.

    gap> gamma := JohnsonGraph( 4, 3 );
    rec( isGraph := true, order := 4, group := Group([ (1,4,3,2), (3,4) ]), 
      schreierVector := [ -1, 1, 1, 1 ], adjacencies := [ [ 2, 3, 4 ] ], 
      representatives := [ 1 ], 
      names := [ [ 1, 2, 3 ], [ 1, 2, 4 ], [ 1, 3, 4 ], [ 2, 3, 4 ] ], 
      isSimple := true )
    gap> DirectedEdges( gamma );
    [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 1 ], [ 2, 3 ], [ 2, 4 ], [ 3, 1 ], 
      [ 3, 2 ], [ 3, 4 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ] ]
    gap> UndirectedEdges( gamma );
    [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
    

    3.15 Distance

  • Distance( gamma, X, Y )
  • Distance( gamma, X, Y, G )

    This function returns the distance from X to Y in gamma. The parameters X and Y may be vertices or nonempty lists of vertices. We define the distance d(X,Y) from X to Y to be the minimum length of a (directed) path joining a vertex of X to a vertex of Y if such a path exists, and -1 otherwise.

    The optional parameter G, if present, is assumed to be a subgroup of Aut(gamma) fixing X setwise. Including such a G can speed up the function.

    See also Diameter.

    gap> Distance( JohnsonGraph(4,2), 1, 6 );
    2
    gap> Distance( JohnsonGraph(4,2), 1, 5 );
    1 
    gap> Distance( JohnsonGraph(4,2), [1], [5,6] );
    1
    

    3.16 Diameter

  • Diameter( gamma )

    This function returns the diameter of gamma. A diameter of -1 is returned if gamma is not (strongly) connected. Otherwise, the diameter of gamma is equal to the maximum (directed) distance d(x,y) in gamma (as x and y range over all the vertices of gamma).

    See also Distance.

    gap> Diameter( JohnsonGraph( 5, 3 ) );
    2
    gap> Diameter( JohnsonGraph( 5, 4 ) );
    1 
    

    3.17 Girth

  • Girth( gamma )

    This function returns the girth of gamma, which must be a simple graph. A girth of -1 is returned if gamma is a forest. Otherwise the girth is the length of a shortest cycle in gamma.

    gap> Girth( JohnsonGraph( 4, 2 ) );
    3 
    

    3.18 IsConnectedGraph

  • IsConnectedGraph( gamma )

    This boolean function returns true if and only if the graph gamma is (strongly) connected, i.e. there is a (directed) path from x to y for every pair of vertices x,y of gamma.

    gap> IsConnectedGraph( JohnsonGraph(4,2) );
    true
    gap> IsConnectedGraph( NullGraph(SymmetricGroup(4)) );
    false 
    

    3.19 IsBipartite

  • IsBipartite( gamma )

    This boolean function returns true if and only if the graph gamma, which must be simple, is bipartite, i.e. if the vertex-set can be expressed as the disjoint union of two sets, on each of which gamma induces a null graph (these two sets are called the bicomponents or parts of gamma).

    See also Bicomponents and BipartiteDouble.

    gap> gamma := JohnsonGraph(4,2);
    rec(
      isGraph := true,
      order := 6,
      group := Group( [ (1,4,6,3)(2,5), (2,4)(3,5) ] ),
      schreierVector := [ -1, 2, 1, 1, 1, 1 ],
      adjacencies := [ [ 2, 3, 4, 5 ] ],
      representatives := [ 1 ],
      names := [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ],
      isSimple := true )
    gap> IsBipartite(gamma);
    false
    gap> delta := BipartiteDouble(gamma);
    rec(
      isGraph := true,
      order := 12,
      group := Group( [ ( 1, 4, 6, 3)( 2, 5)( 7,10,12, 9)( 8,11), 
          ( 2, 4)( 3, 5)( 8,10)( 9,11), ( 1, 7)( 2, 8)( 3, 9)( 4,10)( 5,11)
            ( 6,12) ] ),
      schreierVector := [ -1, 2, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3 ],
      adjacencies := [ [ 8, 9, 10, 11 ] ],
      representatives := [ 1 ],
      isSimple := true,
      names := [ [ [ 1, 2 ], "+" ], [ [ 1, 3 ], "+" ], [ [ 1, 4 ], "+" ], 
          [ [ 2, 3 ], "+" ], [ [ 2, 4 ], "+" ], [ [ 3, 4 ], "+" ], 
          [ [ 1, 2 ], "-" ], [ [ 1, 3 ], "-" ], [ [ 1, 4 ], "-" ], 
          [ [ 2, 3 ], "-" ], [ [ 2, 4 ], "-" ], [ [ 3, 4 ], "-" ] ] )
    gap> IsBipartite(delta);
    true
    

    3.20 IsNullGraph

  • IsNullGraph( gamma )

    This boolean function returns true if and only if the graph gamma has no edges.

    See also NullGraph.

    gap> IsNullGraph( CompleteGraph( Group(()), 3 ) );
    false
    gap> IsNullGraph( CompleteGraph( Group(()), 1 ) );
    true 
    

    3.21 IsCompleteGraph

  • IsCompleteGraph( gamma )
  • IsCompleteGraph( gamma, mustloops )

    This boolean function returns true if and only if the graph gamma is a complete graph. The optional boolean parameter mustloops determines whether all loops must be present for gamma to be considered a complete graph (default: false (loops are ignored)).

    See also CompleteGraph.

    gap> IsCompleteGraph( NullGraph( Group(()), 3 ) );
    false
    gap> IsCompleteGraph( NullGraph( Group(()), 1 ) );
    true
    gap> IsCompleteGraph( CompleteGraph(SymmetricGroup(3)), true );
    false 
    

    [Up] [Previous] [Next] [Index]

    grape manual
    December 2022