From 2a48b1d4696eaf72c89ec6264a1184494aa057a1 Mon Sep 17 00:00:00 2001 From: Kevin D Date: Sun, 11 Jan 2026 18:50:14 -0800 Subject: [PATCH] parameterized variable gradient ascent step size --- @agent/agent.m | 5 +++++ @agent/initialize.m | 1 + @agent/run.m | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/@agent/agent.m b/@agent/agent.m index c96a73d..51a2304 100644 --- a/@agent/agent.m +++ b/@agent/agent.m @@ -34,6 +34,11 @@ classdef agent plotCommsGeometry = true; end + properties (SetAccess = private, GetAccess = public) + initialStepSize = 0.2; + stepDecayRate = NaN; + end + methods (Access = public) [obj] = initialize(obj, pos, vel, pan, tilt, collisionGeometry, sensorModel, guidanceModel, comRange, index, label); [obj] = run(obj, domain, partitioning, t, index, agents); diff --git a/@agent/initialize.m b/@agent/initialize.m index f269009..5002ab6 100644 --- a/@agent/initialize.m +++ b/@agent/initialize.m @@ -24,6 +24,7 @@ function obj = initialize(obj, pos, vel, pan, tilt, collisionGeometry, sensorMod obj.sensorModel = sensorModel; obj.label = label; obj.plotCommsGeometry = plotCommsGeometry; + obj.stepDecayRate = obj.initialStepSize / maxIter; % Initialize performance vector obj.performance = [0, NaN(1, maxIter), 0]; diff --git a/@agent/run.m b/@agent/run.m index 36354b7..5e48a0f 100644 --- a/@agent/run.m +++ b/@agent/run.m @@ -66,7 +66,7 @@ function obj = run(obj, domain, partitioning, timestepIndex, index, agents) gradC = [(C_delta(2)-C_delta(3))/(2*delta), (C_delta(4)-C_delta(5))/(2*delta), (C_delta(6)-C_delta(7))/(2*delta)]; % Compute scaling factor - targetRate = 0.2 - 0.0008 * timestepIndex; % slow down as you get closer + targetRate = obj.initialStepSize - obj.stepDecayRate * timestepIndex; % slow down as you get closer rateFactor = targetRate / norm(gradC); % Compute unconstrained next position