Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
GraphTheory[GraphNormal] - finds the normal form of a graph
Calling Sequence
GraphNormal(G)
GraphNormal(M)
GraphNormal(M,ws)
Parameters
G
-
undirected unweighted graph
M
adjacency matrix for undirected unweighted graph
ws
working storage
Description
The GraphNormal command computes a normal form for an undirected, unweighted graph. The normal form chosen is defined as the permutation that puts the greatest number of 1's in the earliest location in the adjacency matrix, when examining the entries in the order M[1,2], ..., M[1,n], M[2,3], ..., M[2,n], M[3,4], ....
This problem is exponential in the number of vertices, so can only be expected to return in reasonable time for graphs with a small to moderate number of vertices.
The form of the return is different for the three possible calling sequences:
For the first calling sequence, when the input is a graph, GraphNormal returns the permuted normal form graph.
For the second calling sequence, when the input is an adjacency matrix, GraphNormal returns a permutation in the form [1=n[1], 2=n[2], ...] that maps the original vertices to the normal form vertices.
For the third calling sequence, the working storage ws must be rectangular with wordsize integer datatype and of size when is the number of vertices in the graph, and the permutation [n[1],n[2],...] is stored in the first elements of the workspace on return.
Note that if the adjacency matrix is rectangular storage with wordsize integer datatype, then it is modified in-place to the adjacency matrix of the normal form. If the working storage is also specified, then the implementation will allocate no memory, and the validation that the input adjacency matrix is symmetric is skipped, so this is the most efficient calling sequence. If in this case the input adjacency matrix is not symmetric, the result is not defined.
Examples
Start with the Petersen graph.
Obtain normalization.
Compare adjacency matrices.
Create a randomized isomorphic copy, and verify that normalizations are equal.
Create another randomized isomorphic copy, and verify that normalizations are equal.
See Also
AdjacencyMatrix, IsomorphicCopy
Download Help Document