Localización de Instalaciones

 
En la sección de Algoritmos de IO, hablo del  Problema de Localización. Ahí se puede apreciar la cantidad de cálculos aritméticos que hay que hacer siguiendo el algoritmo iterativo para solucionar El problema de Weber. Con el Solver del Excel la cuestión es a otro precio. No sólo se puede formular y solucionar de manera tradicional el problema de la Localización de Instalaciones, sino que se pueden hacer formulaciones "no tradicionales", como las que incluirían restricciones para sitios  (o áreas) en las cuales es imposible realizar el emplazamiento.

A propósito, sino tiene ni forro de idea de que es eso del problema de localización y quiere saberlo, le recomiendo pasar por la sección de algoritmos, y ahí si vuelva acá.

Según lo que se habla en la página del algoritmo de localización, se trata de hallar las coordenadas X,Y de la instalación que minimice los costos de transporte a una serie dada de puntos (Ai,Bi) , con un costo  por unidad de distancia Wi. La función objetivo es entonces:
 


Ejemplo:
 
Sigamos el mismo que hay en la sección de algoritmos:

Encontrar las coordenas de la instalación de la planta de producción que minimice el costo total de transporte a los siguientes almacenes de distribución:
 
Ai (Km)   Bi (Km)   Wi($/Km)  
0 0 5
3 16 22
18 2 41
8 18 60
20 2 34
 
Para resolver en Excel:

Hagamos primero el formato:
 


Se puede notar que se ha adicionado dos columnas que es para la distancia y el costo de transporte, esto es para facilitar la escritura de la función objetivo. Escribamos primero la fórmula que le corresponde a estas columnas...

Paréntesis: Aquí debo mencionar algo: en el ejemplo que se desarrollo sobre localización en la sección de algoritmos, sólo escribí las ecuaciones para una distancia euclidiana, por la cantidad de cálculos que hay que hacer, pero aquí se puede definir muy fácilmente  cualquier tipo de distancia,  euclidiana, rectangular o hasta una tetradimensional de Riemman, ;)   Simplemente se cambia la fórmula para la columna Di.

En la celda D6:    =((A6-$A$3)^2+(B6-$B$3)^2)^(1/2). La referencia a la celda A3 y B3 correspondientes a X y Y se hizo de forma fija ( o sea que al arrastrar esta fórmula hacia otras celdas esta referencia no cambiará según el sentido de arrastre, si esto le suena como a chino le aconsejo buscar en la ayuda de Excel "Referencias a Celdas y Rangos").
Ahora el contenido de la celda D6 se puede arrastrar hasta D10 (copiado y pegado también se puede). Para la columna Costo, la celda E6 tendría la siguiente fórmula: =C6*D6. De nuevo se debe arrastrar la fórmula hasta la celda E10. Ahora la pinta de la hoja de cálculo es la siguiente:
 


La fórmula para la función objetivo es entonces en D3 =SUMA(E6:E10).

Ahora se debe invocar el cuadro de diálogo de Solver. Del menú herramientas escoger Solver (en caso que no esté en el menú hacer click en la opción "Complementos"  y chulearlo en el listado, sino está en el listado habrá que instalar Excel de nuevo, pero de manera completa), tal como se ve en figura:
 
 
En el cuadro de diálogo dar los parámetros tal como se puede ver en la figura:
 
{


Ahora el resultado es el siguiente:
 
 
Las coordenadas óptimas del nuevo emplazamiento son entonces: X=9.79 y Y = 13.57
Como puede imaginar, se podría introducir restricciones para series de coordenadas en las que el emplazamiento es imposible de realizar.  
 


Me escribieron preguntándome cómo plantear las restricciones de los puntos en los cuales no se puede llevar acabo el emplazamiento. La verdad, no lo había pensado (Qué pena con uds). Son una de esas cosas, que uno piensa que son demasiado fáciles para pensarlas.  Y resultó no serlo tanto.
A ver, supongamos que sólo tenemos un punto en el que no podemos llevar acabo el emplazamiento (pero eso parece relato de Ciencia Ficción, en la realidad serian muchísimos puntos en los que no se puede llevar acabo la instalación), por ejemplo, que no se puede instalar en X=10, Y = 9,  si eso fuera así tendríamos que decirle a Solver en las restricciones que cuando X debe ser diferente de 10 cuando Y = 9 y viceversa. Otra vez preguntamos, cómo?

Una posibilidad sería escribir en una celda la restricción con funciones lógicas por ejemplo:
A12=Si(Y(A3=10,B3=9),0,1)

Esta fórmula dice que si X=10 y Y=9 coloque 0 en la celda, de lo contrario coloque 1.  En el cuadro de diálogo de Solver, estableceríamos una nueva restricción que A12 sea igual a 1. Funciona! Ya lo probé. Y me parece increíble que funcione! Cada vez me maravillo más de Solver. El hecho que se puedan introducir funciones lógicas dentro de las restricciones me parece magia negra. Lo digo a la luz de mis poquiticos pero sólidos conocimientos en teoría de Optimización. Me pregunto, ¿cómo lo habrán hecho?

Sin embargo, razonando con base en la intuición, me parece que se debería utilizar lo menos posible las funciones lógicas: porque, después de todo ¿Cómo se le aplica una diferencial a una función lógica?

Además, no debería estar pensando en un único punto para restringir el problema sino en un área. Eso si es evidente, cierto? Entonces deberíamos establecer un área prohibida, por ejemplo, entre los puntos (10,9) y el (9,8).  Debemos apelar a la ecuación de una figura cerrada, la que más falta nos haría a nosotros sería la ecuación del rectángulo, pero creo que no existe. Así es que tomemos una aproximación a otra, por ejemplo la del circulo. Digamos que no se puede realizar el emplazamiento en un circulo que tiene por centro al punto (10,9) y que tiene un radio de dos. La ecuación que nos ayuda a esto es:
 
(X-h)2 + (Y-k)2 = r2

El centro esta en el punto (h,k).
 
(X-10)2 + (Y-9)2 = 22

El área que está dentro del circulo está dado por la inecuación asociada:
 
(X-10)2 + (Y-9)2 <= 22


Ese es el conjunto de puntos que las variables independientes no pueden tomar. Así que la restricción debe ser tomada con el sentido contrario: mayor o igual a 4.
En una celda se escribiría el lado izquierdo de la inecuación y en el cuadro de diálogo de Solver se escribiría que esa celda debe ser mayor o igual a 4.  De manera similar se puede reemplazar la ecuación del circulo, por la de una elipse u otra.

No sé si esto haya sido claro, espero que si.
 

Contenido :

Social