Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Assign colors to edges of a graph so that no two adjacent edges have the same color
ResourceFunction["EdgeColoring"][g] gives an edge coloring of graph g. |
Get a sample graph:
| In[1]:= |
| Out[1]= | ![]() |
Group edges of a graph so that no group contains adjacent edges:
| In[2]:= |
| Out[2]= |
Highlight edges in the groups:
| In[3]:= |
| Out[3]= | ![]() |
Use the specified set of colors:
| In[4]:= |
| Out[4]= |
| In[5]:= |
| Out[5]= | ![]() |
EdgeColoring works with undirected graphs:
| In[6]:= | ![]() |
| Out[6]= |
Directed graphs:
| In[7]:= | ![]() |
| Out[7]= |
Multigraphs:
| In[8]:= | ![]() |
| Out[8]= |
Mixed graphs:
| In[9]:= | ![]() |
| Out[9]= |
By default, EdgeColoring uses Brelaz's heuristic, which does not necessarily give the minimum coloring:
| In[10]:= |
| Out[10]= | ![]() |
| In[11]:= |
| Out[11]= | ![]() |
In this case, a 6-coloring is produced:
| In[12]:= |
| Out[12]= |
The minimum coloring should use only five colors, as given by the chromatic number of the graph:
| In[13]:= |
| Out[13]= |
Obtain a minimum coloring using Method→"Optimum":
| In[14]:= |
| Out[14]= | ![]() |
| In[15]:= |
| Out[15]= |
| In[16]:= |
| Out[16]= | ![]() |
EdgeColoring returns a proper edge coloring–that is, a coloring in which no two adjacent edges share the same color:
| In[17]:= |
| In[18]:= |
| Out[18]= | ![]() |
| In[19]:= |
| Out[19]= |
| In[20]:= |
| Out[20]= |
Verify by inspection:
| In[21]:= |
| Out[21]= | ![]() |
Use EdgeTaggedGraph to verify an edge coloring of a multigraph by inspection:
| In[22]:= | ![]() |
| Out[22]= |
| In[23]:= |
| Out[23]= |
| In[24]:= |
| Out[24]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License