Cuboctahedral Graph

Author

Eric W. Weisstein
June 21, 2023

This notebook downloaded from http://mathworld.wolfram.com/notebooks/GraphTheory/CuboctahedralGraph.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/CuboctahedralGraph.html.

©2023 Wolfram Research, Inc. except for portions noted otherwise

Embeddings

<<MathWorld`Graphs`

Primary

GraphData["CuboctahedralGraph"]//StyleGraphs[#,ImageSize->Small]&

Construction from Read and Wilson

All

GraphData["CuboctahedralGraph","Graph","All"]//StyleGraphs

Inexact

Select[GraphData["CuboctahedralGraph","Graph","All"],(!FreeQ[GraphEmbedding[#],_?InexactNumberQ]&)]//StyleGraphs

Embedding types

GraphDataEmbeddings[GraphData["CuboctahedralGraph","EdgeList"]]

Default embedding

GraphPlot@GraphData["CuboctahedralGraph","Edges"]

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

v=Join[CirclePoints[4],CirclePoints[{1/2,0},4],CirclePoints[1/4,4]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,4,1,5,2,6,3,7,4,8,1],e[8,9,5,10,6,11,7,12,8],e[9,10,11,12,9]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

v[[{7,12}]]

v=Join[CirclePoints[3],CirclePoints[1/3,6],CirclePoints[{(1/(3(Sqrt[3]))),-Pi/2},3]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[1,2,3,1,5,6,2,7,8,3,9,4,1],e[9,10,4,5],e[5,11,6,7],e[7,12,8,9],e[10,11,12,10]},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph@g

v=Join[CirclePoints[{1,0},8],CirclePoints[1/2,4]];
g=Graph[Range[Length[v]],UndirectedEdge@@@{e[{1,8},1,10,3,11,5,12,7,9,1],e[2,4,6,8,2],e[9,10,11,12,9]},VertexCoordinates->v,VertexLabels->Automatic]

gs=UnlabelGraph/@{,,}

Degenerate

GraphData["CuboctahedralGraph","Graph","Degenerate"]//StyleGraphs

DegenerateGraphEmbeddingTypes/@GraphData["CuboctahedralGraph","Graph","Degenerate"]

Bilateral

GraphData["CuboctahedralGraph","Graph","Bilateral"]//StyleGraphs

Circular

GraphData["CuboctahedralGraph","Graph","Circular"]//StyleGraphs

Planar

GraphData["CuboctahedralGraph","Graph","Planar"]//StyleGraphs

Tutte embeddings

faces=ReverseSort@SymmetricallyDistinctFaces[GraphData["CuboctahedralGraph"]]

Tally[ReverseSort[Length/@faces]]

IGLayoutTutte[GraphData["CuboctahedralGraph"],"OuterFace"->#]&/@faces

gs=Annotate[#,VertexLabels->None]&/@{}

Tutte embedding construction

v={};
g=Graph[Range[Length[v]],UndirectedEdge@@@{},VertexCoordinates->v,VertexLabels->Automatic]

RecognizeGraph[g]

MinimalCrossing

GraphData["CuboctahedralGraph","Graph","MinimalCrossing"]//StyleGraphs

Degenerate

GraphData["CuboctahedralGraph","Graph","Degenerate"]//StyleGraphs

LCF

GraphData["CuboctahedralGraph","LCFSignature"]

GraphData["CuboctahedralGraph","Graph","LCF"]//StyleGraphs

LCFNotation/@%

Tally[%[[All,-1]]]

LCF compute all

Length[FindHamiltonianCycle[GraphData["CuboctahedralGraph"],All][[All,All,1]]]//Timing

Tally[(lcf=LCF[GraphData["CuboctahedralGraph"],All])[[All,2]]]//Timing

DeleteCases[lcf,{_,1}]

LCFGraph@@@DeleteCases[lcf,{_,1}]//StyleGraphs

(gs=Flatten[{
(* all LCF's with order >1, sorted by order and with bilateral graphs first *)
Join[DeleteCases[#,{_Missing,_}][[All,1]],Cases[#,{_Missing,_}][[All,2]]]&/@Map[{BilateralLCFGraph@#,#}&,Map[LCFGraph@@#&,SplitBy[DeleteCases[lcf,{_,1}],Last],{2}],{2}],
(* order-1 bilateral only *)
DeleteMissing[BilateralLCFGraph@@@Cases[lcf,{_,1}]]}])//Timing

Length[gs]

Perspective

GraphData["CuboctahedralGraph","Graph","Perspective"]//StyleGraphs

Projection construction

SkeletonGraph[PolyhedronData["Cuboctahedron","Polyhedron"],#]&/@{1.05,2,3}//StyleGraphs

UnitDistance

GraphData["CuboctahedralGraph","UnitDistance"]

UnitDistanceGraphQ[GraphData["CuboctahedralGraph"],Debug->True]//Timing

GraphData["CuboctahedralGraph","Graph","UnitDistance"]//StyleGraphs

Matchstick

GraphData["CuboctahedralGraph","Matchstick"]

GraphData["CuboctahedralGraph","Graph","Matchstick"]//StyleGraphs

3D default

Graph3D[GraphData["CuboctahedralGraph","Edges"]]

3D All

GraphData["CuboctahedralGraph","Graph",{"3D","All"}]

3D UnitDistance

GraphData["CuboctahedralGraph","Graph",{"3D","UnitDistance"}]

3D Polyhedron

GraphData["CuboctahedralGraph","Polyhedral"]

GraphData["CuboctahedralGraph","Graph",{"3D","Polyhedron"}]

Graphics3D[{FaceForm[Green,Red],GraphData["CuboctahedralGraph","Polyhedron"]}]

3D Canonical

GraphData["CuboctahedralGraph","Graph",{"3D","Canonical"}]

Graphics3D[{Opacity[.5],Red,GraphData["CuboctahedralGraph","Polyhedron","Canonical"],Yellow,Sphere[]}]

3D Canonical construction

Graphics3D[{FaceForm[Green,Red],poly=GraphPolyhedron[GraphData["CuboctahedralGraph"],-1]}]

(can=FindCanonicalPolyhedron[poly,WorkingPrecision->50,MaxIterations->50000,PrecisionGoal->20,"ProgressInterval"->1000,"TangentFactor"->1/10,"PlanarFactor"->1/10,Debug->True])//Timing

SimplePolyhedronQ[can]

Graphics3D[{Opacity[.5],Red,can,Yellow,Sphere[]}]

(lens=Mean/@Split[Sort[PolyhedronEdgeLengths[can]],Abs[#1-#2]<1.*^-10&])//N

v=PolyhedronCoordinates[can];

colors=With[{n=Length[lens]},Table[Hue[i/n],{i,0,n-1}]]

Graphics3D[{Thick,Sequence@@Nearest[Thread[lens->colors],EuclideanDistance@@v[[#]]],Line[v[[#]]]}&/@PolyhedronEdges[can],Boxed->False]

g=PolyhedronGraph[can]

Projections

Manipulate[PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{a,b,c}],{a,-1,1},{b,-1,1},{c,-1,1}]

{7,3,5 (Sqrt[2]),π-ArcTan[((4 (Sqrt[(2/3)]))/3)]}

{.7,.3,.7}/.7

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{7,3,5 (Sqrt[2]),π-ArcTan[((4 (Sqrt[(2/3)]))/3)]},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

FullSimplify[Mean[v[[{1,2,4}]]]-v[[11]]]

π-ArcTan@@(v[[8]]-v[[6]])//FullSimplify

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{a,b,1},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

FullSimplify[Mean[v[[{1,2,4}]]]-v[[11]],a>0&&b>0]

Solve[Thread[%==0],{a,b}]//FullSimplify

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{(7/(5 (Sqrt[2]))),(3/(5 (Sqrt[2]))),1},VertexLabels->"Name"]

{1, 0, ((Sqrt[2])/3)}

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,0,((Sqrt[2])/3),π/2},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,0,.46},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,0,z},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

Solve[FullSimplify[CollinearPoints[v[[{9,1,11}]]],z>0],z]

N[%]

{0,(Sqrt[2]),1}

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,(Sqrt[2]),1},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,.25,.17},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,1,z},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

FullSimplify[Norm[v[[7]]]^2-Norm[v[[8]]]^2,z>0]

Solve[%==0,z]//FullSimplify

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,1,-3/(Sqrt[2])},VertexLabels->"Name"]

{3,5,(Sqrt[2])}

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{3,5,(Sqrt[2]),π/2+ArcTan[(Sqrt[2])]},VertexLabels->"Name"]

v=GraphEmbedding[g];

π-ArcTan@@(v[[4]]-v[[9]])//FullSimplify

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{.575,1,.285},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{a,1,b},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

eqn1=FullSimplify[CollinearPoints[v[[{1,2,7}]]],a>0&&b>0]

eqn2=FullSimplify[SquaredEuclideanDistance@@v[[{1,7}]]-SquaredEuclideanDistance@@v[[{2,7}]],a>0&&b>0]==0

Solve[{eqn1,eqn2},{a,b}]//FullSimplify

N[%]

{1,0,(Sqrt[2]),π/2}

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,0,(Sqrt[2]),π/2},VertexLabels->"Name"]

{0, 0, 1}

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,0,1,π/4},VertexLabels->"Name"]

{0, 1, 0}

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,1,0},VertexLabels->"Name"]

{0, 1, 1}

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{0,1,1},VertexLabels->"Name"]

{1,1,((Sqrt[2])/3)}

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,1,((Sqrt[2])/3),π-ArcTan[(Sqrt[10])]},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

ArcTan@@(v[[6]]-v[[9]])//FullSimplify

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,1,.53},VertexLabels->"Name"]

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,1,a},VertexLabels->"Name"]

v=Lookup[Options[g],VertexCoordinates];

FullSimplify[SquaredEuclideanDistance@@v[[{6,9}]]-SquaredEuclideanDistance@@v[[{8,9}]]/9,a>0]

Solve[%==0,a]//FullSimplify

g=PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,1,((Sqrt[2])/3)},VertexLabels->"Name"]

v=GraphEmbedding[g];

EuclideanDistance@@v[[{6,9}]]//FullSimplify

EuclideanDistance@@v[[{9,12}]]//FullSimplify

EuclideanDistance@@v[[{9,8}]]//FullSimplify

PolyhedronProjectionGraph[PolyhedronData["Cuboctahedron","Polyhedron"],{1,1,((5 (Sqrt[2]))/3)},VertexLabels->"Name"]

Properties

Classes

GraphData[g,"Classes"]

Properties

TableForm[GraphDataTable[g,x],TableDepth->2]//TraditionalForm

Matrices

GraphDataMatrices[g]

Cayley graph generators

GraphData["CuboctahedralGraph","CayleyGraphGeneratingGroupNames"]

FiniteGroupData[{"AlternatingGroup",4},"IsomorphicGroups"]

GraphData["CuboctahedralGraph","CayleyGraphGeneratingGroups"]

UndirectedGraph[CayleyGraph[System`AlternatingGroup[4]]]//RecognizeGraph

UndirectedGraph[CayleyGraph[FiniteGroupData[{"CrystallographicPointGroup",28},"PermutationGroupRepresentation"]]]//RecognizeGraph

GraphData

GraphClassString[g]