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 ii-th port at vv leads to ww, and, at ww, the same edge is its jj-th port. RGR_G is an involution: RG(RG(v,i))=(v,i)R_G(R_G(v,i)) = (v,i).

A rotation map RGR_G is consistent if for every wVw\in V, the incoming port-labels at ww permute [d][d]; equivalently, in the V×d|V|\times d matrix whose (v,i)(v,i)–entry is the vertex-index of RG(v,i)R_G(v,i), each column is a permutation of VV and each port index j[d]j\in[d] 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 GG dGd_G-regular and HH dHd_H-regular, their Cartesian product is GH=(VG×VH,E)G \Box H = (V_G \times V_H, E_{\Box}), where edge ((u,v),(u,v))E((u,v),(u',v'))\in E_{\Box} if either (i) u=uu=u', (v,v)EH(v,v')\in E_H, or (ii) v=vv=v', (u,u)EG(u,u')\in E_G. Every node (u,v)(u,v) has degree dG+dHd_G+d_H. Port indices for (u,v)(u,v) are ordered as 1,,dG1,\ldots,d_G (corresponding to GG-edges, i.e., moving in the GG-factor) and dG+1,,dG+dHd_G+1,\ldots,d_G+d_H (corresponding to HH-edges, i.e., moving in the HH-factor).

3. Construction of the Product Rotation Map

Given consistent rotation maps RGR_G and RHR_H for the factors, the rotation map for the product is defined as

RGH:(VG×VH)×[dG+dH](VG×VH)×[dG+dH]R_{G\Box H}: (V_G \times V_H) \times [d_G+d_H] \to (V_G \times V_H) \times [d_G+d_H]

using addition and lookup rules:

  • For 1idG1\leq i \leq d_G: let (u,i)=RG(u,i)(u',i') = R_G(u,i). Then RGH((u,v),i)=((u,v),i)R_{G\Box H}((u,v),i) = ((u',v), i').
  • For dG+1idG+dHd_G+1 \leq i \leq d_G+d_H: set k=idGk = i-d_G, compute (v,k)=RH(v,k)(v',k') = R_H(v,k). Then RGH((u,v),i)=((u,v),dG+k)R_{G\Box H}((u,v),i) = ((u,v'), d_G + k').

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

4. Routing Algorithm: Local Table Lookup

At each node (u,v)VG×VH(u,v)\in V_G\times V_H, a routing table of length dG+dHd_G+d_H is stored, where entry ii contains the tuple (neighbor,out-port)=RGH((u,v),i)(\text{neighbor},\text{out-port}) = R_{G\Box H}((u,v),i). Upon arrival at (u,v)(u,v), given destination (u,v)(u_*,v_*) and input port iini_\text{in} (or a special marker for initial injection), the router selects an exit port iout[dG+dH]i_\text{out}\in [d_G+d_H] according to some routing policy, such as shortest-path in the product metric or greedy per coordinate. The packet is dispatched via iouti_\text{out}, with arrival information updated to the appropriate in-port label, all using a single table lookup.

Pseudocode for one forwarding step:

1
2
3
4
Input:  current node (u,v), chosen exit‐port i_out ∈ [1..d_G+d_H]
Table_R = table of size (d_G+d_H) at node (u,v)
(neighbor, in_port) = Table_R[i_out]
Send packet to neighbor via local port i_out; set packet.arrival_port = in_port
This enables O(1)O(1) per-hop computation. Table filling is O(VGVH(dG+dH))O(|V_G||V_H|(d_G+d_H)), and local memory per node is O(dG+dH)O(d_G+d_H). Alternatively, if storage is at a premium, the router may compute RGH((u,v),i)R_{G\Box H}((u,v),i) on-the-fly by referencing the factor graph tables at each step, with minor arithmetic overhead.

5. Explicit Example: C4K3C_4 \Box K_3

Consider G=C4G=C_4, the 4-cycle (VG={1,2,3,4}V_G=\{1,2,3,4\}, dG=2d_G=2) and H=K3H=K_3, the triangle (VH={a,b,c}V_H=\{a,b,c\}, dH=2d_H=2), with canonical port assignments.

Rotation maps:

  • RG(1,1)=(2,2)R_G(1,1)=(2,2), RG(1,2)=(4,1)R_G(1,2)=(4,1), and similar for all i{1,2,3,4}i\in\{1,2,3,4\}
  • RH(a,1)=(b,2)R_H(a,1)=(b,2), RH(a,2)=(c,1)R_H(a,2)=(c,1), and so on for all x{a,b,c}x\in\{a,b,c\}

The product C4K3C_4\Box K_3 has 12 vertices (i,x)(i,x). For (1,a)(1,a), port $1$ (G-edge): RG(1,1)=(2,2)    R((1,a),1)=((2,a),2)R_G(1,1)=(2,2)\implies R_{□}((1,a),1)=((2,a),2). For port $3$ (k=1k=1): RH(a,1)=(b,2)    R((1,a),3)=((1,b),4)R_H(a,1)=(b,2)\implies R_{□}((1,a),3)=((1,b),4). Completing all 12×412\times 4 entries defines the full router table.

A packet routed greedily from (1,a)(1,a) to (4,c)(4,c) via “move in GG until i=4i=4, then adjust in HH” might traverse (1,a)1(2,a)1(3,a)1(4,a)3(4,c)(1,a)\xrightarrow{1}(2,a)\xrightarrow{1}(3,a)\xrightarrow{1}(4,a)\xrightarrow{3}(4,c), using only local table lookups.

6. Computational Complexity and Storage Considerations

  • Precomputation: O(VGVH(dG+dH))O(|V_G||V_H|(d_G+d_H)) for all table entries.
  • Per-node memory: O(dG+dH)O(d_G+d_H) (each stores (neighbor,port)(\text{neighbor},\text{port}) per local port).
  • Overall memory: O(VGVH(dG+dH))O(|V_G||V_H|(d_G+d_H)).
  • Per-hop route selection: O(1)O(1) 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.