Direct Discrete Optimization

Skip the Continuous Detour

Projection works well but takes a continuous-phase detour. Direct discrete optimization works natively in MB\mathcal{M}_B, potentially saving compute and recovering the small multi-user penalty of Section 8.2. The workhorse method is discrete BCD: update one Ο•n\phi_n at a time by choosing the best level from ΘB\Theta_B. This reduces to solving an LL-way discrete optimization per coordinate β€” trivial at L≀16L \leq 16. For very small NN (≀16\leq 16), branch-and-bound gives provable global optima. For very large NN with tight pilot budget, tabu search and simulated annealing serve as escape heuristics.

Discrete Block Coordinate Descent

Complexity: O(Sβ‹…Lβ‹…N2)=O(SN2)O(S \cdot L \cdot N^2) = O(S N^2) for LL-level grid; S∼5S \sim 5-1010 sweeps.
Input: PSD A∈CNΓ—N\mathbf{A} \in \mathbb{C}^{N \times N}, bit-depth BB, initial Ο•(0)∈MB\boldsymbol{\phi}^{(0)} \in \mathcal{M}_B,
tolerance ϡ\epsilon, max sweeps Smax⁑S_{\max}.
Output: local discrete optimum Ο•β‹†βˆˆMB\boldsymbol{\phi}^\star \in \mathcal{M}_B.
1. For s=0,1,…,Smax⁑s = 0, 1, \ldots, S_{\max}:
2. \quad For n=1,…,Nn = 1, \ldots, N:
3. \quad\quad Compute Ξ±n=βˆ‘mβ‰ nAn,mβˆ—Ο•mβˆ—\alpha_n = \sum_{m \neq n} A_{n,m}^* \phi_m^*.
4. \quad\quad For each Ο‘βˆˆΞ˜B\vartheta \in \Theta_B:
5. \quad\quad\quad Evaluate Ο•n=ejΟ‘\phi_n = e^{j\vartheta}; compute objective contribution
β„œ(Ο•nΞ±n)=∣αn∣cos⁑(Ο‘+arg⁑αn)\Re(\phi_n \alpha_n) = |\alpha_n|\cos(\vartheta + \arg\alpha_n).
6. \quad\quad Pick ϑ⋆=arg⁑maxβ‘Ο‘βˆˆΞ˜B\vartheta^\star = \arg\max_{\vartheta \in \Theta_B}; update Ο•n←ejϑ⋆\phi_n \leftarrow e^{j\vartheta^\star}.
7. \quad If no Ο•n\phi_n changed: break.
8. return Ο•\boldsymbol{\phi}.

Step 5 is a closed-form maximization of a cosine over LL points; in fact, ϑ⋆\vartheta^\star is the nearest grid point to βˆ’arg⁑αn-\arg \alpha_n. So the discrete BCD update is simply "continuous BCD result projected to the nearest grid level" β€” identical in the single-user case to Section 8.2.

Discrete BCD = Projected Continuous BCD

The closed-form continuous-BCD update is Ο•n⋆=ejarg⁑αn\phi_n^\star = e^{j\arg\alpha_n}. The discrete-BCD update is Ο•n⋆=ejPΘB(arg⁑αn)\phi_n^\star = e^{j \mathcal{P}_{\Theta_B}(\arg\alpha_n)}. For single-user (where one full continuous sweep already reaches the global optimum), this is just projection of the continuous sweep's output β€” no different from Section 8.2. Discrete BCD yields benefits over projection only in multi-user scenarios where multiple continuous-BCD sweeps are needed and the coupling between coordinates evolves across sweeps β€” the discrete update at sweep ss uses the already-quantized phases from the previous coordinate, not continuous values. This tracks the discrete feasibility at every step and recovers ∼0.1\sim 0.1-0.5Β dB0.5\text{ dB} relative to projection-after-convergence.

Theorem: Monotone Convergence of Discrete BCD

Discrete BCD produces a monotone non-decreasing sequence of objective values f(Ο•(s))f(\boldsymbol{\phi}^{(s)}). Since MB\mathcal{M}_B is finite and the iterates visit at most ∣MB∣=LN|\mathcal{M}_B| = L^N distinct points, the algorithm terminates in at most LNL^N iterations. In practice, 3-10 sweeps suffice for Ο΅=10βˆ’3\epsilon = 10^{-3} convergence.

At termination, the output is a coordinate-stationary point: no single-element update can improve the objective.

Same monotonicity argument as continuous BCD (Chapter 6), adapted to finite MB\mathcal{M}_B. Each coordinate update picks the best discrete level, so the objective is non-decreasing. Since MB\mathcal{M}_B has finitely many points and the objective is bounded, the sequence must eventually stabilize.

Branch-and-Bound for Small NN

Complexity: O(LN)O(L^N) worst case; O(LNβ‹…boundΒ overhead)O(L^N \cdot \text{bound overhead}) typical but much faster with good bounds.
Input: A\mathbf{A}, bit-depth BB, current best f⋆f^\star.
Output: global optimum (for small NN).
Branch-and-bound traverses the tree of partial solutions:
1. Root: no phases fixed. Upper bound via SDR relaxation on MB\mathcal{M}_B continuous relaxation.
2. Branch on element nn: try all L=2BL = 2^B values of Ο•n∈{ejkΔθ}k=0Lβˆ’1\phi_n \in \{e^{j k \Delta\theta}\}_{k=0}^{L-1}, recurse.
3. Bound: at each node, compute the SDR upper bound for the remaining free phases.
Prune if the bound << current best f⋆f^\star.
4. Leaf: all phases fixed. Update f⋆f^\star if objective exceeds it.

Feasible for N≀20N \leq 20 or so in practice. The SDR upper bound at each node is the workhorse β€” it prunes most branches, giving orders-of-magnitude speedup over naive exhaustive search.

Example: Discrete BCD for a N=4N = 4, B=2B = 2 Problem

For A=ccH\mathbf{A} = \mathbf{c}\mathbf{c}^H with c=[1,ejΟ€/4,j,βˆ’1]T\mathbf{c} = [1, e^{j\pi/4}, j, -1]^T, initialize Ο•(0)=1\boldsymbol{\phi}^{(0)} = \mathbf{1} and perform one discrete BCD sweep with B=2B = 2 (Θ2={0,Ο€/2,Ο€,3Ο€/2}\Theta_2 = \{0, \pi/2, \pi, 3\pi/2\}).

Discrete BCD vs. Projection

Compare discrete BCD and projection (with refinement) for the multi-user passive subproblem. At small KK the two coincide; at Kβ‰₯4K \geq 4 discrete BCD recovers a small edge by tracking quantized coordinates during the iteration.

Parameters
64
4
2
30

Discrete BCD: Rotating Through Phase Levels

Animation of one discrete-BCD sweep for N=8,B=2N = 8, B = 2. Each element tries all 4 phase levels and picks the best; the chosen level is highlighted. After one full sweep, all phases have converged to their near-optimal grid points.

Common Mistake: Don't Over-Engineer: Projection Is Usually Enough

Mistake:

"I need the absolute best discrete solution, so I'll use branch-and-bound with SDR bounds."

Correction:

For most RIS problems (Nβ‰₯16,K≀8,Bβ‰₯2N \geq 16, K \leq 8, B \geq 2), projection and discrete BCD produce essentially the same answer β€” within 0.10.1-0.5Β dB0.5\text{ dB} of each other. Branch-and-bound is only worth the complexity for very small NN (research comparison studies). In deployment, projection-then-refine is the pragmatic choice: 99% of the quality at 1% of the compute.