You are on page 1of 11

IN3701-1 Modelamiento y Optimizacin.

Informe tarea n 1:
Resolviendo el problema de
Planificacin de Surtido

Curso:

IN3701-1 Modelamiento y Optimizacin

Profesor: Roberto Cominetti C.

Auxiliares: Carlos Bonet.


Cristbal Beltrn.
Diego Fuentealba.
Fernando Navarrete.
Sebastin Morales.
Integrantes: Giselle Donari R.
Heraldo Rozas O.
Fecha: 7 de mayo de 2015.

Introduccin.
En el siguiente informe presentaremos un problema de seleccin de productos el cual se
configura a partir del modelo de eleccin discreta y el modelo de eleccin lgico
multinomial; el cual se expresa como

s.a

Donde denota la utilidad media al seleccionar i (Asumiremos


, representa el
ingreso al vender i, supondremos
; i es un producto
,donde representa el
conjunto de alternativas disponibles
.
A partir de este problema no lineal desarrollaremos un problema linealizado, buscarmos
sus soluciones y lo compararemos con el problema original, los clculos sern realizados
en el lenguaje AMPL de software homnimo.

Tipo de soluciones del problema relajado.


En esta seccin probar que el problema de optimizacin relajado 1 solo admite soluciones
enteras, es decir que si

Sea

es ptimo entonces

el vector que maximiza la funcin en P, supongamos

Dicho z existe pues la funcin continua en el conjunto donde se est estudiando y por lo tanto el
mximo es alcanzado en algn punto de P.

Definiendo 3 conjuntos:
{

Se pueden reagrupar las componentes de z:


(

Donde:

( )

( )

( )

( )

( )

Para analizar el comportamiento de la funcin en el punto z resulta importante estudiar


las derivadas parciales de
en z respecto a las variables
.
Resulta ser que:

{ }

{ }

Un problema de optimizacin definido mediante variables binarias


libre de tomar valores entre 0 y 1, es decir:

se dice relajado si

queda

Como la derivada parcial respecto de


es mayor que cero, se concluye que la funcin
es creciente en la direccin , por lo tanto al crecer
el valor de la funcin objetivo
mejorara.
Dado que
, lo podemos aumentar hasta llegar a
y en tal caso el valor de la
funcin objetivo sera mejor que el actual. Esto es una contradiccin, pues habamos
supuesto que z era el ptimo. Luego se concluye que z no puede ser ptimo.
El procedimiento anterior es general
sea ptimo es que
, es decir:

luego se concluye que la nica manera que z

.
Es decir la solucin sea entera, con esto se concluye la demostracin.

Reformulacin del problema.


A continuacin proceder a reformular el problema de optimizacin no lineal presentado al inicio
mediante cambios de variables y se llevar a un problema de programacin lineal.

Podemos reescribir la funcin objetivo como, la suma expandida


z=

As, si tomamos:

Podemos reescribir la funcin objetivo como:


z=
z=
Queremos obtener el problema de maximizacin, por lo cual reescribiremos las
restricciones del problema original en funcin de nuestra nueva variable
.
Como
:

Pero

reemplazando resulta:

Luego dado que


es una probabilidad de eleccin del producto, es necesario que se
cumpla que la suma de las probabilidades de cada i del universo ms es caso externo
sumen 1.

Las condiciones de no negatividad

resultan directas pues

Dados los cambios de variable el problema resultante es:

s.a

Resolucin del problema [parte c].


En la seccin anterior se reformul el problema de optimizacin no lineal presentado al inicio
mediante cambios de variables y se llev a un problema de programacin lineal. Ahora se
proceder a estudiar las soluciones del PPL, para ello se utilizar el software AMPL.
Para ingresar el modelo al software se necesitan los valores de
, pero como estos parmetros
son desconocidos se definirn mediante una distribucin uniforme entre 0 y 1.
El modelo se resuelve para 4 nmeros distintos de artculos a evaluar en el surtido del negocio, en
particular se considera
{
}. Para cada se resuelve el problema 100 veces,
considerando cada vez valores de
distintos, luego se calcula el promedio de los ptimos al
que se denomina
.
Los resultados para

10
100
1000
10000

Parte d

se resumen en la siguiente tabla:

0.69372
0.89673
0.96596
0.98918

Tabla 1. Valores de ingreso esperado


promedio para distintos valores de n.

Restringiendo el nmero de artculos que puede ofrecer el


minoristas.
Si consideramos que el minorista puede ofrecer un mximo de C productos a cualquier
individuo, la formulacin hecha en la parte b debe ser modificada. Para ello se agregarn
variables binarias, stas sern utilizadas como un contador de los productos elegidos y as
generar una restriccin que acote por C la cantidad de productos que se pueden ofrecer. Para
ello se proceder como se detalla a continuacin:
Partiendo del modelo anteriormente desarrollado:

s.a

Se define una nueva variable:


{
Adems se agrega una nueva restriccin:

Esta nos dice que si en la solucin encontrada;


sea ofrecido.

no est pegada en cero obliga a que el producto

Finalmente se agrega una restriccin para acotar el nmero mximo de productos que se pueden
elegir:

Con sta el mximo de productos que se pueden ofrecer son C.


Con estas modificaciones el modelo resultante es:

s.a

Comparando la solucin del problema con variables binarias versus


el relajado [parte e].
Ahora se proceder a resolver el modelo reformulado en la seccin anterior.
En primera instancia se resolver considerando los
como variables binarias, luego resolver
nuevamente el modelo relajado es decir considerando
. Finalmente se
compararn ambas soluciones tanto en valor, como en el tiempo necesario para la solucin.
Binario:

Valor

tiempo

Valor

tiempo

Valor

tiempo

10

0.6633

0.219

100

0.8690

0.062

0.8619

0.094

0.7831

0.783

1000

0.9639

0.063

0.9639

0.063

0.9607

Mayor a 60 [s]

Tabla 2. Valor de la funcin objetivo y tiempo necesario para la resolucin del problema,
para distintos valores de n y Cn considerando xi como variable binaria.

Relajado:

Valor

tiempo

Valor

tiempo

Valor

tiempo

10

0.747782

0.016

0.478578

0.016

0.191431

0.015

100

0.8690

0.015

0.8690

0.016

0.8690

0.015

1000

0.9639

0.032

0.9639

0.015

0.9639

0.015

Tabla 3. Valor de la funcin objetivo y tiempo necesario para la resolucin del problema,
para distintos valores de n y Cn considerando
.

Conclusiones.

Anexos.
Grficos.
1

0.9

0.8

<Z>n

0.7

0.6

0.5

0.4

100

200

300

400

500

600

700

800

900

1000

1100

Grfico 1. Ingreso previsto promedio en funcin del nmero de artculos que


puede elegir el minorista.

0.9
*

Z
0.8

0.7

Valor

0.6

0.5

0.4

0.3

0.2

0.1

ndice

Grfico 2. Relacin entre Z* con sus respectivos Yi y ri , esto para el caso n=10.
Observacin: Para generar el Grfico 1 y el Grfico 2 se tomaron los datos de las soluciones
entregadas por AMPL y se llevaron a MATLAB, donde se hicieron ambos grficos.

Cdigos en AMPL.
A continuacin se adjuntan los cdigos que fueron utilizados para cada una de las secciones del
informe, stos estn desarrollados en lenguaje AMPL.

Archivo datos.dat

data;
#define el n que se va a considerar al correr el modelo

10

param n:= 100;

Archivo solucion.run

Se define el archivo que guarda el modelo como parteX.mod, donde el X depender de la


parte que se est desarrollando.
model parteX.mod;
data hola.dat;
#itera solucionando el problema una cantidad nruns veces, guardando en
cada iteracin el z ptimo.
for {k in 1..nruns} {
reset data r;
reset data u;
option solver cplex;
option cplex_options 'time=60';
solve;
let optvalue[k] := z;}
#imprime el promedio de los z optimos tras las nruns iteraciones
display (sum {k in 1..nruns} optvalue[k]) / nruns;

Archivo partec.mod

[parte c]

#se definen los parametros


param n;
set indices := 1..n;
param r{i in indices}:= Uniform(0,1);
param u{i in indices}:= Uniform(0,1);
param nruns := 100;
param optvalue {1..nruns};
param g > 0;
# VARIABLES DE DECISION
var y {indices};
var yo ;
# FUNCION OBJETIVO
maximize z : sum {i in indices } r[i]*y[i];
# RESTRICCIONES DEL MODELO
subject
subject
subject
subject

to
to
to
to

R1: sum {i in indices } y[i] + yo=1;


R2 {i in indices}: y[i] <= yo*exp(u[i]);
R3 {i in indices}: y[i] >=0;
R4: yo>=0;

Archivo parteeb.mod

[Parte e binaria]

param n;
set indices := 1..n;
param r{i in indices}:= Uniform(0,1);
param u{i in indices}:= Uniform(0,1);
param nruns := 1;
param C:=(n/10);
param optvalue {1..nruns};
# VARIABLES DE DECISION
var y {indices};
var yo ;
var x {indices} binary;

# FUNCION OBJETIVO
maximize z : sum {i in indices } r[i]*y[i];
# RESTRICCIONES DEL MODELO
subject
subject
subject
subject
subject
subject

to
to
to
to
to
to

R1: sum {i in indices } y[i] + yo=1;


R2 {i in indices}: y[i] <= yo*exp(u[i]);
R3 {i in indices}: y[i] >=0;
R4: yo>=0;
R5: sum{i in indices}x[i]<=C;
R6 {i in indices}: y[i]<=x[i];

Archivo parteer.mod

[parte e relajado]

param n;
set indices := 1..n;
param
param
param
param
param

r{i in indices}:= Uniform(0,1);


u{i in indices}:= Uniform(0,1);
nruns := 1;
C:=(n/10);
optvalue {1..nruns};

# VARIABLES DE DECISION
var y {indices};
var yo ;
var x {indices} ;
# FUNCION OBJETIVO
maximize z : sum {i in indices } r[i]*y[i];
# RESTRICCIONES DEL MODELO
subject to R1 {i in indices}: x[i]>=0;
subject to R2 {i in indices}: x[i]<=1;
subject to R3: sum {i in indices } y[i] + yo=1;
subject to R4 {i in indices}: y[i] <= yo*exp(u[i]);
subject to R5 {i in indices}: y[i] >=0;
subject to R6: yo>=0;
subject to R7: sum{i in indices} x[i]<=C;
subject to R8 {i in indices}: y[i]<=x[i];

Observaciones:

En [parte c] para generar la tabla 1 de los valores de ingreso esperado promedio para

distintos valores de n se utiliz el modelo partec.mod y adems para cada n se fue


modificando el archivo datos.dat y actualizando n=10 100 1000 1000.
Para generar la tabla 2 y 3 se utiliz el archivo parteeb.mod y parteer.mod
respectivamente. Adems en el modelo se fue modificando el valor de C de
acuerdo a como se especifica en la tabla y en datos.dat se fue actualizando el valor
de n = 10 100 1000.

You might also like