Decision-Review-System (DRS) optimizer

This program implements DRS optimizer to minimize sphere function.
11 download
Aggiornato 19 ott 2025

Visualizza la licenza

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.

Cita come

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

Compatibilità della release di MATLAB
Creato con R2025b
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS Linux

DRS

Versione Pubblicato Note della release
1.0.0