You are on page 1of 25

COMPARACIÓN ENTRE

MODELOS DE DIVERSIDAD
MÁXIMA

Allan Peñafiel & Jorge Morales

4 de Julio de 2010
Contenido
RESUMEN ...................................................................................................................................... 3
INTRODUCCION ............................................................................................................................. 4
PROBLEMA................................................................................................................................. 4
RESOLUCION .............................................................................................................................. 4
MODELOS .................................................................................................................................. 5
ESTRATEGIA DE TRABAJO ........................................................................................................... 6
SOFTWARE UTLIZADO .................................................................................................................... 7
GAMS......................................................................................................................................... 7
Mathematica ............................................................................................................................. 9
COMPARACION ENTRE MODELOS ................................................................................................ 11
COMPARACION DE NODOS SELECIONADOS.............................................................................. 11
COMPARACION DE FUNCIONES OBJETIVO Y TIEMPOS DE CORRIDA .......................................... 13
FUNCION OBJETIVO.............................................................................................................. 13
TIEMPOS DE CORRIDA .......................................................................................................... 13
GRÁFICOS DE LA FUNCIÓN OBJETIVO ................................................................................... 14
GRAFICO DEL TIEMPO DE CORRIDA ...................................................................................... 15
PROGRAMACION ......................................................................................................................... 17
PARA GENERAR LAS GRAFICAS ................................................................................................. 17
Mathematicas. ..................................................................................................................... 17
GAMS ................................................................................................................................... 18
PARA GENERAR LOS TIEMPOS DE CORRIDAD Y LAS FUNCIONES OBJETIVO ............................... 21
GAMS ................................................................................................................................... 21
CONCLUSIONES............................................................................................................................ 24
ANEXO ......................................................................................................................................... 25
MAXMEAN ............................................................................................................................... 25

2
Resumen Peñafiel&Morales

RESUMEN

Este trabajo trata de resolver el problema de seleccionar los m nodos más diversos de un grupo total
de n nodo. Se presentan varios criterios para medir la diversidad entre los nodos seleccionados y se
crean modelos matemáticas con fin de poder ingresar el problema en un software de optimización.

Los software que se utilizan para resolver el problema de diversidad máxima son: GAMS y
Mathematicas. GAMS se utiliza para resolver el problema optimización y para generar valores
aleatorios. Mientras que Mathematicas se utiliza para generar valores aleatorios y graficar los nodos
seleccionados en un plano. Los programas se utilizan de forma interactiva. GAMS genera los
resultados óptimos y Mathematica los grafica.

Una vez hallados los nodos con la máxima diversidad de cada modelo y se los haya graficado se
puede ver claramente qué modelos nos dan mayor diversidad y cuáles son las principales
diferencias entre ellos. Esto nos ayuda a facilitar la selección de modelos que cumplan los
requerimientos que necesitamos. También se analiza la función objetivo de cada modelo, resultada
de la optimización en diferentes repeticiones. Con las diferentes repeticiones se puede ver el
comportamiento de la función objetivo.

Otro dato que se puede apreciar en las distintas repeticiones es el tiempo que se demora cada
modelo en seleccionar los nodos más diversos. Esto es muy útil porque nos ayuda a ver qué modelo
se demora menos en encontrar el óptimo. Utilizando la información del tiempo y viendo en la grafica
donde se dibujan los nodos, podremos seleccionar el modelo más eficiente.

Finalmente se presenta la codificación en GAMS y Mathematicas que se utilizó para realizar este
trabajo.

3
Introducción Peñafiel&Morales

INTRODUCCION

PROBLEMA

Dados un conjunto V = {1,2,3,..,n} de nodos y se desea seleccionar m de ellos, talque sean


los más diversos posibles. Considere Di,j como el valor de la arista que une el nodo i con el nodo j y
V = {1,2,3,..,m} el conjunto de los m nodos seleccionados. |M|=m

Cuando los nodos representan puntos en el plano cartesiano a D se la puede llamar distancia,
porque siempre será un valor positivo que represente la distancia euclidiana entre ambos puntos.
También puede darse el caso que Di,j tome valores negativos, en esta situación no representa
distancias euclidianas. Di,j podría tomar valores negativos, por ejemplo, cuando se trate de
representar en cada nodo a una persona y el valor de las aristas Di,j representa la compatibilidad
entre las personas; compatibilidad que puede ser positiva o negativa, dependiendo de la relación
entre los nodos.

El problema de diversidad máxima es un problema considerado fácil de entender y difícil de resolver.

RESOLUCION

Para resolver el problema de la diversidad máxima primero hay que hallar una forma de medir dicha
diversidad. Hemos planteado varias formas de medir la dispersión, detalladas a continuación:

La suma de las distancias entre los m nodos seleccionados.


La mínima distancia entre los nodos m seleccionados.
La mínima suma de las distancias entre los m nodos seleccionados. Este método de medir
la dispersión puede entenderse como la unión de los dos anteriores.
La diferencia entre el mayor y menor peso que conectan los m nodos seleccionados.

4
Introducción Peñafiel&Morales

MODELOS

Para hallar la máxima diversidad utilizando los criterios recientemente expuestos se ha desarrollado
un modelo matemático de optimización para cada uno de ellos:

MAXSUM.- Maximiza la suma de las distancias entre los m nodos seleccionados.

MAXMIN.- Maximiza la mínima distancia entre los nodos m seleccionados.

MAXMINSUM.- Maximiza la mínima suma de las distancias entre los m nodos


seleccionados.

MINDIFF.- Minimiza la diferencia entre el mayor y menor peso que conectan los m nodos
seleccionados.

5
Introducción Peñafiel&Morales

ESTRATEGIA DE TRABAJO

Generación de gráficas.

Para resolver el problema de optimización haremos uso del programa GAMS para modelar cada uno
de los modelos. Pero antes necesitamos generar aleatoriamente la ubicación de los nodos en un
plano, con el fin de llenar la matriz Di,j que contenga distancias euclidianas entre cada uno de los
puntos generados. Para esto utilizaremos el programa Mathematica . Una vez generada la matriz
Di,j de peso de las aristas se las exportará a un archivo plano (.txt) para posteriormente utilizar ese
archivo en GAMS.

Una vez desarrollados los modelos en GAMS se importan los valores Di,j que fueron guardados en
el archivo plano. Luego se hace que GAMS exporte los resultados a otro archivo plano que
posteriormente será leído por Mathematicas.

Finalmente en Mathematicas importamos el último archivo que generó GAMS y lo utilizamos para
representar gráficamente los nodos que fueron seleccionados y los que no fueron seleccionados.

Este procedimiento se lo realiza para cada modelo con la finalidad de poder comparar que nodos
seleccionó cada modelo y cuáles son sus principales diferencias.

Generación de Tiempos de corrida y Funciones Objetivo

En esta parte la generación de los valores aleatorios de Di,j se lo hace directamente en GAMS
porque ya no necesitamos que sean distancias euclidianas. Puede ser cualquier valor que relaciones
un nodo con otro, por eso puede ser un valor negativo o positivo, lo que lo diferencia de las
distancias euclidianas que siempre son positivas.

En GAMS realizamos el proceso para 10 semillas diferentes, cada semilla nos va a entregar distintos
valores de Di,j , que corresponden a una distribución uniforme. Una vez hallados los óptimos
hacemos que GAMS los exporte a un archivo de Excel (.xlsx) para crear una tabla dinámica y
graficas que nos ayuden analizar las diferencias más importantes en las semillas distintas.

Los modelos en GAMS y la programación en Mathematicas se detallan en otra sección del documento.

6
Software utilizado Peñafiel&Morales

SOFTWARE UTLIZADO

GAMS

El Sistema General de Modelaje Algebraico (GAMS) está diseñado específicamente para modelar
problemas de optimización tanto lineales, no lineales o de enteros mezclados. El sistema es
especialmente útil para problemas que sean grandes y complejos. GAMS está disponible en
versiones para computadores personales, estaciones de trabajo, bases de datos y súper
computadores.

GAMS le permite al usuario concentrarse en el problema a modelar haciendo que el planteamiento


del problema sea simple. El sistema se toma el trabajo en los detalles que consumen más tiempo de
maquinas especificas e implementación de software.

GAMS es especialmente útil para problemas únicos que sean grandes y complejos que pueden
necesitar muchas revisiones antes de establecer el modelo final. El sistema modela problemas en
una manera compacta y natural. El usuario puede cambiar la formulación del problema con facilidad,
cambiar de un tipo de solucionador a otro y hasta convertir el problema de lineal a no lineal sin
problemas.

Características Importantes

Tecnología de modelaje robusta y dimensionable

Hecho a la medida para aplicaciones complejas, de modelaje a gran escala

Aumento de productividad a través de un ambiente de desarrollo eficiente

Una ancha red académica y comercial

Más de 30 años de experiencia en la industria y academia

Vista General del Sistema y Características

El modelado y optimización de GAMS se basa en una arquitectura abierta, que permita


comunicación libre de irregularidades con constitución integrados (por ejemplo, solucionadores de
optimización) y sistemas externos.

7
Software utilizado Peñafiel&Morales

Las aplicaciones de GAMS son portátiles a través de diferentes plataformas (incluyendo Windows de
32/64bit, Linux, Mac OS X, AIX, HP-UX, Solaris).

GAMS provee un portafolio único en su género de solucionadores con la última tecnología en


solucionadores y también con solucionadores especiales para procesos estocásticos y optimización
global.

Tipos de Modelos Básicos

Programas de Enteros Lineales/Cuadráticos Mezclados (MIP/MIQCP)

Programa de Enteros No Lineales Mezclados (MINLP)

Problemas Complementarios Mezclados (MCP)

Programas Matemáticos con Equilibrio de Constantes (MPEC)

Sistemas No Lineales constreñidos (CNS)

La arquitectura abierta de GAMS asegura una integración fácil de los modelos de optimización en
toda clase de ambientes aplicación.

Interfaces y herramientas de Conectividad

Ejecución de modelos interactiva y orientada

Ejecución distribuida (computación de gradillas)

Intercambio de datos con DBMS, MS-Office, Matlab, etc.

Componentes de librería con interfaces para C++, Java, .NET, etc.

8
Software utilizado Peñafiel&Morales

Mathematica

Descripción

Mathematica es una herramienta especializada en análisis numérico y cálculo simbólico, que


incorpora un potente lenguaje de programación propio y una interfaz externa que permite salidas a
C, Fortran y TEX, además de otras potentes comunicaciones con otros paquetes mediante MathLink.

Visión General

Ingenieros, científicos, analistas financieros, investigadores, profesores y estudiantes de enseñanza


superior, usan en todo el mundo Mathematica para desarrollar sus cálculos de precisión en
proyectos críticos. Mathematica es el primer programa para la computación y visualización numérica,
simbólica y gráfica. Mathematica ofrece a sus usuarios una herramienta interactiva de cálculo y un
versátil lenguaje de programación para una rápida y precisa solución a problemas técnicos.

Los documentos electrónicos de Mathematica, llamados notebooks le permiten organizar de forma


fácil sus textos, cálculos gráficos y animaciones para impresionantes informes técnicos, courseware,
presentaciones o registro de su trabajo. Y además puede usar el protocolo de comunicación
de Mathematica, MathLink, para intercambiar información entre Mathematica y otros programas.

Características Principales

Realización de cálculos y simulaciones de cualquier nivel de complejidad mediante el uso de


la amplia librería de funciones matemáticas y computacionales.

Rápida y fácil importación y exportación de datos, que incluye imágenes y sonido, en más
de veinte formatos.

Generación de documentos interactivos, independientes de la plataforma, con textos,


imágenes, expresiones matemáticas, botones e hyperlinks.

Entrada de expresiones a través del teclado o de la paleta (programable) más adecuada.

Construcción de complejas expresiones y fórmulas con formato automático y ruptura de


líneas.

Exportación de los "notebooks" a formato HTML para presentaciones web o LaTeX para
publicaciones especiales.

9
Software utilizado Peñafiel&Morales

Áreas de Aplicación

Por sus amplias capacidades de cálculo, gráficos y sonidos, tiene interesantísimas aplicaciones en
los siguientes campos:

Ciencias Físicas: Física teórica y experimental, química, ciencias de los materiales y


ciencias de la tierra.

Ciencias de la Computación: Ingeniería informática, desarrollo de software, gráficos.

Ciencias Matemáticas: Matemática pura, matemática aplicada, estadística, investigación


operativa, etc.

Negocios y Finanzas: Análisis financiero, economía, ciencias actuariales, gestión.

Ciencias de la Salud: Investigación médica, biología, bioquímica, psicología y ciencias del


entorno.

Versiones

La última versión de Mathematica es Mathematica 7.0. Para conocer detalladamente las


características y precios de esta última versión visite la información correspondiente a través del
enlace en la parte inferior de esta página.

Información Del Fabricante

Mathematica ha sido desarrollado por la empresa Wolfram Research Inc., fundada en 1987 por
Stephen Wolfram. Wolfram Research Inc. se ha caracterizado durante toda su historia por ser una
compañía líder en el desarrollo de herramientas de gran calidad para el cálculo científico y técnico y
por la incorporación de una tecnología de computación propia e innovadora.
Addlink Software Científico, desde su fundación en 1991 ostenta el título de distribuidor oficial
certificado de los productos de Wolfram Research. Esta calificación garantiza un alto nivel de
calidad en:

asesoramiento comercial que permite una optimización de la inversión gracias a un profundo


conocimiento de los productos, tipos de configuración, licencias y precios;

soporte técnico y atención al cliente, a través de un equipo técnico altamente cualificado en


los productos, sistemas y áreas de conocimiento.

10
Comparación de modelos Peñafiel&Morales

COMPARACION ENTRE MODELOS

COMPARACION DE NODOS SELECIONADOS.

Para comparar los resultados de los cuatro modelos desarrollados tomares 10 nodos de un total de
30. Con lo que tenemos n=30 y m=10. Y todas las ubicaciones de los nodos fueron generadas
aleatoriamente. A continuación mostramos gráficamente los nodos seleccionados (Nodos
seleccionados en verde).

Gráfica 1 - Nodos seleccionados utilizando el modelo MAXSUM Gráfica 2 - Nodos seleccionados utilizando el modelo MAXMIN

Gráfica 3 - Nodos seleccionados utilizando el modelo MAXMINSUM Gráfica 4 - Nodos seleccionados utilizando el modelo MINDIF

11
Comparación de modelos Peñafiel&Morales

Lo primero que se debe observar es que todos los modelos nos entregaron distintos resultados que
se acogen a su criterio de medir la dispersión. Cabe recalcar que solo hemos considerado cuatro
criterios y tal vez puedan existir otros criterios que también midan la dispersión.

Según las Graficas 1 y Grafica 2 podemos ver que los mejores criterios para obtener la mayor
diversidad son: MAXMINSUM y MAXSUM. Ambos modelos presentan resultados muy parecidos,
con pequeñas diferencias en la selección de sus nodos. Mientras que el MAXMIN no parece ser tan
bueno porque sus nodos no se ven tan dispersos como en el MAXMINSUM o MAXSUM. Y el
MINDIFF es aparentemente peor de los modelos.

Con estos resultados podemos apreciar fácilmente la diferencia entre los criterios establecidos para
medir la diversidad. La diferencia entre uno y otro no necesariamente estable la superioridad entre
ellos, porque todo depende del criterio de selección que necesitemos. Por ejemplo podemos ver en
el Gráfico 4 que los nodos no están tan dispersos como en los otros modelos, pero también se ve
que la distancia entre cada uno de los nodos seleccionados es menor que en los otros modelos. Por
ejemplo se podría querer relacionar personas con caracteres distintos y pero que la relación entre
estas personas sea de similar magnitud y así el modelo más apropiado es el MINDIF.

12
Comparación de modelos Peñafiel&Morales

COMPARACION DE FUNCIONES OBJETIVO Y TIEMPOS DE CORRIDA

La diferencia entre los modelos también se puede apreciar en los tiempos de corrida de cada uno. Y
también varia la función objetivo que está estrechamente ligada con el conjunto de nodos que
selecciona la optimización.

Para evidenciar la diferencia en los tiempos de corrida hemos realizados varias repeticiones con
distintas aristas Di,j en cada repetición y para distinto número de nodos a seleccionar, es decir con
m=5,10,15,20,25 y n=30 .

FUNCION OBJETIVO
Repetición= 1 2 3 4 5 6 7 8 9 10
m= MAXMIN
5 91,32 91,29 92,75 89,81 94,95 89,58 94,72 93,79 89,26 93,58
10 32,48 36,53 37,53 35,14 33,78 34,63 45,14 41,70 37,43 42,80
15 14,45 15,02 18,80 13,02 13,35 15,74 16,03 21,47 17,99 17,99
20 4,37 7,22 7,06 4,70 5,61 3,72 7,10 6,89 8,57 7,22
25 0,68 3,31 2,53 0,95 3,79 1,05 1,36 2,84 2,09 2,64
MAXMINSUM
5 319,99 311,21 322,47 316,75 324,63 302,70 320,74 319,16 332,68 316,77
10 570,43 580,64 559,14 573,38 562,40 532,70 570,44 583,66 567,73 567,82
15 761,08 806,12 777,57 766,29 772,12 754,06 790,50 812,50 794,36 786,75
20 951,91 973,99 946,94 936,21 936,63 966,97 1008,89 991,05 979,79 971,09
25 1116,18 1141,29 1138,40 1033,54 1118,79 1133,67 1160,28 1180,55 1121,64 1156,37
MAXSUM
5 3789,82 3919,23 3318,83 3936,24 3807,51 3509,08 4063,44 3901,02 4182,72 3751,32
10 5947,81 6169,26 5600,33 6165,59 6039,66 5702,54 6282,69 6153,10 6332,10 5931,20
15 9136,54 9581,32 8822,78 9384,94 9234,72 8843,94 9687,08 9512,14 9552,09 9302,45
20 13198,03 13791,20 13041,97 13212,28 13240,43 13006,77 14030,76 14028,02 13765,71 13608,28
25 17607,16 18279,58 17999,14 17823,95 17996,09 17645,97 18680,81 18698,34 18161,61 18169,75
MINDIFF
5 2,92 5,04 4,65 3,90 6,58 3,27 5,29 7,01 2,27 6,29
10 32,86 33,51 26,02 25,02 20,45 27,62 27,29 27,95 23,99 27,02
15 63,56 82,59 74,85 68,67 51,80 54,08 62,86 62,59 80,57 66,42
20 153,55 189,01 140,68 190,87 126,37 125,15 119,66 147,18 186,10 132,32
25 297,68 359,86 300,06 366,11 227,94 253,57 238,80 270,91 376,44 288,18

TIEMPOS DE CORRIDA
Modelo\Repetición 1 2 3 4 5 6 7 8 9 10
MAXMIN 1,546 1,453 1,312 3,375 2,656 1,625 1,859 4,140 4,343 1,234
MAXMINSUM 0,109 0,125 0,062 0,312 0,234 0,046 0,109 0,281 0,296 0,125
MAXSUM 0,375 0,203 0,187 0,531 0,312 0,156 0,187 0,718 1,015 0,359
MINDIFF 0,546 0,734 0,812 1,093 0,906 0,265 2,937 1,656 1,546 0,640

13
Comparación de modelos Peñafiel&Morales

GRÁFICOS DE LA FUNCIÓN OBJETIVO

Gráfica 5

Gráfica 6

Gráfica 7

Gráfica 8

14
Comparación de modelos Peñafiel&Morales

Se puede apreciar en las Gráficas 5, 6 y , 7 que los modelos MAXMIN, MAXMINSUM Y MAXSUM a
pesar de que en cada repetición se generaron distintos valores aleatorios para Di,j la función
objetivo es similar en cada número determinado de nodos seleccionados. Es decir en las 10
repeticiones para cada valor de la función objetivo alcanzaba valores siempre muy cercanos.

El modelo MINDIFF en la Gráfica 8 tiene una diferencia en con los demás modelos. La diferencia es
que a medida que el número de nodos seleccionados aumenta la variación en la función objetivo va
aumentando también. No como en los otros modelos que función objetivo permanece similar para
cada valor de m.

Cabe aclarar que la función objetivo se posiciona en distintos rangos por cada modelo debido a que
el criterio de medición de la diversidad es distinto entre los modelos.

GRAFICO DEL TIEMPO DE CORRIDA

Gráfica 9

En la Grafica 9 se ve claramente que en los modelos MAXMIN y MINDIFF los tiempos de corrida son
muy variables, es decir la diferencia del tiempo que el software se demora en resolver alguno de
esos modelos es muy grande entre una repetición y otra.

Mientras que en los modelos MAXMINSUM y MAXSUM los tiempos de corrida en las distintas
repeticiones parecen ser muy similares o tener una diferencia pequeña. Dicho en otras palabra

15
Comparación de modelos Peñafiel&Morales

generalmente tomara el mismo tiempo resolver el problema de diversidad máxima con alguno de
estos dos modelos, aún teniendo distintos valor en las aristas.

Otra información muy importante que nos da el Grafico 9 es la comparación del tiempo entre los
modelos. Con esto podemos saber cuáles modelos se demoran menos tiempo en alcorzar el óptimo.
Esto es de gran importancia para saber escoger que modelos deseamos utilizar y generalmente será
el modelo que de mejor diversidad en el menor tiempo.

El modelo MAXMINSUM es el que se demora la menor cantidad tiempo en alcanzar el óptimo y la


dispersión que se muestra en la Grafica 3 también es muy buena. Con esto nos damos cuenta de
forma general que el modelo MAXMINSUM es eficaz la para hallar la máxima diversidad.

El modelo MAXSUM también parece ser un modelo, porque tiene una buena dispersión en su gráfica
y además el la diferencia de tiempo con el MAXMINSUM es mínima como se puede ver en la
Gráfica-9.

16
Programación Peñafiel&Morales

PROGRAMACION

PARA GENERAR LAS GRAFICAS

Mathematicas.

Para generar los valores aleatorios.

n 30;
m 10;
coord Table 100 Random , Random , i, 1, n ;
nodos Range n ;
A ;
v Table coord i, 1 , coord i, 2 , i, 1, n ;
g Graph A, v ;
ShowLabeledGraph g, VertexColor Green, VertexStyle Box Small ,
PlotRange All ;
dist
N
Round
1000
Table
2 2
coord i, 1 coord j, 1 coord i, 2 coord j, 2 ,
i, 1, n , j, 1, n 1000, 5 ;
dist Prepend dist, Range 1, n ;
dist Transpose Prepend Transpose dist , Range 0, n ;
dist 1, 1 Null;
MatrixForm dist
Export "F:\\datos.txt", dist, "Table" ;

Para generar los gráficos.

17
Programación Peñafiel&Morales

GAMS

Para encontrar los nodos.

MAXMIN
Option seed=1259
scalar
m /10/
n /30/;
sets
i identificador de nodos /1*30/
alias (i,j);
Table d(i,j) distribucion de distancias
$INCLUDE "F:\\datos.txt";
scalar M;
M = smax(i,smax(j,d(i,j)));
parameters B(i,j) cota;
B(i,j)=M-d(i,j);
variables z2, x2, y2;
binary variables x2,y2;
equations
obj2(i,j) MAXMIN
rest12(i), rest22(i,j), rest32(i,j),rest42(i,j);

obj2(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. z2=l= d(i,j) + (1-y2(i,j))*B(i,j);;


rest12(j).. sum(i,x2(i))=e=m;
rest22(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=g=x2(i)+x2(j)-1;
rest32(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=l=x2(i);
rest42(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=l=x2(j);

model MAXMIN /obj2, rest12, rest22, rest32, rest42/;


solve MAXMIN maximizing z2 using MIP;

FILE SALIDA/F:\\NODOS2.TXT/;
PUT SALIDA;
LOOP((i),PUT x2.L(i);)

MAXMINSUM
Option seed=10733
option optcr=0;
scalar
m /10/
n /30/;
sets
i identificador de nodos /1*30/

18
Programación Peñafiel&Morales

alias (i,j);

Table d(i,j) distribucion de distancias


$INCLUDE "F:\\datos.txt";

scalar Mmas;
Mmas = 1+ smax(i,sum[j$(diag(i,j) eq 0),max(d(i,j),0)]);

parameters L(i) cota;


L(i)=sum[j$(diag(i,j) eq 0), min(d(i,j),0)];

variables z3, x3;


binary variables x3;
equations
obj3(i) MAXMINSUM
rest13(i);

*MAXMINSUM
obj3(i).. z3=l=sum[j$(diag(i,j)eq 0),d(i,j)*X3(j)]-L(i)*(1-X3(i))+Mmas*(1-X3(i));
rest13(j).. sum(i,x3(i))=e=m;

model MAXMINSUM /obj3, rest13/;


solve MAXMINSUM maximizing z3 using MIP;

FILE SALIDA/F:\\NODOS3.TXT/;
PUT SALIDA;
LOOP((i),PUT x3.L(i);)

MAXSUM
Option seed=10733
option optcr=0;
scalar
m /10/
n /30/;
sets
i identificador de nodos /1*30/

alias (i,j);

Table d(i,j) distribucion de distancias


$INCLUDE "F:\\datos.txt";

variables z1, x1, y1;

binary variables x1,y1;

19
Programación Peñafiel&Morales

equations
obj1 MAXSUM
rest1(i), rest2(i,j), rest3(i,j),rest4(i,j);

*MAXSUM
obj1.. z1=e=sum((i,j)$((ord(i)<n and ord(i)<ord(j))), d(i,j)*y1(i,j));
rest1(j).. sum(i,x1(i))=e=m;
Rest2(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=g=x1(i)+x1(j)-1;
Rest3(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=l=x1(i);
Rest4(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=l=x1(j);

model MAXSUM /obj1, rest1, rest2, rest3, rest4/;


solve MAXSUM maximizing z1 using MIP;

FILE SALIDA/F:\\NODOS1.TXT/;
PUT SALIDA;
LOOP((i),PUT x1.L(i);)

MINDIF
Option seed=10733
scalar
m /10/
n /30/;
sets
i identificador de nodos /1*30/
k iterador /1*5/
alias (i,j);

Table d(i,j) distribucion de distancias


$INCLUDE "F:\\datos.txt";

scalar Mmas, Mmenos;


Mmas = 1+ smax(i,sum[j$(diag(i,j) eq 0),max(d(i,j),0)]);
Mmenos = -1+ smin(i,sum[j$(diag(i,j) eq 0),min(d(i,j),0)]);

parameters U(i) cota, L(i) cota;


U(i)=sum[j$(diag(i,j) eq 0), max(d(i,j),0)];
L(i)=sum[j$(diag(i,j) eq 0), min(d(i,j),0)];

variables z4, x4, r, s;


binary variables x4;

equations

obj4(i) MINDIFF
rest14(i),rest24(i),rest34(i);

20
Programación Peñafiel&Morales

*MINDIFF
obj4(i).. z4=g=r-s;
rest14(i).. r=g=sum[j$(diag(i,j) eq 0), d(i,j)*X4(j)]-U(i)*(1-X4(i))+ Mmenos*(1-X4(i));
rest24(i).. s=l=sum[j$(diag(i,j) eq 0), d(i,j)*X4(j)]-L(i)*(1-X4(i))+ Mmas*(1-X4(i));
rest34(j).. sum(i,x4(i))=e=m;

model MINDIFF /obj4, rest14, rest24, rest34/;


solve MINDIFF minimizing z4 using MIP;

FILE SALIDA/F:\\NODOS4.TXT/;
PUT SALIDA;
LOOP((i),PUT x4.L(i);)

PARA GENERAR LOS TIEMPOS DE CORRIDAD Y LAS FUNCIONES OBJETIVO

En esta parte se realizó un sólo programa en el que contenta todos los modelos y entregre los
resultados en un archivo de Excel. La diferencia de esta programación es que se la realizan varias
repeticiones, cada repetición con diferentes semillas para tener distintos valores y poder
compara las diferencias en cada repetición.

GAMS

Option seed=10733 (Semilla varía en cada repetición.)


scalar
m
n /30/;
sets
i identificador de nodos /1*30/
k iterador /1*5/
alias (i,j);

parameters d(i,j) distribucion de distancias;


d(i,j)$((ord(i)<ord(j)))=100*Uniform(0,1);
d(i,j)$((ord(i)>ord(j)))=d(j,i);

scalar Mmas, Mmenos, M;


Mmas = 1+ smax(i,sum[j$(diag(i,j) eq 0),max(d(i,j),0)]);
Mmenos = -1+ smin(i,sum[j$(diag(i,j) eq 0),min(d(i,j),0)]);
M = smax(i,smax(j,d(i,j)));

parameters U(i) cota, L(i) cota, B(i,j) cota;


U(i)=sum[j$(diag(i,j) eq 0), max(d(i,j),0)];
L(i)=sum[j$(diag(i,j) eq 0), min(d(i,j),0)];
B(i,j)=M-d(i,j);

21
Programación Peñafiel&Morales

variables z1, z2, z3, z4, x1, x2, x3, x4, r, s, y;

binary variables x1,x2, x3, x4,y1,y2;

equations
obj1 MAXSUM
rest1(i), rest2(i,j), rest3(i,j),rest4(i,j)

obj2(i,j) MAXMIN
rest12(i), rest22(i,j), rest32(i,j),rest42(i,j)

obj3(i) MAXMINSUM
rest13(i)

obj4(i) MINDIFF
rest14(i),rest24(i),rest34(i);

*MAXSUM
obj1.. z1=e=sum((i,j)$((ord(i)<n and ord(i)<ord(j))), d(i,j)*y1(i,j));
rest1(j).. sum(i,x1(i))=e=m;
Rest2(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=g=x1(i)+x1(j)-1;
Rest3(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=l=x1(i);
Rest4(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y1(i,j)=l=x1(j);

*MAXMIN
obj2(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. z2=l= d(i,j) + (1-y2(i,j))*B(i,j);;
rest12(j).. sum(i,x2(i))=e=m;
rest22(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=g=x2(i)+x2(j)-1;
rest32(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=l=x2(i);
rest42(i,j)$(1<ord(i)$(ord(i)<ord(j)$(ord(j)<n))).. y2(i,j)=l=x2(j);

*MAXMINSUM
obj3(i).. z3=l=sum[j$(diag(i,j)eq 0),d(i,j)*X3(j)]-L(i)*(1-X3(i))+Mmas*(1-X3(i));
rest13(j).. sum(i,x3(i))=e=m;

obj4(i).. z4=g=r-s;
rest14(i).. r=g=sum[j$(diag(i,j) eq 0), d(i,j)*X4(j)]-U(i)*(1-X4(i))+ Mmenos*(1-X4(i));
rest24(i).. s=l=sum[j$(diag(i,j) eq 0), d(i,j)*X4(j)]-L(i)*(1-X4(i))+ Mmas*(1-X4(i));
rest34(j).. sum(i,x4(i))=e=m;

model MAXSUM /obj1, rest1, rest2, rest3, rest4/;


model MAXMIN /obj2, rest12, rest22, rest32, rest42/;
model MAXMINSUM /obj3, rest13/;

22
Programación Peñafiel&Morales

model MINDIFF /obj4, rest14, rest24, rest34/;

parameters resultados(*,k)
loop(k,m=ord(k)*5;
solve MAXSUM maximizing z1 using MIP;
solve MAXMIN maximizing z2 using MIP;
solve MAXMINSUM maximizing z3 using MIP;
solve MINDIFF minimizing z4 using MIP;

resultados("m",k)=m;
resultados("MAXSUM",k)=z1.l;
resultados("MAXMIN",k)=z2.l;
resultados("MAXMINSUM",k)=z3.l;
resultados("MINDIFF",k)=z4.l;)

display resultados
maxsum.resusd
maxmin.resusd
maxminsum.resusd
mindiff.resusd

23
Conclusiones Peñafiel&Morales

CONCLUSIONES

Cuando se trata de resolver problemas de máxima dispersión principalmente hay saber elegir un
criterio que mida la dispersión de forma que beneficie nuestras necesidades. Y según el criterio que
seleccionemos obtendremos un resultado que se adapte mejor o peor a nuestros requerimientos.

Los modelos MAXSUM y MAXMINSUM encuentran una mejor dispersión que los modelos MAXMIN
y MINDIF. Y la diferencia entre los nodos que selecciona el MAXSUM con los nodos que selecciona
el MAXMINSUM no es tan grande. Es decir, seleccionan, en gran medida, los mismos nodos y los
que difieren siempre están muy cercanos.

También se pudo observar que el tiempo que se demora el programa de optimización en hallar la
respuesta óptima es menor en modelo MAXMINSUM, seguido muy de cerca por el modelo
MAXSUM. Mientras que los modelos MAXMIN y MINDIF se demoran más tiempo en hallar el optimo.

Podemos concluir que si queremos seleccionar los nodos más diversos entre sí el modelo apropiado
es el MAXMINSUM porque no sólo encuentra los nodos más dispersos sino que lo hace en el
menor tiempo posible. El modelo MAXSUM también es muy eficiente porque encuentra nodos
igualmente diversos que el MAXMINSUM y lo hace en un tiempo no tan diferente que el
MAXMINSUM.

24
Anexo Peñafiel&Morales

ANEXO

MAXMEAN

En este modelo a diferencia de los otros no sólo se encuentran los nodos más dispersos sino
también el número de nodos más dispersos. Es decir, m no es un dato ingresado por el usuario sino
un resultado de la optimización.

Hay que notar un dato curioso, si los pesos Di,j representan distancias euclidianas el programa
tomará como m optimo en número total de nodos. Dicho en otras palabras si la valores de Di,j
siempre positivos m será igual a n. Este fenómeno no sucede cuando Di,j representan relaciones
entre los nodos. Esto quiere decir, cuando puede tomar también valores negativos.

A continuación les mostramos la codificación en GAMS de este modelo. Cabe recalcar que no es
muy diferente del MAXSUM.

option seed=183;
SCALAR
n Total nodos /30/

SET
i nodos partida /1*30/;
ALIAS (i,j);

PARAMETERS d(i,j);

d(i,j)$(ord(i)<ord(j))= 100 * Uniform (-1,1);


d(j,i)$(ord(i)<ord(j))= d(i,j);
VARIABLES W,X,m;
BINARY VARIABLES X;
INTEGER VARIABLE m;
m.LO=2;
m.up=n;
EQUATIONS Obj
Rest1;
Obj.. W=e=sum((i,j)$((ord(i)<n)and(ord(i)<ord(j))),d(i,j)*x(i)*x(j)/m) ;
Rest1.. sum(i,X(i))=E= m;
MODEL MAXMEAN /all/
SOLVE MAXMEAN maximizing W using minlp

25

You might also like