[Next][Prev] [Right] [Left] [Up] [Index] [Root]

MULTIGRAPHS

 
Acknowledgements
 
Introduction
 
Construction of Multigraphs
      Construction of a General Multigraph
      Construction of a General Multidigraph
      Printing of a Multi(di)graph
      Operations on the Support
 
The Vertex--Set and Edge--Set of Multigraphs
 
Vertex and Edge Decorations
      Vertex Decorations: Labels
      Edge Decorations
            Assigning Edge Decorations
            Testing for Edge Decorations
            Reading Edge Decorations
            Deleting Edge Decorations
      Unlabelled, or Uncapacitated, or Unweighted Graphs
 
Standard Construction for Multigraphs
      Subgraphs
      Incremental Construction of Multigraphs
            Adding Vertices
            Removing Vertices
            Adding Edges
            Removing Edges
      Vertex Insertion, Contraction
      Unions of Multigraphs
 
Conversion Functions
      Orientated Graphs
      Converse
      Converting between Simple Graphs and Multigraphs
 
Elementary Invariants and Predicates for Multigraphs
 
Adjacency and Degree
      Adjacency and Degree Functions for Mul-tigraphs
      Adjacency and Degree Functions for Multidigraphs
 
Connectedness
      Connectedness in a Multigraph
      Connectedness in a Multidigraph
      Triconnectivity for Multigraphs
      Maximum Matching in Bipartite Multigraphs
      General Vertex and Edge Connectivity in Multigraphs and Multidigraphs
 
Spanning Trees
 
Planar Graphs
 
Distances, Shortest Paths and Minimum Weight Trees
 
Bibliography







DETAILS

 
Introduction

 
Construction of Multigraphs

      Construction of a General Multigraph
            MultiGraph<n | edges > : RngIntElt, List -> GrphMultUnd, GrphVertSet, GrphEdgeSet
            Example MultiGraph_GrphMultUnd_Constr (H150E1)

      Construction of a General Multidigraph
            MultiDigraph<n | edges > : RngIntElt, List -> GrphMultDir, GrphVertSet, GrphEdgeSet
            Example MultiGraph_GrphMultDir_Constr (H150E2)

      Printing of a Multi(di)graph

      Operations on the Support
            Support(G) : GrphMult -> SetIndx
            ChangeSupport(G, S) : GrphMult, SetIndx -> GrphMult, GrphVertSet, GrphEdgeSet
            ChangeSupport(~G, S) : GrphMult, SetIndx ->
            StandardGraph(G) : GrphMult -> GrphMult
            Example MultiGraph_GrphMult_Support (H150E3)

 
The Vertex--Set and Edge--Set of Multigraphs
      EdgeIndices(u, v) : GrphVert, GrphVert -> SeqEnum
      EdgeMultiplicity(u, v) : GrphVert, GrphVert -> RngIntElt
      Edges(u, v) : GrphVert, GrphVert -> SeqEnum
      IncidentEdges(u) : GrphVert -> SetEnum
      E ! < { u, v }, i > : GrphEdgeSet, < . > -> GrphEdge
      E ! < [ u, v ], i > : GrphEdgeSet, < . > -> GrphEdge
      pE.i {E . i} : GrphEdgeSet, RngIntElt -> GrphEdge
      EndVertices(e) : GrphEdge ->{ GrphVert, GrphVert }
      InitialVertex(e) : GrphEdge -> GrphVert
      TerminalVertex(e) : GrphEdge -> GrphVert
      Index(e) : GrphEdge -> RngIntElt
      s eq t : GrphEdge, GrphEdge -> BoolElt
      Example MultiGraph_GrphMult_Edges (H150E4)

 
Vertex and Edge Decorations

      Vertex Decorations: Labels
            AssignLabel(~G, u, l) : GrphMult, GrphVert, . ->
            AssignLabels(~G, S, L) : GrphMult, [GrphVert], SeqEnum ->
            AssignVertexLabels(~G, L) : GrphMult, SeqEnum ->
            IsLabelled(u) : GrphVert -> BoolElt
            IsLabelled(V) : GrphVertSet -> BoolElt
            IsVertexLabelled(G) : GrphMult -> BoolElt
            Label(u) : GrphVert -> .
            Labels(S) : [GrphVert] -> SeqEnum
            Labels(V) : GrphVertSet -> SeqEnum
            VertexLabels(G) : GrphMult -> SeqEnum
            DeleteLabel(~G, u) : GrphVert ->
            DeleteLabels(~G, S) : [GrphVert] ->
            DeleteVertexLabels(~G) : GrphMult ->

      Edge Decorations

            Assigning Edge Decorations
                  AssignLabel(~G, e, l) : GrphMult, GrphEdge, . ->
                  AssignLabels(~G, S, D) : GrphMult, [GrphEdge], SeqEnum ->
                  AssignEdgeLabels(~G, D) : GrphMult, SeqEnum ->

            Testing for Edge Decorations
                  IsLabelled(e) : GrphEdge -> BoolElt
                  IsLabelled(E) : GrphEdgeSet -> BoolElt
                  IsEdgeLabelled(G) : GrphMult -> BoolElt
                  IsCapacitated(E) : GrphEdgeSet -> BoolElt
                  IsEdgeCapacitated(G) : GrphMult -> BoolElt
                  IsWeighted(E) : GrphEdgeSet -> BoolElt
                  IsEdgeWeighted(G) : GrphMult -> BoolElt

            Reading Edge Decorations
                  Label(e) : GrphEdge -> .
                  Capacity(e) : GrphEdge -> RngIntElt
                  Weight(e) : GrphEdge -> RngElt
                  Labels(S) : [GrphEdge] -> SeqEnum
                  Labels(E) : GrphEdgeSet -> SeqEnum
                  EdgeLabels(G) : GrphMult -> SeqEnum

            Deleting Edge Decorations
                  DeleteLabel(~G, e) : GrphMult, GrphEdge ->
                  DeleteLabels(~G, S) : GrphMult, [GrphEdge] ->
                  DeleteEdgeLabels(~G) : GrphMult ->

      Unlabelled, or Uncapacitated, or Unweighted Graphs
            UnlabelledGraph(G) : GrphMult -> GrphMult
            UncapacitatedGraph(G) : GrphMult -> GrphMult
            UnweightedGraph(G) : GrphMult -> GrphMult
            Example MultiGraph_GrphMult_Labels (H150E5)
            Example MultiGraph_CayleyGraph (H150E6)
            Example MultiGraph_GrphMult_EdgesDecs (H150E7)

 
Standard Construction for Multigraphs

      Subgraphs
            sub< G | list > : GrphMult, List -> GrphMult, GrphVertSet, GrphEdgeSet
            Example MultiGraph_GrphMult_Sub (H150E8)

      Incremental Construction of Multigraphs

            Adding Vertices
                  G + n : GrphMult, RngIntElt -> GrphMult
                  G +:= n : GrphMult, RngIntElt ->
                  AddVertex(~G, l) : GrphMult, . ->
                  AddVertices(~G, n, L) : GrphMult, RngIntElt, SeqEnum ->

            Removing Vertices
                  G - v : GrphMult, GrphVert -> GrphMult
                  G -:= v : GrphMult, GrphVert ->

            Adding Edges
                  G + { u, v } : GrphMultUnd, { { GrphVert, GrphVert } } -> GrphMultUnd, GrphEdge
                  G + { { u, v } } : GrphMultUnd, { { GrphVert, GrphVert } } -> GrphMultUnd
                  G +:= { u, v } : GrphMultUnd, { GrphVert, GrphVert } ->
                  AddEdge(G, u, v) : GrphMult, GrphVert, GrphVert -> GrphMult, GrphEdge
                  AddEdge(G, u, v, l) : GrphMultUnd, GrphVert, GrphVert, . -> GrphMult, GrphEdge
                  AddEdge(G, u, v, c) : GrphNet, GrphVert, RngIntElt, . -> GrphNet, GrphEdge
                  AddEdge(G, u, v, c, l) : GrphNet, GrphVert, GrphVert, RngIntElt, . -> GrphNet, GrphEdge
                  AddEdge(~G, u, v) : GrphMult, GrphVert, GrphVert ->
                  AddEdges(G, S) : GrphMultUnd, { { GrphVert, GrphVert } } -> GrphMultUnd
                  AddEdges(G, S, L) : GrphMult, SeqEnum, SeqEnum -> GrphMult
                  AddEdges(~G, S) : GrphMultUnd, { { GrphVert, GrphVert } } ->

            Removing Edges
                  G - e : GrphMult, GrphEdge -> GrphMult
                  G - { { u, v } } : GrphMultUnd, { { GrphVert, GrphVert rbrace } -> GrphMultUnd
                  G -:= e : GrphMult, GrphEdge ->

      Vertex Insertion, Contraction
            InsertVertex(e) : GrphEdge -> GrphMult
            InsertVertex(T) : { GrphEdge } -> GrphMult
            Contract(e) : GrphEdge -> GrphMult
            Contract(u, v) : GrphVert, GrphVert -> GrphMult
            Contract(S) : { GrphVert } -> GrphMult

      Unions of Multigraphs
            Union(G, H) : GrphMultUnd, GrphMultUnd -> GrphMultUnd
            Union(N, H) : GrphNet, GrphNet -> GrphNet
            & join S : [ MultiUnd ] -> GrphMultUnd
            EdgeUnion(G, H) : GrphMultUnd, GrphMultUnd -> GrphMultUnd
            EdgeUnion(N, H) : GrphNet, GrphNet -> GrphNet

 
Conversion Functions

      Orientated Graphs
            OrientatedGraph(G) : GrphMultUnd -> GrphMultDir

      Converse
            Converse(G) : GrphMultDir -> GrphMultDir

      Converting between Simple Graphs and Multigraphs
            UnderlyingGraph(G) : GrphMult -> GrphUnd, GrphVertSet, GrphEdgeSet
            UnderlyingDigraph(G) : GrphMult-> GrphDir, GrphVertSet, GrphEdgeSet
            UnderlyingMultiGraph(G) : Grph -> GrphMultUnd, GrphVertSet, GrphEdgeSet
            UnderlyingMultiDigraph(G) : Grph -> GrphMultDir, GrphVertSet, GrphEdgeSet
            UnderlyingNetwork(G) : Grph -> GrphNet, GrphVertSet, GrphEdgeSet

 
Elementary Invariants and Predicates for Multigraphs
      Order(G) : GrphMult -> RngIntElt
      Size(G) : GrphMult -> RngIntElt
      u adj v : GrphVert, GrphVert -> BoolElt
      e adj f : GrphEdge, GrphEdge -> BoolElt
      u notadj v : GrphVert, GrphVert -> BoolElt
      e notadj f : GrphEdge, GrphEdge -> BoolElt
      u in e : GrphVert, GrphEdge -> BoolElt
      u notin e : GrphVert, GrphEdge -> BoolElt
      G eq H : GrphMultUnd, GrphMultUnd -> BoolElt
      IsSubgraph(G, H) : GrphMultUnd, GrphMultUnd -> BoolElt
      IsBipartite(G) : GrphMultUnd -> BoolElt
      Bipartition(G) : GrphMultUnd -> [ { GrphVert } ]
      IsRegular(G) : GrphMult -> BoolElt
      IsComplete(G) : GrphMult -> BoolElt
      IsEmpty(G) : GrphMult -> BoolElt
      IsNull(G) : GrphMult -> BoolElt
      IsSimple(G) : GrphMult -> BoolElt
      IsUndirected(G) : GrphMult -> BoolElt
      IsDirected(G) : GrphMult -> BoolElt

 
Adjacency and Degree

      Adjacency and Degree Functions for Mul-tigraphs
            Degree(u) : GrphVert -> RngIntElt
            Alldeg(G, n) : GrphMultUnd, RngIntElt -> { GrphVert }
            MaximumDegree(G) : GrphMultUnd -> RngIntElt, GrphVert
            MinimumDegree(G) : GrphMultUnd -> RngIntElt, GrphVert
            DegreeSequence(G) : GrphMultUnd -> [ { GrphVert } ]
            Neighbours(u) : GrphVert -> { GrphVert }
            IncidentEdges(u) : GrphVert -> { GrphEdge }

      Adjacency and Degree Functions for Multidigraphs
            InDegree(u) : GrphVert -> RngIntElt
            OutDegree(u) : GrphVert -> RngIntElt
            MaximumInDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            MinimumInDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            MaximumOutDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            MinimumOutDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            Degree(u) : GrphVert -> RngIntElt
            MaximumDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            MinimumDegree(G) : GrphMultDir -> RngIntElt, GrphVert
            Alldeg(G, n) : GrphMultDir, RngIntElt -> { GrphVert }
            DegreeSequence(G) : GrphMultDir -> [ GrphVert ]
            InNeighbours(u) : GrphVert -> { GrphVert }
            OutNeighbours(u) : GrphVert -> { GrphVert }
            IncidentEdges(u) : GrphVert -> { GrphEdge }

 
Connectedness

      Connectedness in a Multigraph
            IsConnected(G) : GrphMultUnd -> BoolElt
            Components(G) : GrphMultUnd -> [ { GrphVert } ]
            Component(u) : GrphVert -> GrphMult
            IsSeparable(G) : GrphMultUnd -> BoolElt
            IsBiconnected(G) : GrphMultUnd -> BoolElt
            CutVertices(G) : GrphMultUnd -> { GrphVert }
            Bicomponents(G) : GrphMultUnd -> [ { GrphVert } ]

      Connectedness in a Multidigraph
            IsStronglyConnected(G) : GrphMultDir -> BoolElt
            IsWeaklyConnected(G) : GrphMultDir -> BoolElt
            StronglyConnectedComponents(G) : GrphMultDir -> [ { GrphVert } ]
            Component(u) : GrphVert -> GrphMult

      Triconnectivity for Multigraphs
            IsTriconnected(G) : GrphMultUnd -> BoolElt
            Splitcomponents(G) : GrphMultUnd -> [ { GrphVert } ], [ [ GrphVert ]]
            SeparationVertices(G) : GrphMultUnd -> [ [ GrphVert ]], [ { GrphVert } ]

      Maximum Matching in Bipartite Multigraphs
            MaximumMatching(G : parameters) : GrphMultUnd -> [ { GrphEdge rbrace ]

      General Vertex and Edge Connectivity in Multigraphs and Multidigraphs
            VertexSeparator(G : parameters) : GrphMult -> [ GrphVert ]
            VertexConnectivity(G : parameters) : GrphMult -> RngIntElt, [ GrphVert ]
            IsKVertexConnected(G, k : parameters) : GrphMult, RngIntElt -> BoolElt
            EdgeSeparator(G : parameters) : GrphMult -> [ GrphEdge ]
            EdgeConnectivity(G : parameters) : GrphMult -> RngIntElt, [ GrphEdge ]
            IsKEdgeConnected(G, k : parameters) : GrphMult, RngIntElt -> BoolElt
            Example MultiGraph_GrphMult_Conn (H150E9)

 
Spanning Trees
      SpanningTree(G) : GrphMultUnd -> GrphMultUnd, GrphVertSet, GrphEdgeSet
      SpanningForest(G) : GrphMult -> GrphMult, GrphVertSet, GrphEdgeSet
      BreadthFirstSearchTree(u) : GrphVert -> GrphMult, GrphVertSet, GrphEdgeSet
      DepthFirstSearchTree(u) : GrphVert -> GrphMult, GrphVertSet, GrphEdgeSet, SeqEnum

 
Planar Graphs
      IsPlanar(G) : GrphMultUnd -> BoolElt, GrphMultUnd
      Obstruction(G) : GrphMultUnd -> GrphMultUnd
      IsHomeomorphic(G: parameters) : GrphMultUnd -> BoolElt
      Faces(G) : GrphMultUnd -> SeqEnum[GrphVert]
      Face(u, v) : GrphVert, GrphVert -> SeqEnum
      Face(e) : GrphEdge -> SeqEnum
      NFaces(G) : GrphMultUnd -> RngIntElt
      Embedding(G) : GrphMultUnd -> SeqEnum
      Embedding(v) : GrphVert -> SeqEnum
      Example MultiGraph_GrphMult_Planar (H150E10)
      Example MultiGraph_GrphMult_Planar_Dual (H150E11)

 
Distances, Shortest Paths and Minimum Weight Trees
      Reachable(u, v : parameters) : GrphVert, GrphVert -> BoolElt, RngElt
      Distance(u, v : parameters) : GrphVert, GrphVert -> RngElt
      Distances(u : parameters) : GrphVert -> Eseq
      PathExists(u, v : parameters) : GrphVert, GrphVert -> BoolElt, Eseq
      Path(u, v : parameters) : GrphVert, GrphVert -> Eseq
      Paths(u : parameters) : GrphVert -> Eseq
      GeodesicExists(u, v : parameters) : GrphVert, GrphVert -> BoolElt, Eseq
      Geodesic(u, v : parameters) : GrphVert, GrphVert -> Eseq
      Geodesics(u : parameters) : GrphVert -> Eseq
      HasNegativeWeightCycle(u : parameters) : GrphVert -> BoolElt
      HasNegativeWeightCycle(G) : Grph -> BoolElt
      AllPairsShortestPaths(G : parameters) : Grph -> SeqEnum, SeqEnum
      MinimumWeightTree(u : parameters) : GrphVert -> SeqEnum
      Example MultiGraph_GrphMult_ShortP (H150E12)
      Example MultiGraph_GrphMult_MinW (H150E13)

 
Bibliography

[Next][Prev] [Right] [____] [Up] [Index] [Root]
Version: V2.19 of Mon Dec 17 14:40:36 EST 2012