Add sage code
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
"""Utilities for computing Tait colorings from vertex colorings of the dual graph."""
|
||||
from typing import Any, cast
|
||||
from sage.all import Graph
|
||||
from lib.edge_for_dual_edge import get_edge_for_dual_edge
|
||||
|
||||
def get_tait_coloring(planar_dual: Graph, coloring: dict[Any, int]) -> dict[Any, int]:
|
||||
"""Return a Tait (edge 3-coloring) from a vertex 4-coloring of the dual graph."""
|
||||
tait_coloring: dict[Any, int] = {}
|
||||
for dual_edge in cast(list[Any], planar_dual.edges()): # type: ignore
|
||||
edge = get_edge_for_dual_edge(dual_edge)
|
||||
colors = {coloring[edge[0]], coloring[edge[1]]}
|
||||
if colors in ({0, 1}, {2, 3}):
|
||||
tait_coloring[dual_edge] = 0
|
||||
elif colors in ({1, 2}, {0, 3}):
|
||||
tait_coloring[dual_edge] = 1
|
||||
else:
|
||||
tait_coloring[dual_edge] = 2
|
||||
return tait_coloring
|
||||
Reference in New Issue
Block a user