Está en la página 1de 2

#MODELO DE PLANEACION AGREGADA

set tiempo; # conjunto de periodos indice t


#PARAMETROS
param
param
param
param
param
param
param
param
param
param
param
param
param
param
param
param
param

cx; #Costo de producir una unidad de familia


cy; #Costo de subcontratar una unidad de familia
ch; #Costo de contratar una persona
cf; #Costo de despedir una persona
cw; #Salario por trabajador
cm; #Costo de Mantener
co; #Costo de oportunidad por venta perdida
invfmax; #Inventario final maximo permitido
tr; #Tiempo requerido por una unidad de familia
d{t in tiempo}>=0; #Pronostico de demanda en el periodo t
capte; #Capacidad de tiempo extra
captr; #capacidad de tiempo regular
invini; # Inventario inicial en el periodo cero
work; #Cantidad de operarios iniciales
ymax{t in tiempo}>=0; #Maximo de unidades a subcontratar
infla{t in tiempo}>=0; #Inflacion pronosticada para los proximos meses
che; #Costo horas extra

#VARIABLES DE DECISION
var
var
var
var
var
var
var
var
var

x{t in tiempo}>=0, integer;


y{t in tiempo}>=0, integer;
invf{t in tiempo}>=0, integer;
h{t in tiempo}>=0, integer;
f{t in tiempo}>=0, integer;
w{t in tiempo}>=0, integer;
hte{t in tiempo}>=0;
htr{t in tiempo}>=0;
venper{t in tiempo}>=0, integer;

#Cantidad a producir
#Cantidad a subcontratar
#Cantidad inventario final
#Numero de personas a contratar
#Numero de personas a despedir
#Numero de empleados
#Horas extra
#Tiempo regular
#Ventas perdidas

#FUNCION OBJETIVO
minimize costo_total: sum {t in tiempo} (infla[t]*x[t]*cx + infla[t]*y[t]*cy + h
[t]*ch + f[t]*cf + w[t]*cw + invf[t]*cm + venper[t]*co + hte[t]*che);
#RESTRICCIONES
subject to r1 {t in tiempo}: invf [t] <= invfmax;
#Inventario final dependiendo de la capacidad maxima de la bodega
subject to r2 {t in tiempo}: x[t]*tr = htr [t] + hte[t];
#Tiempo de produccion
subject to r3 {t in tiempo}: htr[t] = w[t]*captr;
#Horas regulares y capacidad contratada
subject to r4 {t in tiempo}: hte[t] = w[t]*capte;
#Horas extras y capacidad contratada
subject to r5 {t in tiempo}: y[t] <= ymax[t];
#Capacidad maxima de subcontratacion
subject to r6 {t in tiempo:t=1}: invf[1] = venper[1] + invini + x[1] + y[1] - d[
1];
#Inventario final para el periodo 1 y ventas perdidas
subject to r7 {t in tiempo:t>1}: invf[t] = venper[t] + invf[t-1] + x[t] + y[t] d[t];
#Inventario final para el periodo t y ventas perdidas
subject to r8 {t in tiempo:t=1}: w[1] = work + h[1] - f[1];
#Trabajadores en el periodo 1

subject to r9 {t in tiempo:t>1}: w[t] = w[t-1] + h[t] - f[t];


#Trabajadores en el periodo t
#subject to r10 {t in tiempo}: venper[t] < 0.1*d[t];
#subject to r11{t in tiempo}: y[1]>=100;
subject to r12: sum {t in tiempo} he=hte[t];

También podría gustarte