Investigación de operaciones

Teoría de redes

Algoritmos de optimización de redes

La modelación de redes permite la resolución de múltiples problemas de programación matemática mediante la implementación de algoritmos especiales creados para tal fin, conocidos como Algoritmos  de optimización de redes.

Dentro de los problemas más comúnmente resueltos mediante la modelación de redes se encuentran los ya vistos modelos de transporte, transbordo además de los muy conocidos modelos de determinación de cronograma de actividades para proyectos como lo son el PERT y el CPM.

Conceptos básicos en teoría de redes

GráficaUna gráfica es una serie de puntos llamados nodos que van unidos por unas líneas llamadas ramales o arcos.

Red: Una red es una gráfica que presenta algún tipo de flujo en sus ramales. Por ejemplo una gráfica cuyo flujo en sus ramales sea la electricidad es una red eléctrica. En las redes se usa una simbología específica para denotar su tamaño y elementos que la constituyen, dicha notación es la (N, A) donde N representa el número de nodos que contiene la red y A representa el número de arcos o ramales.

Teoría de redes

CadenaUna cadena corresponde a una serie de elementos ramales que van de un nodo a otro. En el siguiente caso se resalta una cadena que va desde el nodo 1 hasta el nodo 7 y que se compone por los elementos [1-4, 4-7].

Ruta: Una ruta corresponde a los nodos que constituyen una cadena, en el siguiente caso [1, 4, 7].

Ruta redes

CicloUn ciclo corresponde a la cadena que une a un nodo con sigo mismo, en el siguiente ejemplo el ciclo está compuesto por la cadena [4-2, 2-5, 5-7, 7-4].

Ciclo redes

Ramal orientado: Un ramal o arco orientado es aquel que tiene un sentido determinado, es decir que posee un nodo fuente y un nodo destino.

Ramal orientado

Gráfica orientadaUna gráfica orientada es aquella en la cual todos sus ramales se encuentran orientados.

Gráfica orientada

Árbol: Un árbol es una gráfica en la cual no existen ciclos, como el siguiente ejemplo.

Árbol de expansión: Un árbol de expansión es aquel árbol que enlaza todos los nodos de la red, de igual manera no permite la existencia de ciclos.

Árbol de expansión - Teoría de redes

Nodo fuente: El nodo fuente es aquel nodo en el cual todos sus ramales se encuentran orientados hacia afuera.

Nodo destino: El nodo destino es aquel nodo en el cual todos sus ramales se encuentran orientados hacia él.

Teoría de redes nodos


Algoritmo árbol de expansión mínima

El algoritmo del árbol de expansión mínima es un modelo de optimización de redes que consiste en enlazar todos los nodos de la red de forma directa y/o indirecta con el objetivo de que la longitud total de los arcos o ramales sea mínima (entiéndase por longitud del arco una cantidad variable según el contexto operacional de minimización, y que puede bien representar una distancia o unidad de medida).

Sean:

N = {1,2,3,…,n} el conjunto de nodos de la red.

Ck= Conjunto de nodos que se han enlazado de forma permanente en la iteración k

Čk= Conjunto de nodos que hacen falta por enlazarse de forma permanente.

Paso cero(0): Conceptualización del algoritmo

Definir los conjuntos C0 = {ø} y Č0 = {N}, es decir que antes del paso 1 no se han enlazado de forma permanente nodo alguno, y por ende el conjunto que representa a los nodos que hacen falta por enlazarse de forma permanente es igual a la cantidad de nodos que existen en la red.

Paso 1:

Se debe de escoger de manera arbitraria un nodo en el conjunto Č0 llamado i el cual será el primer nodo permanente, a continuación se debe de actualizar el conjunto C1 = {i}, que significa que al tiempo en que el conjunto C1 gana el elemento i el conjunto Č0pierde el elemento i por ende ahora será igual a Č1 = N – {i}, además se debe actualizar el subíndice de los conjuntos k, el cual ahora será igual a 2.

Paso 2: Paso general «K»

Se debe de seleccionar un nodo j del conjunto ČK-1 («k-1» es el subíndice que indica que se está haciendo referencia al conjunto de la iteración inmediatamente anterior) el cual tenga el arco o ramal con menor longitud con uno de los nodos que se encuentran en el conjunto de nodos de enlace permanente CK-1. Una vez seleccionado se debe de enlazar de forma permanente lo cual representa que pasa a formar parte del conjunto de enlaces permanentes y deja de formar parte del conjunto que todavía se debe conectar para lograr la expansión. Al actualizar el algoritmo en este paso los conjuntos deben de quedar de la siguiente forma.

CK = CK-1 + {j} mientras que ČK = ČK-1 – {j}

El paso general que define k que al mismo tiempo representa a las iteraciones debe de ejecutarse toda vez que el conjunto ČK no sea vacío, cuando este conjunto sea igual a vacío se tendrá el árbol de expansión mínima.

El entendimiento del algoritmo desde el punto de vista algebraico no es quizá el más simple, sin embargo mediante el ejemplo gráfico se verá que es un algoritmo muy sencillo de elaborar.

Solución de un problema de árbol de expansión mínima

El problema

La ciudad de Cali cuenta con un nuevo plan parcial de vivienda el cual contará con la urbanización de más de 7 proyectos habitacionales que se ubicarán a las afueras de la ciudad. Dado que el terreno en el que se construirá no se encontraba hasta ahora dentro de las zonas urbanizables de la ciudad, el acueducto municipal no cuenta con la infraestructura necesaria para satisfacer las necesidades de servicios públicos en materia de suministro de agua. Cada uno de los proyectos de vivienda inició la construcción de un nodo de acueducto madre, el cual cuenta con las conexiones de las unidades de vivienda propias de cada proyecto (es decir que cada nodo madre solo necesita estar conectado con un ducto madre del acueducto municipal para contar con su suministro). El acueducto municipal al ver la situación del plan parcial debe de realizar las obras correspondientes a la instalación de ductos madres que enlacen todos los nodos del plan con el nodo Meléndez (nodo que se encuentra con suministro de agua y que no pertenece al plan parcial de vivienda, además es el más cercano al mismo), la instalación de los ductos implica obras de excavación, mano de obra y costos de los ductos mismos, por lo cual optimizar la longitud total de los enlaces es fundamental. Las distancias existentes (dadas en kilómetros) correspondientes a las rutas factibles capaces de enlazar los nodos del plan parcial se presentan a continuación. Además la capacidad de bombeo del nodo Meléndez es más que suficiente para satisfacer las necesidades de presión que necesita la red madre.

Teoría de redes ejemplo

El acueducto municipal le contacta a usted para que mediante sus conocimientos en teoría de redes construya una red de expansión que minimice la longitud total de ductos y que enlace todos los nodos del plan parcial de vivienda.

PASO 0:

Se definen los conjuntos iniciales C0 = {ø} que corresponde al conjunto de nodos enlazados de forma permanente en la iteración indicada en el subíndice y Č0 = {N = 1,2,3,4,5,6,7,8} que corresponde al conjunto de nodos pendientes por enlazar de manera permanente en la iteración indicada en el subíndice.

PASO 1:

Se debe definir de manera arbitraria el primer nodo permanente del conjunto Č0, en este caso escogeremos el nodo 1 (puede ser cualquier otro), que algebraicamente se representa con la letra i, se procede a actualizar los conjuntos iniciales, por ende C1 = {i} = {1} y Č0 = {N – i} = {2,3,4,5,6,7,8}, actualizamos k por ende ahora será igual a 2.

PASO 2:

Ahora se debe seleccionar el nodo j del conjunto ČK-1 (es decir del conjunto del paso 1) el cual presente el arco con la menor longitud y que se encuentre enlazado con uno de los nodos de enlace permanente del conjunto Ck-1 en el cual ahora solo se encuentra el nodo 1 (es decir que se debe de encontrar un nodo que tenga el arco de menor longitud enlazado al nodo 1).

 

Los arcos o ramales de color naranja representan los arcos que enlazan el conjunto ČK-1 (es decir del conjunto del paso 1, recordemos que K en este paso es igual a 2, por ende ČK-1= Č1) con los nodos de enlace permanente del conjunto Ck-1 en el cual ahora solo se encuentra el nodo 1, por ende ahora solo falta escoger el de menor longitud, que en este caso es el arco cuya longitud es 2, que enlaza de forma permanente ahora el nodo 2.

Al actualizar los conjuntos quedan así:

C2 = {1,2} y Č2 = {3,4,5,6,7,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración. Ahora se seleccionará un nuevo nodo j del conjunto Č2que presente el enlace (ramal o arco) de menor longitud con los nodos que se encuentran en el conjunto C2.

Los arcos de color naranja representan los enlaces posibles y dado que existe empate entre las menores longitudes se elige de manera arbitraria, en este caso se representa nuestra elección con un arco de color verde, enlazando de forma permanente ahora el nodo 4.

Al actualizar los conjuntos quedan así:

C3 = {1,2,4} y Č3 = {3,5,6,7,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Lo que representan los arcos naranja y verde es ya conocido, ahora la línea azul interrumpida irá trazando nuestro árbol de expansión final. Dado a que el arco menor es el de longitud 3, ahora se enlazará de manera permanente el nodo 5.

Al actualizar los conjuntos quedan así:

C4 = {1,2,4,5} y Č4 = {3,6,7,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Árbol de expansión - teoría de redes

Ahora se enlazará de manera permanente el nodo 7.

Al actualizar los conjuntos quedan así:

C5 = {1,2,4,5,7} y Č5 = {3,6,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Ahora se enlazará de manera permanente el nodo 6.

Al actualizar los conjuntos quedan así:

C6 = {1,2,4,5,7,6} y Č6 = {3,8}

Ahora se procede a actualizar k ya que se procede a efectuar la siguiente iteración.

Se rompen los empates de forma arbitraria, ahora se enlazará de manera permanente el nodo 3.

Al actualizar los conjuntos quedan así:

C7 = {1,2,4,5,7,6,3} y Č7 = {8}

Ahora se procede a actualizar k ya que se procede a efectuar la última iteración.

Ahora se enlazará de manera permanente el nodo 8.

Al actualizar los conjuntos quedan así:

C8 = {1,2,4,5,7,6,3,8} = {N} y Č8 = {ø}

Por ende se ha llegado al árbol de expansión mínima

Árbol de expansión

Árbol que presenta una longitud total minimizada de 21 kilometros de ductos.

Solución de un problema de árbol de expansión mínima mediante WinQSB

Como hemos mencionado en diversos artículos, la existencia de herramientas de resolución de problemas de programación matemática como WinQSB dejan que el aprendizaje de la resolución manual de los algoritmos de redes se justifique solo para fines académicos o de profundización.

Por ende, una vez vista la metodología manual de resolución del algoritmo atinente al árbol de expansión mínima se hace necesario en aras de eficiencia mostrar la resolución de este tipo de problemas mediante WinQSB.

El primer paso para resolver un problema de transporte mediante WinQSB es ingresar al módulo Network Modeling.

El problema

La ciudad de Cali cuenta con un nuevo plan parcial de vivienda el cual contará con la urbanización de más de 7 proyectos habitacionales que se ubicarán a las afueras de la ciudad. Dado que el terreno en el que se construirá no se encontraba hasta ahora dentro de las zonas urbanizables de la ciudad, el acueducto municipal no cuenta con la infraestructura necesaria para satisfacer las necesidades de servicios públicos en materia de suministro de agua. Cada uno de los proyectos de vivienda inició la construcción de un nodo de acueducto madre, el cual cuenta con las conexiones de las unidades de vivienda propias de cada proyecto (es decir que cada nodo madre solo necesita estar conectado con un ducto madre del acueducto municipal para contar con su suministro). El acueducto municipal al ver la situación del plan parcial debe de realizar las obras correspondientes a la instalación de ductos madres que enlacen todos los nodos del plan con el nodo Meléndez (nodo que se encuentra con suministro de agua y que no pertenece al plan parcial de vivienda, además es el más cercano al mismo), la instalación de los ductos implica obras de excavación, mano de obra y costos de los ductos mismos, por lo cual optimizar la longitud total de los enlaces es fundamental. Las distancias existentes (dadas en kilómetros) correspondientes a las rutas factibles capaces de enlazar los nodos del plan parcial se presentan a continuación. Además la capacidad de bombeo del nodo Meléndez es más que suficiente para satisfacer las necesidades de presión que necesita la red madre.

Teoría de redes ejemplo

Ingresando a WinQSB

El primer paso para resolver un problema de transporte mediante WinQSB es ingresar al módulo Network Modeling.

Teoría de redes - WinQSB

Luego debemos seleccionar la opción Minimal Spanning Tree (Árbol de Expansión Mínima). Además en este submenú debemos de especificar el nombre del problema y el número de nodos. En nuestro caso el número de nodos es igual a 8, luego click en OK.

Una vez se realiza el paso anterior se  abrirá una ventana en la cual aparecerá la siguiente matriz:

En esta matriz se deben de consignar los valores de los ramales que unen las conexiones entre los nodos correspondientes, según el contexto de nuestro problema se deben de consignar las distancias entre los nodos si es que dichas conexiones existen de lo contrario en caso que la conexión no exista se debe dejar la celda en blanco. Hay que tener en cuenta que las distancias entre los nodos en este caso son exactamente conmutativas, es decir que si el nodo fuente es 2 y el destino es 4 la distancia existente entre estos es exactamente igual a la distancia existente entre un nodo fuente 4 y un nodo destino 2, sin embargo esta propiedad debe de especificarse en la matriz consignando los valores correspondientes a una conexión dos veces, es decir en la celda [From 1 – To 4] se debe de consignar la distancia 6, además debe de consignarse la misma distancia en la celda [From 4 – To 1].

Luego damos click en Solve and Analize y tendremos la siguiente ventana solución inmediatamente.

Podemos cotejar los resultados con los obtenidos de manera manual, 21 kilómetros de ductos es la distancia total una vez ejecutado el algoritmo del Árbol de Expansión Mínima.


Otros algoritmos basados en teoría de redes:

Bryan Salazar López

Ingeniero Industrial y Magíster en Logística Integral especializado en productividad y modelamiento de procesos bajo dimensiones de sostenibilidad, industria 4.0, transformación digital y modelos de optimización. Docente universitario de pregrado y posgrado con experiencia en la enseñanza de estos temas. Fundador de Ingenieriaindustrialonline.com, un sitio en donde se recogen las aportaciones de investigaciones, artículos y referencias relevantes para la industria.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Botón volver arriba