Description
An optimal schedule for hiring, firing, producing and storing of a commodity is desired for the completion of a large delivery contract. This formulation is slightly different from the one in the book. The period number 6 has been eliminated and the salary on firing has been added to the 5th period (all workers are fired by the end of period 5). The implicit relationship w("5") = f("6") holds.
Small Model of Type : LP
Category : GAMS Model library
Main file : jobt.gms
$title On-the-Job Training (JOBT,SEQ=5)
$onText
An optimal schedule for hiring, firing, producing and storing of a
commodity is desired for the completion of a large delivery contract.
This formulation is slightly different from the one in the book. The
period number 6 has been eliminated and the salary on firing has
been added to the 5th period (all workers are fired by the end of
period 5). The implicit relationship w("5") = f("6") holds.
Dantzig, G B, Chapter 3.7. In Linear Programming and Extensions.
Princeton University Press, Princeton, New Jersey, 1963.
Keywords: linear programming, scheduling, production planning, manpower planning
$offText
Set t 'time periods (weeks)' / 1*5 /;
Scalar
rho 'worker productivity (units per worker)' / 8 /
alpha 'trainer capability (workers per trainer)' / 6 /
wage 'worker wages ($ per week per worker)' / 100 /;
Parameter
si(t) 'initial stock of goods (units)' / 1 10 /
wi(t) 'initial number of workers (workers)' / 1 20 /
sf(t) 'salary on firing ( $ )' / 5 100 /
d(t) 'demand schedule (units)' / 1 100, 2 200, 3 300,4 400, 5 200 /;
Positive Variable
p(t) 'production level in period t (units)'
s(t) 'goods stored in period t (units)'
u(t) 'unmet demand in period t (units)'
w(t) 'total potential productive workers (workers)'
h(t) 'workers hired (workers)'
f(t) 'workers fired (workers)';
Free Variable phi 'total cost ($)';
Equation
cb(t) 'commodity balance (units)'
wb(t) 'worker balance - between periods (workers)'
wd(t) 'worker balance - job differentiation (workers)'
obj 'objective function ($)';
cb(t).. s(t) =e= s(t-1) + p(t) - d(t) - u(t-1) + u(t) + si(t);
wb(t).. w(t) =e= w(t-1) - f(t) + h(t) + wi(t);
wd(t).. w(t) =g= p(t)/rho + (1 + 1/alpha)*h(t);
obj.. phi =e= sum(t, 10*s(t) + 30*u(t) + (wage + sf(t))*w(t));
Model jobs 'job training model' / all /;
solve jobs minimizing phi using lp;