Papers
Topics
Authors
Recent
Search
2000 character limit reached

Cartesian Product Router

Updated 19 February 2026
  • Cartesian Product Router is a decentralized routing protocol that applies canonical addition and lookup rules to construct local routing in Cartesian product graphs.
  • It leverages consistent rotation maps from factor graphs, ensuring constant-time (O(1)) per-hop forwarding and minimal local state.
  • The approach reduces computational complexity and storage needs, making it ideal for implementing efficient routing in distributed network systems.

A Cartesian Product Router is a constructive protocol for local routing in the Cartesian product of regular graphs by leveraging consistent rotation maps on the factor graphs. The approach directly specifies, via canonical addition and lookup rules, how to realize a consistent rotation map on the product graph from given factor rotation maps; the result is a decentralized routing mechanism with constant-time forwarding and strictly local state, guaranteeing correctness and minimizing per-hop computational complexity (Alexander, 2021).

1. Formalism: Regular Graphs and Consistent Rotation Maps

Let G=(V,E)G=(V,E) be a dd-regular undirected graph, meaning every vVv\in V has degG(v)=d\deg_G(v)=d, and H=(VH,EH)H=(V_H, E_H) be dHd_H-regular. Assign to each vertex a canonical port ordering, [d]={1,2,,d}[d] = \{1,2,\ldots,d\}. A rotation map of GG is a function RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d], where RG(v,i)=(w,j)R_G(v,i) = (w,j) if the dd0-th port at dd1 leads to dd2, and, at dd3, the same edge is its dd4-th port. dd5 is an involution: dd6.

A rotation map dd7 is consistent if for every dd8, the incoming port-labels at dd9 permute vVv\in V0; equivalently, in the vVv\in V1 matrix whose vVv\in V2–entry is the vertex-index of vVv\in V3, each column is a permutation of vVv\in V4 and each port index vVv\in V5 appears exactly once per column. This constructs canonical local edge-labelings that yield well-behaved local forwarding.

2. Structure of the Cartesian Product and Port Indexation

Given vVv\in V6 vVv\in V7-regular and vVv\in V8 vVv\in V9-regular, their Cartesian product is degG(v)=d\deg_G(v)=d0, where edge degG(v)=d\deg_G(v)=d1 if either (i) degG(v)=d\deg_G(v)=d2, degG(v)=d\deg_G(v)=d3, or (ii) degG(v)=d\deg_G(v)=d4, degG(v)=d\deg_G(v)=d5. Every node degG(v)=d\deg_G(v)=d6 has degree degG(v)=d\deg_G(v)=d7. Port indices for degG(v)=d\deg_G(v)=d8 are ordered as degG(v)=d\deg_G(v)=d9 (corresponding to H=(VH,EH)H=(V_H, E_H)0-edges, i.e., moving in the H=(VH,EH)H=(V_H, E_H)1-factor) and H=(VH,EH)H=(V_H, E_H)2 (corresponding to H=(VH,EH)H=(V_H, E_H)3-edges, i.e., moving in the H=(VH,EH)H=(V_H, E_H)4-factor).

3. Construction of the Product Rotation Map

Given consistent rotation maps H=(VH,EH)H=(V_H, E_H)5 and H=(VH,EH)H=(V_H, E_H)6 for the factors, the rotation map for the product is defined as

H=(VH,EH)H=(V_H, E_H)7

using addition and lookup rules:

  • For H=(VH,EH)H=(V_H, E_H)8: let H=(VH,EH)H=(V_H, E_H)9. Then dHd_H0.
  • For dHd_H1: set dHd_H2, compute dHd_H3. Then dHd_H4.

Each such mapping is an involution and preserves consistency because the factor maps are consistent; incoming dHd_H5-ports (resp. dHd_H6-ports) at the product nodes always exhaust their proper local index sets.

4. Routing Algorithm: Local Table Lookup

At each node dHd_H7, a routing table of length dHd_H8 is stored, where entry dHd_H9 contains the tuple [d]={1,2,,d}[d] = \{1,2,\ldots,d\}0. Upon arrival at [d]={1,2,,d}[d] = \{1,2,\ldots,d\}1, given destination [d]={1,2,,d}[d] = \{1,2,\ldots,d\}2 and input port [d]={1,2,,d}[d] = \{1,2,\ldots,d\}3 (or a special marker for initial injection), the router selects an exit port [d]={1,2,,d}[d] = \{1,2,\ldots,d\}4 according to some routing policy, such as shortest-path in the product metric or greedy per coordinate. The packet is dispatched via [d]={1,2,,d}[d] = \{1,2,\ldots,d\}5, with arrival information updated to the appropriate in-port label, all using a single table lookup.

Pseudocode for one forwarding step: dd03 This enables [d]={1,2,,d}[d] = \{1,2,\ldots,d\}6 per-hop computation. Table filling is [d]={1,2,,d}[d] = \{1,2,\ldots,d\}7, and local memory per node is [d]={1,2,,d}[d] = \{1,2,\ldots,d\}8. Alternatively, if storage is at a premium, the router may compute [d]={1,2,,d}[d] = \{1,2,\ldots,d\}9 on-the-fly by referencing the factor graph tables at each step, with minor arithmetic overhead.

5. Explicit Example: GG0

Consider GG1, the 4-cycle (GG2, GG3) and GG4, the triangle (GG5, GG6), with canonical port assignments.

Rotation maps:

  • GG7, GG8, and similar for all GG9
  • RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]0, RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]1, and so on for all RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]2

The product RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]3 has 12 vertices RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]4. For RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]5, port RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]6 (G-edge): RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]7. For port RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]8 (RG:V×[d]V×[d]R_G : V \times [d] \to V \times [d]9): RG(v,i)=(w,j)R_G(v,i) = (w,j)0. Completing all RG(v,i)=(w,j)R_G(v,i) = (w,j)1 entries defines the full router table.

A packet routed greedily from RG(v,i)=(w,j)R_G(v,i) = (w,j)2 to RG(v,i)=(w,j)R_G(v,i) = (w,j)3 via “move in RG(v,i)=(w,j)R_G(v,i) = (w,j)4 until RG(v,i)=(w,j)R_G(v,i) = (w,j)5, then adjust in RG(v,i)=(w,j)R_G(v,i) = (w,j)6” might traverse RG(v,i)=(w,j)R_G(v,i) = (w,j)7, using only local table lookups.

6. Computational Complexity and Storage Considerations

  • Precomputation: RG(v,i)=(w,j)R_G(v,i) = (w,j)8 for all table entries.
  • Per-node memory: RG(v,i)=(w,j)R_G(v,i) = (w,j)9 (each stores dd00 per local port).
  • Overall memory: dd01.
  • Per-hop route selection: dd02 lookup.
  • Trade-off: storing the complete table yields fastest forwarding at the cost of linear space; dynamically computing via the smaller factor tables requires minor arithmetic but less memory.

7. Summary and Significance

The Cartesian Product Router synthesizes efficient, local, and scalable routing protocols for product networks by composition of consistent rotation maps on factor graphs. The methodology is purely combinatorial and exploits the involutive, label-preserving structure of rotation maps. Direct applications arise in communication networks, parallel processor topologies, and any distributed system naturally modeled by graph products. The protocol guarantees correctness and minimal computational overhead for routing decisions on the product space, provided the factor rotations are given and consistent (Alexander, 2021).

Definition Search Book Streamline Icon: https://streamlinehq.com
References (1)

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to Cartesian Product Router.