2
#MODELO DE PLANEACION AGREGADA set tiempo; # conjunto de periodos indice t #PARAMETROS param cx; #Costo de producir una unidad de familia param cy; #Costo de subcontratar una unidad de familia param ch; #Costo de contratar una persona param cf; #Costo de despedir una persona param cw; #Salario por trabajador param cm; #Costo de Mantener param co; #Costo de oportunidad por venta perdida param invfmax; #Inventario final maximo permitido param tr; #Tiempo requerido por una unidad de familia param d{t in tiempo}>=0; #Pronostico de demanda en el periodo t param capte; #Capacidad de tiempo extra param captr; #capacidad de tiempo regular param invini; # Inventario inicial en el periodo cero param work; #Cantidad de operarios iniciales param ymax{t in tiempo}>=0; #Maximo de unidades a subcontratar param infla{t in tiempo}>=0; #Inflacion pronosticada para los proximos meses param che; #Costo horas extra #VARIABLES DE DECISION var x{t in tiempo}>=0, integer; #Cantidad a producir var y{t in tiempo}>=0, integer; #Cantidad a subcontratar var invf{t in tiempo}>=0, integer; #Cantidad inventario final var h{t in tiempo}>=0, integer; #Numero de personas a contratar var f{t in tiempo}>=0, integer; #Numero de personas a despedir var w{t in tiempo}>=0, integer; #Numero de empleados var hte{t in tiempo}>=0; #Horas extra var htr{t in tiempo}>=0; #Tiempo regular var venper{t in tiempo}>=0, integer; #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

Model pa

Embed Size (px)

DESCRIPTION

Model pa

Citation preview

Page 1: Model pa

#MODELO DE PLANEACION AGREGADA

set tiempo; # conjunto de periodos indice t

#PARAMETROS

param cx; #Costo de producir una unidad de familiaparam cy; #Costo de subcontratar una unidad de familiaparam ch; #Costo de contratar una personaparam cf; #Costo de despedir una personaparam cw; #Salario por trabajadorparam cm; #Costo de Mantenerparam co; #Costo de oportunidad por venta perdidaparam invfmax; #Inventario final maximo permitidoparam tr; #Tiempo requerido por una unidad de familiaparam d{t in tiempo}>=0; #Pronostico de demanda en el periodo tparam capte; #Capacidad de tiempo extraparam captr; #capacidad de tiempo regularparam invini; # Inventario inicial en el periodo ceroparam work; #Cantidad de operarios inicialesparam ymax{t in tiempo}>=0; #Maximo de unidades a subcontratarparam infla{t in tiempo}>=0; #Inflacion pronosticada para los proximos mesesparam che; #Costo horas extra

#VARIABLES DE DECISION

var x{t in tiempo}>=0, integer; #Cantidad a producirvar y{t in tiempo}>=0, integer; #Cantidad a subcontratarvar invf{t in tiempo}>=0, integer; #Cantidad inventario finalvar h{t in tiempo}>=0, integer; #Numero de personas a contratarvar f{t in tiempo}>=0, integer; #Numero de personas a despedirvar w{t in tiempo}>=0, integer; #Numero de empleadosvar hte{t in tiempo}>=0; #Horas extravar htr{t in tiempo}>=0; #Tiempo regular var venper{t in tiempo}>=0, integer; #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 bodegasubject to r2 {t in tiempo}: x[t]*tr = htr [t] + hte[t]; #Tiempo de produccionsubject to r3 {t in tiempo}: htr[t] = w[t]*captr;#Horas regulares y capacidad contratadasubject to r4 {t in tiempo}: hte[t] = w[t]*capte; #Horas extras y capacidad contratadasubject 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 perdidassubject 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 perdidassubject to r8 {t in tiempo:t=1}: w[1] = work + h[1] - f[1];#Trabajadores en el periodo 1

Page 2: Model pa

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];