Decision-Review-System (DRS) optimizer

This program implements DRS optimizer to minimize sphere function.
6 Downloads
Updated 19 Oct 2025

View License

1. Notation and problem statement
We solve the box-constrained minimization problemminxΩf(x),Ω={xRd:  xu},\min_{x\in\Omega} f(x),\qquad \Omega = \{x\in\mathbb{R}^d:\; \ell \le x \le u\},xΩminf(x),Ω={xRd:xu},
where f:RdRf:\mathbb{R}^d\to\mathbb{R}f:RdR is the objective (for example Sphere f(x)=j=1dxj2f(x)=\sum_{j=1}^d x_j^2f(x)=j=1dxj2), ddd is dimension, and ,uRd\ell,u\in\mathbb{R}^d,uRd are lower/upper bounds.
Algorithmic parameters:
  • NNN — population size (agents).
  • TTT — max iterations.
  • RRR — initial reviews per agent.
  • kkk — number of probes per review (local tries).
  • s0s_0s0 — initial exploration step fraction (relative to bounds).
  • ρ(0,1)\rho\in(0,1)ρ(0,1) — review step reduction factor.
  • (Optional) τ\tauτ and ppp — replenishment period and fraction.
Population at iteration ttt:
  • xi(t)Ω,  i=1,,Nx_i^{(t)}\in\Omega,\; i=1,\dots,Nxi(t)Ω,i=1,,N (agent solutions).
  • fi(t)=f(xi(t))f_i^{(t)} = f(x_i^{(t)})fi(t)=f(xi(t)).
  • ri(t){0,1,}r_i^{(t)}\in\{0,1,\dots\}ri(t){0,1,} reviews left for agent iii.
Global best:xt=argminifi(t),ft=minifi(t).x^*_t = \arg\min_{i} f_i^{(t)},\qquad f^*_t = \min_i f_i^{(t)}.xt=argiminfi(t),ft=iminfi(t).
2. Step-size schedule
A decreasing step fraction:s(t)=s0(1tT),t=0,1,,T.s(t) = s_0\cdot\left(1 - \frac{t}{T}\right),\qquad t=0,1,\dots,T.s(t)=s0(1Tt),t=0,1,,T.
Absolute step per coordinate uses the box range Δ=u\Delta = u-\ellΔ=u. A scalar/vector multiplication is elementwise.
3. Candidate proposal (on-field decision)
For agent iii at iteration ttt generate a candidate by Gaussian perturbation:x~i=xi(t)+s(t)Δξ,ξN(0,Id),\tilde{x}_i = x_i^{(t)} + s(t)\,\Delta\odot \xi,\qquad \xi\sim\mathcal{N}(0,I_d),x~i=xi(t)+s(t)Δξ,ξN(0,Id),
then project to bounds:
x~iproj[,u](x~i)(elementwise clamp).\tilde{x}_i \leftarrow \operatorname{proj}_{[\ell,u]}(\tilde{x}_i) \quad(\text{elementwise clamp}).x~iproj[,u](x~i)(elementwise clamp).
Evaluate f~i=f(x~i) \tilde{f}_i = f(\tilde{x}_i)f~i=f(x~i).
Acceptance (standard Metropolis-free greedy):if f~i<fi(t)thenxi(t+1)=x~i,  fi(t+1)=f~i.\text{if }\tilde{f}_i < f_i^{(t)}\quad\text{then}\quad x_i^{(t+1)}=\tilde{x}_i,\; f_i^{(t+1)} = \tilde{f}_i.if f~i<fi(t)thenxi(t+1)=x~i,fi(t+1)=f~i.
If f~i\tilde{f}_if~i improved global best, update xt,ftx_t^*, f_t^*xt,ft.
4. Review mechanism (intensification)
If f~ifi(t)\tilde{f}_i \ge f_i^{(t)}f~ifi(t) (proposal worse) and ri(t)>0r_i^{(t)}>0ri(t)>0, agent uses one review:
  • decrement review: ri(t)ri(t)1r_i^{(t)}\leftarrow r_i^{(t)}-1ri(t)ri(t)1.
  • perform kkk focused probes with reduced step:srev(t)=ρ  s(t),yi,=xi(t)+srev(t)Δζ,ζN(0,Id),s_{\text{rev}}(t) = \rho\;s(t),\qquad y_{i,\ell} = x_i^{(t)} + s_{\text{rev}}(t)\,\Delta\odot \zeta_\ell,\quad \zeta_\ell\sim\mathcal{N}(0,I_d),srev(t)=ρs(t),yi,=xi(t)+srev(t)Δζ,ζN(0,Id),project each yi,y_{i,\ell}yi, into [,u][\ell,u][,u], compute f(yi,)f(y_{i,\ell})f(yi,) for =1,,k\ell=1,\dots,k=1,,k.
  • let (yibest,fibest)=argminf(yi,)(y_i^\text{best}, f_i^\text{best})=\arg\min_{\ell} f(y_{i,\ell})(yibest,fibest)=argminf(yi,).
  • If fibest<fi(t)f_i^\text{best} < f_i^{(t)}fibest<fi(t) accept xi(t+1)=yibestx_i^{(t+1)} = y_i^\text{best}xi(t+1)=yibest, else keep xi(t+1)=xi(t)x_i^{(t+1)}=x_i^{(t)}xi(t+1)=xi(t).
So reviews allow an agent to perform a short, intensified local search to “overturn” a worse on-field decision.
5. No-review case (exploration fallback)
If f~ifi(t)\tilde{f}_i\ge f_i^{(t)}f~ifi(t) and ri(t)=0r_i^{(t)}=0ri(t)=0, perform a small jitter:x^i=xi(t)+γs(t)Δη,ηU([1,1]d),\hat{x}_i = x_i^{(t)} + \gamma\, s(t)\,\Delta\odot \eta,\quad \eta\sim\mathcal{U}([-1,1]^d),x^i=xi(t)+γs(t)Δη,ηU([1,1]d),
with tiny γ\gammaγ (e.g. 0.05). Accept if improves.
6. Replenishment (optional)
Every τ\tauτ iterations, restore reviews to a random subset of agents: choose m=pNm=\lceil pN\rceilm=pN agents and set rjRr_j \leftarrow RrjR for those. This encourages intermittent deep search. In practice τT/5\tau\approx T/5τT/5, p(0,0.3)p\in(0,0.3)p(0,0.3).
7. Projection operator
proj[,u](z)=min(max(z,),u)(elementwise).\operatorname{proj}_{[\ell,u]}(z) = \min(\max(z,\ell),u) \quad \text{(elementwise)}.proj[,u](z)=min(max(z,),u)(elementwise).
8. Termination
Stop after t=Tt=Tt=T or earlier if ftf^*_tft below desired tolerance ϵ\epsilonϵ.
9. Algorithm summary (pseudocode)
For completeness:
  1. Initialize xi(0)+ΔUniform(0,1)dx_i^{(0)}\sim \ell + \Delta\odot\text{Uniform}(0,1)^dxi(0)+ΔUniform(0,1)d, fi(0)f_i^{(0)}fi(0), and ri(0)=Rr_i^{(0)}=Rri(0)=R.
  2. For t=0t=0t=0 to T1T-1T1:
  • compute s(t)s(t)s(t).
  • for each agent iii:
  • propose x~i\tilde{x}_ix~i and f~i\tilde{f}_if~i.
  • if f~i<fi(t)\tilde{f}_i < f_i^{(t)}f~i<fi(t) accept.
  • else if ri(t)>0r_i^{(t)}>0ri(t)>0 use review: run kkk probes with reduced step, accept best probe if improves.
  • else attempt small jitter and accept if improves.
  • optionally replenish some reviews every τ\tauτ iterations.
  • update global best.
  1. Return xTx^*_TxT, fTf^*_TfT.
10. Complexity
Let CfC_fCf be cost per evaluation of fff. Per iteration:
  • baseline proposals: NNN evaluations.
  • reviews: each used review adds up to kkk extra evaluations. If average reviews used per iter is rˉ\bar{r}rˉ, cost per iter (N+rˉk)Cf\approx (N + \bar{r}k)C_f(N+rˉk)Cf.Total cost O(T(N+rˉk)Cf)\mathcal{O}\big(T\,(N + \bar{r}k)\,C_f\big)O(T(N+rˉk)Cf).
11. Behavior & design rationale
  • Greedy acceptance enforces monotone improvement for each agent.
  • Reviews introduce occasional intensified local search (exploitation) but are limited by RRR, preserving exploration.
  • Step schedule s(t)s(t)s(t) reduces step sizes over time for convergence-like behavior.
  • Replenishment injects episodic intensification to escape stagnation.
  • Projection keeps iterates feasible.
12. Parameter recommendations (practical)
  • NNN: 20–100 (40 is a good default for moderate dimensions).
  • TTT: depends on budget — 200–1000 typical.
  • RRR: 1–4 reviews per agent (2 is standard).
The DRS optimization algorithm provides a balance of exploration (standard proposals) and exploitation (review-based local searches) inspired by the cricket DRS process.
It ensures monotonic improvement under greedy acceptance, bounded search space handling, and probabilistic intensification through limited review opportunities.
  • kkk: 3–8 probes per review (4 used in code).
  • s0s_0s0: 0.2–0.6 (0.4 moderate).
  • ρ\rhoρ: 0.3–0.7 (0.5 reduces step notably during reviews).
  • γ\gammaγ (jitter scale): 0.01–0.1.
  • τ\tauτ: T/5T/5T/5, ppp: 0.1–0.25 if using replenishment.
13. Specialization to Sphere
If f(x)=j=1dxj2f(x)=\sum_{j=1}^d x_j^2f(x)=j=1dxj2, the method is derivative-free and will converge because:
  • decreasing step s(t)0s(t)\to 0s(t)0,
  • occasional local probes allow moving toward origin,
  • greedy acceptance ensures nonincreasing per-agent objective.
14. Variants and extensions
  • Replace Gaussian proposal with Lévy or differential moves.
  • Use acceptance with Metropolis probability to allow uphill moves.
  • Maintain an external archive of best samples for crossover.
  • Adaptive reviews: increase RRR for agents achieving large improvements.

Cite As

praveen kumar (2025). Decision-Review-System (DRS) optimizer (https://uk.mathworks.com/matlabcentral/fileexchange/182348-decision-review-system-drs-optimizer), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2025b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

DRS

Version Published Release Notes
1.0.0