Vous êtes sur la page 1sur 9

MODELO

MAXMEAN
MIP
Desarrollado por Allan Peñafiel Mera.
Curso de optimización combinatoria y grafos.
Julio 2010
INTRODUCCION
El modelo MAXMEAN es un modelo de diversidad máxima que no sólo permite encontrar el
subconjunto de nodos que maximiza la diversidad. Si no que también encuentra cual es el número
de nodos que deben seleccionarse para maximizar la diversidad.

A diferencia de otros modelos de diversidad máxima en los que el usuario ingresa el número de
nodos existentes y el número que nodos que desea seleccionar para que luego por medio un
software de optimización diga cuales se deben seleccionar para obtener la mayor diversidad. En el
modelo MAXMEAN el usuario no ingresa el número de nodos a seleccionar, es el programa de
optimización quien dice cuantos nodos debe seleccionar para obtener la máxima dispersión.

En nuestro trabajo analizaremos la


diferencia de los resultados que genera el
modelo MAXMEAN si los pesos d(i,j)
están mezclados, es decir que haya
pesos positivos y negativos en la misma
tabla. O si son todos positivos o todos
negativos. A los cuales llamaremos
CASO1, CASO2 Y CASO3
respectivamente.

El modelo MAXMEAN inicialmente se lo


plateo como un problema tipo MINLP
pero este trabajo se lo ha convertido a
MIP. El modelo MAXMEAN como MIP
queda de la siguiente forma:
METODO DE TRABAJO
Para revolver el problema de optimización se utiliza el programa GAMS. La programación realizada
en GAMS se detallará más adelante en otra sección.

Lo primero que hay que hacer es generara aleatoriamente una tabla de pesos, lo cual se realiza
directamente en GAMS. Luego con la finalidad de poder comparar cuales son las diferencias en los
resultados de todos los casos vamos a utilizar los mismos valores pero todos positivos en el CASO2
y todos negativos en el CASO3.

Luego dentro del mismo programa detallaremos todas las variables y restricciones para cada uno de
los casos. Al final cuando el programa nos entregue los resultados podremos ver claramente cuál es
la diferencia entre los distintos casos.

Cabe aclarar que en el CASO1 cuando las distancias son positivas y negativas, no representan
distancias euclidianas por lo que no se las puede representar gráficamente en el plano. Y si
usaremos algún tipo de gráfica no nos ayudaría realmente a llegar a alguna conclusión por el hecho
de que los pesos entre los nodos no representa una distancia. Es por eso que para los tres casos
nos enfocaremos en hacer un análisis de los resultados.

Finalmente realizaremos el proceso de selección de los nodos para cinco instancias diferentes y en
cada instancia los pesos de las aristas tomaran valores distintos. Con esto se visualizara ligeramente
las tendencias de las variables.
PROGRAMACION EN GAMS
option optcr=0;
SETS
i nodos /1*21/
ALIAS (i,j)
SCALAR U /1/;
PARAMETER
D1(i,j) CASO I POSITIVO NEGATIVO;
D1(i,j)$(ord(i)<ord(j))=10-20*Uniform(0,1);
D1(i,j)$(ord(i)>ord(j))=D1(j,i);

PARAMETER
D2(i,j) CASO II POSITIVO;
D2(i,j)=ABS(D1(i,j));

PARAMETER
D3(i,j) CASO III NEGATIVOS;
D3(i,j)=-1*ABS(D1(i,j));

VARIABLE
F1,Z1(i,j),W1(i),Y1,X1(i),
F2,Z2(i,j),W2(i),Y2,X2(i),
F3,Z3(i,j),W3(i),Y3,X3(i);
BINARY VARIABLES X1,X2,X3;
POSITIVE VARIABLES Z1,Z2,Z3,Y1,Y2,Y3,W1,W2,W3;

EQUATION
*CASO I
OBJ1,C1RST1(i,j),C1RST2(i,j),C1RST3(i,j),C1RST4,C1RST5(i),C1RST6(i),C1RST7(i),C1RST8,C1RST10
(i,j)
*CASO II
OBJ2,C2RST1(i,j),C2RST2(i,j),C2RST3(i,j),C2RST4,C2RST5(i),C2RST6(i),C2RST7(i),C2RST8,C2RST10
(i,j)
*CASO III
OBJ3,C3RST1(i,j),C3RST2(i,j),C3RST3(i,j),C3RST4,C3RST5(i),C3RST6(i),C3RST7(i),C3RST8,C3RST10
(i,j);

*CASO I
OBJ1.. F1=E=SUM[(i,j)$(ORD(i) < ORD(j)),D1(i,j)*Z1(i,j)];
C1RST1(i,j)$(ORD(i) < ORD(j)).. Z1(i,j)=G=Y1-U*(2-X1(i)-X1(j));
C1RST2(i,j)$(ORD(i) < ORD(j)).. Z1(i,j)=L=U*X1(i);
C1RST3(i,j)$(ORD(i) < ORD(j)).. Z1(i,j)=L=U*X1(j);

C1RST4.. SUM[i,W1(i)]=E=1;
C1RST5(i).. W1(i)=G=Y1-U*(1-X1(i));
C1RST6(i).. W1(i)=L=Y1;
C1RST7(i).. W1(i)=L=U*X1(i);
C1RST8.. SUM[i,X1(i)]=G=2;
C1RST10(i,j)$(ORD(i) < ORD(j)).. Z1(i,j)=L=Y1;

*CASO II
OBJ2.. F2=E=SUM[(i,j)$(ORD(i) < ORD(j)),D2(i,j)*Z2(i,j)];
C2RST1(i,j)$(ORD(i) < ORD(j)).. Z2(i,j)=G=Y2-U*(2-X2(i)-X2(j));
C2RST2(i,j)$(ORD(i) < ORD(j)).. Z2(i,j)=L=U*X2(i);
C2RST3(i,j)$(ORD(i) < ORD(j)).. Z2(i,j)=L=U*X2(j);

C2RST4.. SUM[i,W2(i)]=E=1;
C2RST5(i).. W2(i)=G=Y2-U*(1-X2(i));
C2RST6(i).. W2(i)=L=Y2;
C2RST7(i).. W2(i)=L=U*X2(i);
C2RST8.. SUM[i,X2(i)]=G=2;
C2RST10(i,j)$(ORD(i) < ORD(j)).. Z2(i,j)=L=Y2;

*CASO III
OBJ3.. F3=E=SUM[(i,j)$(ORD(i) < ORD(j)),D3(i,j)*Z3(i,j)];
C3RST1(i,j)$(ORD(i) < ORD(j)).. Z3(i,j)=G=Y3-U*(2-X3(i)-X3(j));
C3RST2(i,j)$(ORD(i) < ORD(j)).. Z3(i,j)=L=U*X3(i);
C3RST3(i,j)$(ORD(i) < ORD(j)).. Z3(i,j)=L=U*X3(j);

C3RST4.. SUM[i,W3(i)]=E=1;
C3RST5(i).. W3(i)=G=Y3-U*(1-X3(i));
C3RST6(i).. W3(i)=L=Y3;
C3RST7(i).. W3(i)=L=U*X3(i);
C3RST8.. SUM[i,X3(i)]=G=2;
C3RST10(i,j)$(ORD(i) < ORD(j)).. Z3(i,j)=L=Y3;

MODEL CASOI /OBJ1,C1RST1,C1RST2,C1RST3,C1RST4,C1RST5,C1RST6,C1RST7,C1RST8,C1RST10/;


MODEL CASOII /OBJ2,C2RST1,C2RST2,C2RST3,C2RST4,C2RST5,C2RST6,C2RST7,C2RST8,C2RST10/;
MODEL CASOIII /OBJ3,C3RST1,C3RST2,C3RST3,C3RST4,C3RST5,C3RST6,C3RST7,C3RST8,C3RST10/;

SOLVE CASOI MAXIMIZING F1 USING MIP;


SOLVE CASOII MAXIMIZING F2 USING MIP;
SOLVE CASOIII MAXIMIZING F3 USING MIP;

DISPLAY X1.L,X2.L,X3.L,Y1.L,Y2.L,Y3.L,D1,D2,D3;

RESULTADO DE GAMS
A continuación se muestra cuantos y cuales nodos se han seleccionados en una de las 5
repeticiones. Y son los nodos más diversos para cada uno de los casos.

---- 84 VARIABLE X1.L

1 1.000, 5 1.000, 10 1.000, 11 1.000, 14 1.000, 15 1.000


20 1.000, 21 1.000

---- 84 VARIABLE X2.L

1 1.000, 2 1.000, 3 1.000, 4 1.000, 5 1.000, 6 1.000


7 1.000, 8 1.000, 9 1.000, 10 1.000, 11 1.000, 12 1.000
13 1.000, 14 1.000, 15 1.000, 16 1.000, 17 1.000, 18 1.000
19 1.000, 20 1.000, 21 1.000

---- 84 VARIABLE X3.L

12 1.000, 20 1.000

---- 84 VARIABLE Y1.L = 0.125


VARIABLE Y2.L = 0.048
VARIABLE Y3.L = 0.500
RESULTADOS
Para poder ver cuál es el comportamiento del modelo en los tres casos hemos corrido el programa
en cinco ocasiones, y cada vez con distintos valor, así podemos ver algún tipo de comportamiento
en el modelo para los distintos casos.

ITERACION 1 2 3 4 5
TIEMPO 0:01:54 0:02:09 0:02:08 0:01:31 0:03:09
Y CASO1 0,125 0,091 0,2 0,111 0,125
CASO2 0,048 0,048 0,048 0,048 0,048
CASO3 0,5 0,5 0,5 0,5 0,5
NUMERO DE CASO1 8 11 5 9 8
NODOS CASO2 21 21 21 21 21
SELECIONADOS CASO3 2 2 2 2 2
FUNCION CASO1 16,627 14,067 14,666 16,342 12,931
OBJETIVO CASO2 49,444 49,826 46,870 51,191 49,625
CASO3 -0,059 -0,041 -0,025 -0,025 -0,015

GRAFICOS

Con estas pocas repeticiones no se puede inferir para todo el comportamiento del modelos pero si
podemos ver que el tiempo se ubica siempre en un intervalo bastante cerrado.
Aquí es fácil percibir que los nodos que seleccionados en el CASO 1, cuando hay pesos positivos y
negativos, varían dependiendo de los pesos de las aristas.

En estos dos últimos casos (CASO 1 Y CASO 2) vemos que el número de nodos seleccionados es
siempre el mismo para todas las iteraciones, sin importar que valores tomen las aristas. Dicho en
otras palabras, si los pesos de las aristas son todos positivos o todos negativos siempre va a
seleccionar el mismo subconjunto de nodos que maximice la diversidad, según el criterio
MAXMEAN.
CONCLUSIONES

El modelo MAXMEAN no se puede utilizar en todos los casos de diversidad máxima, por lo trivial de
sus resultados. Pero se puede encontrar aplicaciones donde los pesos de las aristas no representen
distancias euclidianas.

Cuando los pesos de las aristas no son todos positivos o todos negativos. Es decir cuando existen
aristas de pesos negativos o positivos se puede utilizar bien este modelo. Porque no indicaría
cuantos y cuales nodos debemos tomar para obtener la máxima diversidad posible. Y el resultado de
siempre estará sujeto al valor de las aristas que unen los nodos.

En cambio cuando todos son positivos el resultado de la optimización dice debemos tomar todos los
nodos y que este es el número de nodos más diversos que se puede agrupar. Es una solución trivial
porque el criterio MAXMEAN hace que se maximice el promedio de todas las distancias existentes,
entonces siempre lo ideal será tomar todos los nodos así el promedio de las distancias será el
mayor. Este caso se puede ejemplificar cuando el problema consiste en encontrar posiciones
geográficas más diversas, porque la distancia física entre ellas siempre es positiva.

Finalmente cuando todos los pesos son negativos el programa nos dice que siempre debemos tomar
dos nodos. Y esto se debe a que por el criterio MAXMEAN que maximiza el promedio de los pesos
de las aristas entre los nodos elegidos y como los pesos de esas aristas son todos negativos;
entonces selecciona la menor cantidad posible de nodos. Y los nodos serán los que la arista que los
une es mayor de todas parejas posibles.

Vous aimerez peut-être aussi