Skip to main content
. Author manuscript; available in PMC: 2013 Sep 16.
Published in final edited form as: Ann Oper Res. 2013 Sep 1;208(1):383–416. doi: 10.1007/s10479-012-1248-5
Algorithm 2 CGRL algorithm.

Input:
Fn={(xl,ul,rl,yl)}l=1n,Lf,Lρ,x0,T
Initialization:
Dn × (T − 1) matrix initialized to zero;
An–dimensional vector initialized to zero;
Bn–dimensional vector initialized to zero;
Computation of the Lipschitz constants {LQN}N=1T:
LQ1=Lρ;
for k = 2 … T do
LQkLρ+LfLQk1;
end for
tT − 2;
while t > −1 do
for i = 1 … n do
   j0arg maxj{1,,n}rjLQTt1yixjX+B(j);
   m0maxj{1,,n}rjLQTt1yixjX+B(j);
  A(i) ← m0;
  D(i, t + 1) ← j0; \\ best tuple at t + 1 if in tuple i at time t
end for
BA;
t = t −1;
end while
Conclusion:
S ← (T + 1)–length vector of actions initialized to zero;
larg maxj{1,,n}rjLQTx0xjX+B(j);
S(T+1)maxj{1,,n}rjLQTx0xjX+B(j); \\ best lower bound
S(1) ← ul; \\ CGRL action for t = 0.
for t = 0 … T − 2 do
l′ ← D(l, t + 1);
S(t + 2,:) ← ul′; other CGRL actions
ll′;
end for
Return: S