Sie sind auf Seite 1von 28

EQUIPO 5 REDES DE

OPTIMIZACIÓN
INVESTIGACIÓN DE OPERACIONES II

DOCENTE: GARCIA ALVARADO MARÍA ELENA

INTEGRANTES:

Castro Rodríguez Agustín de Jesús 15071133

Coronado Rodriguez José francisco 15071132

Rodríguez Domínguez Marco Antonio 15071246

Vázquez Martínez José Ignacio 15071181


ÍNDICE
INTRODUCCIÓN .................................................................... 1

PROBLEMAS DE FLUJO MÁXIMO ....................................... 2

ALGUNAS APLICACIONES: ............................................... 3

PROBLEMA DE FLUJO DE COSTO MÍNIMO ....................... 5

ALGUNAS APLICACIONES ................................................ 6

PROBLEMA DE FLUJO DE COSTE MÍNIMO ..................... 10

ALGORITMO DEL ÁRBOL DE MÍNIMA EXPANSIÓN ........ 11

PROBLEMA DEL AGENTE VIAJERO - TSP ...................... 23

BIBLIOGRAFIA .................................................................... 26
INTRODUCCIÓN

Los problemas de redes surgen en una gran variedad de situaciones. Las redes de
transporte, eléctricas y de comunicaciones predominan en la vida diaria. La
representación de redes se utiliza de manera amplia en áreas tan diversas como
producción, distribución, planeación de proyectos, localización de instalaciones,
administración de recursos y planeación financiera, por mencionar sólo algunos
ejemplos. En realidad, una representación de redes proporciona un poderoso
apoyo visual y conceptual para mostrar las relaciones entre las componentes de
los sistemas, de tal modo que se usa casi en todos los ámbitos científicos,
sociales y económicos.

Uno de los mayores desarrollos recientes en investigación de operaciones (IO) ha


sido el rápido avance tanto en la metodología como en la aplicación de los
modelos de optimización de redes. La aparición de algunos algoritmos ha tenido
un efecto importante, al igual que las ideas de ciencias de la computación acerca
de estructuras de datos y la manipulación eficiente de éstos. En la actualidad se
dispone de algoritmos y paquetes de computadora que se usan en forma rutinaria
para resolver problemas muy grandes que no se habrían podido manejar hace dos
o tres décadas.
Muchos modelos de optimización de redes son en realidad tipos especiales de
problemas de programación lineal.
Terminología de Redes

Red: conjunto de puntos y líneas que unen ciertos pares de puntos.


Nodos: Puntos (o vértices).
Arcos: Líneas, ligaduras, aristas o ramas. Se etiquetan para dar nombre a los
nodos en sus puntos terminales.
Arco dirigido: Si el flujo a través de un arco se permite sólo en una dirección. La
dirección se indica agregando una cabeza de flecha al final de la línea que
representa el arco.
Arco no dirigido: Si el flujo a través de un arco se permite en ambas direcciones.
Red dirigida: Red que tiene sólo arcos dirigidos.
Red no dirigida: Todos sus arcos son no dirigidos.
Trayectoria: Sucesión de arcos distintos que conectan nodos.

1
Ciclo: Trayectoria que comienza y termina en el mismo nodo.
Red conexa: Red en la que cada par de nodos está conectado.
Árbol: Red conexa (para algún subconjunto de n nodos) que no contiene ciclos no
dirigidos.
Árbol de expansión: Red conexa para los n nodos que contiene ciclos no
dirigidos.
Capacidad del arco: Cantidad máxima de flujo (quizá infinito) que puede circular
en un arco dirigido.
Nodo fuente: Nodo origen, tiene la propiedad de que el flujo que sale del nodo
excede el flujo que entra a él.
Nodo de demanda: Nodo de destino, donde el flujo que llega excede al que sale
de él.
Nodo de trasbordo: Intermedio, satisface la conservación del flujo, es decir, el
flujo que entra es igual al que sale.

PROBLEMAS DE FLUJO MÁXIMO

En términos generales, el problema de flujo máximo se puede describir de la


siguiente manera:

1. Todo flujo a través de una red conexa dirigida se origina en un nodo,


llamado fuente, y termina en otro nodo llamado destino.

2. Los nodos restantes son los nodos de trasbordo

2
3. Se permite el flujo a través de un arco solo en la dirección indicada por la
flecha, donde la cantidad máxima de flujo está dada por la capacidad del arco. En
la fuente, todos los arcos señalan hacia afuera. En el destino, todos señalan hacia
el nodo.

4. El objetivo es maximizar la cantidad total de flujo de la fuente al destino.


Esta cantidad se mide en cualquiera de las dos maneras equivalentes, esto es, la
cantidad que sale de la fuente o la cantidad que entra al destino.

ALGUNAS APLICACIONES:

A continuación se menciona algunos tipos de aplicaciones comunes del problema


del flujo máximo.

1. Maximizar el flujo a través de la red de distribución de una compañía desde


sus fábricas hasta sus clientes.

2. Maximizar el flujo a través de la red de suministros de una compañía de


proveedores a las fábricas.

3. Maximizar el flujo de petróleo por un sistema de tuberías.

4. Maximizar el flujo de agua a través de un sistema de acueductos

5. Maximizar el flujo de vehículos por una red de transporte.

En algunas de estas aplicaciones, el flujo a través de la red se puede originar en


más de un nodo y también puede terminar en más de uno, aunque el problema de
flujo máximo puede tener solo un origen y un destino.

3
Por ejemplo, una red de distribución de una compañía tiene varias fábricas y
múltiples clientes. En este caso se recurre a una reformulación ingeniosa para
ajustar esta situación al problema de flujo máximo. Se trata de aumentar la red
original para que incluya un origen ficticio, un destino ficticio y algunos arcos
nuevos. El origen ficticio se maneja como el nodo que da origen a todo el flujo que
en realidad se origina en algunos otros nodos. En cada uno de estos otros nodos
se inserta un nuevo arco que va desde el origen ficticio hasta este nodo, donde la
capacidad del arco es igual al flujo máximo que se puede originar en este nodo.
De manera similar, el destino ficticio se trata como el nodo que absorbe todo el
flujo que, en realidad, termina en algún otro nodo. Por lo tanto, se coloca un nuevo
arco desde cada uno de los otros nodos hasta el destino ficticio con capacidad
igual al flujo máximo que en realidad termina en este nodo. Debido a estos
cambios, todos los nodos de la red original se convierten en nodos de trasbordo
para que la red aumentada tenga un solo origen (la fuente ficticia) y un solo
destino (el destino ficticio) y se ajuste al problema del flujo máximo.

4
PROBLEMA DE FLUJO DE COSTO MÍNIMO

El problema del flujo de costo mínimo tiene una posición central entre los modelos
de optimización de redes; primero, abarca una clase amplia de aplicaciones y,
segundo, su solución es muy eficiente.
Igual que el problema del flujo máximo, toma en cuenta un flujo en una red con
capacidades de arco limitadas. Igual que el problema de la ruta más corta,
considera un costo (o distancia) del flujo a través de un arco. Igual que el
problema de transporte o el de asignación del capítulo 8, puede manejar varios
orígenes (nodos fuente) y varios destinos (nodos demanda) del flujo, de nuevo con
costos asociados. En realidad, estos cuatro problemas son casos especiales del
problema del flujo de costo mínimo, como se demostrará en esta sección.
La razón por la que el problema del flujo de costo mínimo se puede resolver de
modo tan eficiente es que se puede formular como un problema de programación
lineal y es posible resolverlo con una versión simplificada del método símplex
llamada método símplex de redes. En la siguiente sección se describirá este
algoritmo.

A continuación se describe el problema del flujo de costo mínimo.

1. La red es una red dirigida y conexa.

2. Al menos uno de los nodos es un nodo fuente.

3. Al menos uno de los nodos es un nodo demanda.

4. El resto de los nodos son nodos de trasbordo.

5. Se permite el flujo a través de un arco sólo en la dirección que indica la


flecha, donde la cantidad máxima de flujo está dada por la capacidad del
arco. (Si el flujo puede ocurrir en ambas direcciones, debe representarse
por un par de arcos con direcciones opuestas.)
6. La red tiene suficientes arcos con suficiente capacidad para permitir que
todos los flujos generados por los nodos fuente lleguen a los nodos
demanda.

7. El costo del flujo a través del arco es proporcional a la cantidad de ese flujo,
donde se conoce el costo por unidad.

8. El objetivo es minimizar el costo total de enviar el suministro disponible a


través de la red para satisfacer la demanda dada. (Un objetivo alternativo es
maximizar la ganancia total del envío.

5
ALGUNAS APLICACIONES

Tal vez el tipo más importante de aplicación del problema del flujo de costo
mínimo es en la operación de la red de distribución de una compañía. Como se
resume en el primer renglón de la tabla 9.3, este tipo de aplicación siempre incluye
determinar un plan para enviar bienes desde las fuentes (fábricas, etc.) a las
instalaciones de almacenamiento intermedias (según se necesite) y después a los
clientes.
En el caso de algunas aplicaciones de los problemas del flujo de costo mínimo,
todos los nodos de trasbordo son instalaciones de procesamiento y no almacenes.
Éste es el caso de la administración de desechos sólidos, indicado en el segundo
renglón de la tabla 9.3. En ese problema, el flujo de materiales a través de la red
comienza en las fuentes de desechos sólidos, luego va a las instalaciones para
procesar estos materiales de desecho y convertirlos en una forma adecuada para
el relleno y después se envía a los diferentes rellenos. Sin embargo, el objetivo
todavía es determinar el plan de flujo que minimice el costo total, donde el costo
ahora se refiere al embarque y al procesamiento.
En otras aplicaciones, los nodos demanda pueden ser instalaciones de
procesamiento. Por ejemplo, en el tercer renglón de la tabla 9.3, el objetivo es
encontrar el plan de costo mínimo para obtener suministros de varios proveedores
posibles, almacenar los bienes —según se requiera—, y luego enviar los
suministros a las instalaciones de procesamiento de la compañía (fábricas, etc.).
Como la cantidad total que pueden suministrar los proveedores es mayor que las
necesidades de la compañía, la red incluye un nodo de demanda ficticio que
recibe (sin costo) toda la capacidad no usada de los proveedores.
El siguiente tipo de aplicación de la tabla 9.3 —coordinación de mezclas de
productos en las plantas— ilustra que los arcos pueden representar algo distinto a
un canal de envío de un flujo físico de materiales. Esta aplicación se refiere a una
compañía con varias plantas (nodos fuente) que pueden producir los mismos
productos pero con diferentes costos. Cada arco que sale de un nodo fuente
representa la producción de uno de los productos posibles de esa planta, donde el
arco conduce a un nodo de trasbordo que corresponde al producto. En
consecuencia, este nodo de trasbordo tiene un arco que llega desde cada planta
capaz de producir este producto, y después los arcos que salen de este nodo van
a los respectivos clientes (nodos de demanda). El objetivo es determinar cómo
dividir la capacidad de producción de cada planta entre los productos para
minimizar el costo total de satisfacer las demandas de los distintos productos.
La última aplicación de la tabla 9.3 (administración de flujo de efectivo), ejemplifica
que diferentes nodos pueden representar un evento que ocurre en distintos
momentos. En este caso, cada nodo fuente representa un tiempo específico
(periodo) en que la compañía dispone de dinero (por madurez de inversiones,
cuentas por cobrar, venta de acciones, préstamos, etc.). El suministro de cada
nodo es la cantidad de efectivo que estará disponible. De manera similar, cada
nodo destino representa un tiempo específico (periodo) en que la compañía
deberá usar su reserva de efectivo.

6
La demanda de cada uno de estos nodos es la cantidad de efectivo que
necesitará. El objetivo es maximizar el ingreso de la compañía debido a estas
inversiones entre los tiempos en que se dispone de efectivo y se usa. En
consecuencia, los nodos de trasbordo representan la opción de una inversión a
corto plazo —es decir, la compra de certificados de depósito en un banco— por un
periodo específico. La red resultante tendrá una serie de flujos que representan un
programa de efectivo disponible, invertido y utilizado cuando la inversión madura.

Formulación del modelo

Considere una red conexa dirigida en la que los n nodos incluyen al menos un
nodo origen y un nodo destino. Las variables de decisión son:

y la información dada incluye

El valor de bi depende de la naturaleza del nodo i, donde

El objetivo es minimizar el costo total de enviar los recursos disponibles a través


de la red para satisfacer la demanda.

7
Si se usa la convención de que las sumas se toman sólo sobre arcos existentes, la
formulación de programación lineal de este problema es

sujeta a

La primera suma de las restricciones de los nodos representa el flujo total que sale
del nodo i mientras que la segunda representa el flujo total que entra al nodo i; por
tanto, la diferencia es el flujo neto generado en este nodo.

El patrón de los coeficientes de estas restricciones de nodo es una característica


importante de los problemas de flujo de costo mínimo. No siempre es fácil
reconocer un problema de flujo de costo mínimo, pero al formular (o reformular) un
problema de manera que sus coeficientes de restricción tengan este patrón es una
buena forma de hacerlo. Lo anterior permite resolver el problema de manera muy
eficiente mediante el método símplex de redes.

En algunas aplicaciones es necesario tener una cota inferior Lij  0 para el flujo
que pasa porcada arco i → j. Cuando esto ocurre se hace una conversión de
variables, x´ij = xij - Lij, donde xij se sustituye por x´ij + Lij en todo el modelo, a fi n
de ajustarlo al formato anterior con restricciones de no negatividad.

No se garantiza que el problema tenga soluciones factibles, pues esto depende en


parte de qué arcos están presentes en la red y de sus capacidades. De cualquier
manera, para una red diseñada en forma razonable, la condición necesaria más
importante es la siguiente.

Propiedad de soluciones factibles: una condición necesaria para que un problema


de flujo de costo mínimo tenga soluciones factibles es que

Es decir, que el flujo total generado por los nodos origen es igual al flujo total
absorbido por los nodos destino.
Si los valores de bi, que se dan en alguna aplicación violan esta condición, la
interpretación más común es que los recursos o las demandas —lo que se tenga
8
en exceso— representan en realidad cotas superiores y no cantidades exactas. El
paso análogo es agregar un nodo de demanda ficticio para absorber el exceso de
recursos —se agregan arcos con cij = 0 desde todos los nodos origen hasta este
nodo—, o bien agregar un nodo origen ficticio para generar un flujo equivalente al
exceso de demanda —se agregan arcos con cij = 0 de este nodo a todos los
nodos de demanda—.
En muchas aplicaciones, las cantidades bi y uij tendrán valores enteros y la
solución requerirá que las cantidades de flujo xij también sean enteras. Por fortuna,
igual que para el problema de transporte, este tipo de solución está garantizada
sin tener que establecer restricciones enteras de manera explícita sobre las
variables. Esto se debe a la siguiente propiedad.
Propiedad de soluciones enteras: en el caso de los problemas de flujo de costo
mínimo en donde toda bi y uij tienen un valor entero, todas las variables de cada
solución básica factible (BF), incluida la óptima, tendrán también valores enteros.

9
PROBLEMA DE FLUJO DE COSTE MÍNIMO

Dado G = (V,A) un grafo dirigido, V = {1,...,m}

el conjunto de vértices y

A = {(i,j),...,i,j ∈ V }, su conjunto de arcos.

En el que,

Cada vértice tiene asociado un número bi que representa la oferta o demanda en


ese vértice de un determinado bien.

Si bi > 0, se dice que i es un vértice origen

Si bi < 0, se dice que i es un vértice destino

Si bi = 0, se dice que i es un vértice de transbordo

Cada arco tiene asociada una variable xij ≥ 0 que indica el flujo enviado desde i
hasta j, y una cantidad cij que indica el coste de enviar una unidad desde i a j.

El Problema de Flujo de Coste Mínimo consiste en determinar cómo enviar la


oferta disponible a través de la red a fin de satisfacer la demanda con un coste
mínimo.

sea:

xij ≥ 0, ∀(i,j)

Se trata del Problema del Transbordo introducido en el tema anterior.

Hay situaciones en las que el flujo que puede pasar por cada arista esta´ limitado,
esto se traduce en cotas para las variables:
lij ≤ xij ≤ uij

10
ALGORITMO DEL ÁRBOL DE MÍNIMA EXPANSIÓN

Este árbol vincula los nodos de una red valiéndose de la longitud mínima total de
las ramas de conexión. Una aplicación común se presenta en la pavimentación de
carreteras que unen poblaciones, o de forma directa, o que pasan por otras
poblaciones. La solución del árbol de mínima expansión proporciona el diseño del
sistema de carreteras.

Sea N = {1, 2,…,n} el conjunto de nodos de la red y defina

Ck = Conjunto de nodos que han estado conectados de manera permanente en la


iteración k= Conjunto de nodos que se construirán permanentemente después de
la iteración k.

Ck

A = {(1, 2), (1, 5), (2, 3), (2, 4), (3, 4), (3, 5), (4, 3), (4, 6), (5, 2), (5, 6)}

N = {1, 2, 3, 4, 5, 6}

Los siguientes pasos describen al algoritmo del árbol de mínima expansión:

Paso 0. Establezca y

Paso 1. Inicie con cualquier nodo i en el conjunto no conectado y establezca, lo


que produce. Establezca.

Paso general k. Seleccione un nodo, j*, en el conjunto no conectado, que


produzca el arco más corto a un nodo en el conjunto Ck-1 conectado. Vincule j*
Permanentemente a Ck21 y elimínelo de para obtener respectivamente.

Deténgase si está vacío; de lo contrario, establezca k = k+ 1 y repita el paso.

Ejemplo

Midwest TV Cable Company va a proporcionar servicio de cable a cinco


desarrollos habitacionales.
La figura 6.6 ilustra las posibles conexiones de TV a las cinco áreas, con las millas
de cable anexadas a cada arco. El objetivo es determinar la red de cables más
económica.
El algoritmo se inicia en el nodo 1 (en realidad, cualquier otro nodo puede ser un
punto de inicio), el cual da por resultado

11
Las iteraciones del algoritmo se resumen en la figura 6.7. Los arcos delgados
proporcionan todos los candidatos entre C y . Los arcos gruesos son los vínculos
permanentes del conjunto conectado C, y el arco de rayas es el nuevo vínculo
(permanente) agregado en cada iteración. Por ejemplo, en la iteración 1, la rama
(1, 2) es el vínculo más corto (5 1 milla) entre todas las ramas candidatas del nodo
1 a los nodos 2, 3, 4, 5 y 6 en el conjunto no conectado. De ahí que el vínculo (1,
2) se hace permanente y j* 5 2, de lo cual resulta.

El árbol de mínima expansión que se muestra en la iteración 6 de la figura 6.7 da


la solución. Las millas de cable mínimas resultantes que se necesitan para
proporcionar el servicio de cable deseado son 1 1 3 1 4 1 3 1 5 5 16 millas.

En teoría, un árbol de mínima expansión puede formularse y resolverse como un


programa lineal. Sin embargo, la PL no es una opción práctica porque deben
agregarse numerosas restricciones para excluir todos los ciclos y el resultado es
una PL enorme, aun para redes pequeñas.

CONEXIONES DE CABLE PARA MIDWEST TV COMPANY

12
MODELOS DE REDES DE PROGRAMACIÓN LINEAL

Optimización de redes es un tipo especial de modelo en programación lineal. Los


modelos de redes tienen tres ventajas importantes con respecto a la programación
lineal.

1. Pueden resolverse muy rápidamente. Problemas que con programación


lineal tendrían 1000 filas y 30.000 columnas pueden ser resueltos en
segundos. Esto permite que los modelos de redes sean usados en muchas
aplicaciones (tal como la toma de decisión en tiempo real) para lo cual la
programación lineal no es lo ideal.
2. Requieren en forma natural de soluciones enteras. Al reconocer que un
problema puede formularse como algún modelo de red nos permitirá
resolver tipos especiales de problemas de programación entera
aumentando la eficiencia y reduciendo el tiempo consumido por los
algoritmos clásicos de programación lineal.
3. Son intuitivos. Los modelos de redes proveen un lenguaje para tratar los
problemas, mucho más intuitivo que "variables, objetivo, restricciones".

Obviamente los modelos de redes no son capaces de cubrir la amplia gama de


problemas que puede resolver la programación lineal. Sin embargo, ellos ocurren
con suficiente frecuencia como para ser considerados como una herramienta
importante para una real toma de decisiones.

Ejemplos

Existen muchos ejemplos prácticos con flujo de redes. Estos son los más
utilizados:

• Problema de Transporte
• Problema de asignación
• Ruta más corta

Problema de Transporte

Considere el siguiente problema de limpieza de nieve: la ciudad está dividida en


comunas. Después de una tormenta de nieve, se debe sacar la nieve y botarla en
un lugar conveniente. En Helsinki (la ciudad del problema), esos lugares son
grandes esplanadas con un sistema de secado artificial. Cada una de esos
"destinos" tiene una capacidad. El objetivo es minimizar la distancia recorrida para
transportar la nieve.
Este problema es un ejemplo de un problema de transporte. En tales problemas,
existe un conjunto de nodos llamados fuentes y un conjunto de nodos llamados
destinos. Todos los arcos van desde el origen al destino. Existe un costo unitario

13
(por unidad) asociado a cada arco. Cada fuente tiene un concepto de
abastecimiento y cada destino maneja el concepto de demanda. Se asume que la
cantidad total a abastecer es exactamente igual a la cantidad demandada. Para el
problema de la nieve la red puede ser como se muestra en la figura 1.4.

¿Qué define a un modelo de transporte?

En general el modelo de transporte tiene que ver con distribuir desde un grupo de
centros de abastecimiento, llamados fuentes a un grupo de centros de recepción
denominados destinos para minimizar el costo total.

En general, la fuente i tiene una capacidad para abastecer de unidades, y el


destino j tiene una demanda para unidades. El costo de la distribución de los
items desde la fuente al destino es proporcional al número de unidades. Esta
información puede expresarse de una manera apropiada a través de una tabla
como en el ejemplo.

Se supondrá de una manera general que la oferta es igual a la demanda total. Si


esto no fuese verdad para un problema particular, se podrán crear fuentes o
destinos dummy para que esta condición se cumpla. Esto se denomina problema
de transporte balanceado. Estos centros dummy pueden tener costos de
distribución cero.

Supongamos que la enlatadora 3 puede llenar sólo 75 camiones. Así la cantidad


"ofrecida" es ahora 25 unidades menores. Un nodo de oferta dummy se crea para
balancear el problema, y el costo de la oferta dummy podría ser cero o representar
el costo de NO-satisfacer la demanda.

El costo de transporte tiene varias propiedades interesantes:

14
Factibilidad. El problema tiene una solución factible del momento que la oferta
iguala a la demanda.

Integralidad. Si las ofertas y las demandas son enteras, cada solución básica
(incluyendo el óptimo) será entera. De esta manera no es necesario resolverlo por
programación lineal entera. Cabe hacer notar que no significa que cada destino
será abastecido por exactamente un origen.

Problema de asignación

Un caso especial del problema de transporte es el problema de asignación el cuál


ocurre cuando cada oferta es 1 y cada demanda es 1. En este caso la integralidad
implica que cada abastecedor será asignado sólo a un destino y cada destino
tendrá sólo un abastecedor.

Este es un problema de transporte con todas las ofertas y demandas iguales a 1,


un problema de asignación.

Debe notar que un problema balanceado debe tener el mismo número de puntos
de ofertas que de demandas, así debemos agregar una máquina dummy
(correspondiente a una máquina artificial) y asignar un cero a los costos de
asignar la máquina dummy a una planta.

15
Ruta más corta

Considere una red telefónica. Cierto mensaje puede tomar una cierta cantidad de
tiempo sobre cada línea (debido a la congestión, retardo en los switching, etc).
Este tiempo puede variar considerablemente minuto a minuto y las compañías de
telecomunicaciones gastan muchísimo tiempo y dinero buscando la consecuencia
de los retardos en el sistema. Suponiendo un switcher centralizado que conoce
sus retardos, queda entonces el problema de rutear una llamada de tal forma de
minimizar los retardos. La figura 1.1. muestra el mayor retardo para cada
trayectoria desde LA hasta Boston. ¿Cómo poder determinar la trayectoria más
rápida?

Figura 1.1: Red Telefónica

Este es un ejemplo de un tipo particular de modelo de red, denominado el


problema de la ruta más corta. En tal problema, se tiene una red con costos sobre
las ramas y dos nodos especiales: un nodo de inicio y un nodo de término. El
objetivo es encontrar una trayectoria desde el nodo de inicio al nodo de término de
tal forma que el peso total sea mínimo.

PROBLEMA DE PERT
El método PERT (Program Evaluation and Review Technique –Técnica de
evaluación y revisión de programas) es un método que sirve para planificar
proyectos en los que hace falta coordinar un gran número de actividades.

Por ejemplo, supongamos que queremos hacer un viaje de fin de curso. El PERT
es una herramienta que nos permite planificar las diferentes actividades que son
necesarias para el éxito del viaje. Utilizaremos el PERT para encontrar respuesta
a una serie de preguntas, como

¿Cuándo debemos empezar a planificar el viaje?

¿Qué tareas tenemos que realizar?

16
¿En qué orden?

¿Qué tareas son más importantes si queremos evitar retrasos?

¿Qué retraso nos podemos permitir en cada tarea?

¿Qué ocurrirá con el proyecto si terminamos una tarea antes o después de lo


previsto?

El método PERT nos permite representar gráficamente las diferentes actividades


que componen el proyecto y calcular los tiempos de ejecución de forma que
podamos contestar a esas preguntas.

Para ello debemos seguir 4 pasos:

Hacer una lista de actividades o tareas


Hacer una “tabla de precedencias”
Dibujar el grafo
Calcular las duraciones

A continuación, explicamos los diferentes pasos:

Paso nº 1: Hacer una lista de las actividades que tienen que llevarse a cabo:

Tenemos que hacer una lista de todas las tareas que son necesarias para poder
llevar el proyecto a buen término. En este punto, no es necesario que las tareas
estén ordenadas cronológicamente. Simplemente se trata de hacer una lista de
tareas lo más completa posible. Es fundamental que no nos dejemos ninguna
tarea fuera.

En nuestro caso, queremos organizar un viaje de fin de curso y, por tanto, una
posible lista de tareas sería la siguiente:

Contactar con otros compañeros que podrían estar interesados en organizar el


viaje y formar un comité organizador.

Elaborar una lista de agencias de viaje potenciales.

Recabar información acerca de diferentes destinos turísticos, con presupuestos


orientativos.

Estudiar posibles fechas para el viaje.

Preparar una reunión informativa para ver la disponibilidad de los compañeros de


clase y discutir destinos y fechas.
17
Sabiendo el número aproximado de personas interesadas y las fechas
aproximadas, negociar con diferentes agencias.

Organizar reunión para decidir la opción final.

Recaudar reservas de plaza.


Organizar el pago completo y recogida de billetes.

Preparar folleto informativo para los participantes.

Paso nº 2: Hacer una tabla de precedencias:

Para cada actividad, se trata de establecer qué actividades deben precederla. Es


decir, vamos a tomar la lista de actividades, que posiblemente estará
desordenada, y vamos a ordenar las tareas según una relación de precedencia.
En la tabla, indicamos en la columna de la izquierda cada una de las tareas y, en
la columna de la derecha, las tareas que la preceden, es decir: aquellas tareas
que necesariamente tenemos que haber terminado antes de poder empezar cada
tarea.

Actividades
Actividad
precedentes
A -
B A
C A
D A
E B, C, D
F E
G F
H G
I H
J G

Por ejemplo, para poder empezar la tarea C (recabar información acerca de


posibles destinos turísticos), es necesario haber terminado la tarea A (formar un
comité organizador): al fin y al cabo, es el comité organizador el que va a tener
que contactar con las agencias y recabar información.

Cada una de las relaciones de precedencia que tenemos en la tabla se puede


representar gráficamente. En realidad hay sólo 4 tipos distintos de grafos
parciales:

18
Nudo inicial:

De él deben partir todas las actividades que no tienen precedente. En nuestro


caso, sólo hay una actividad sin precedente y por tanto dibujaríamos:

Precedencias lineales:

Corresponden a los casos en los que hay una única actividad que precede y una
única actividad que procede. Por ejemplo:

E F

Precedencias de divergencia:

Corresponden a los casos en los que hay una actividad que precede y varias
actividades que proceden. En nuestro caso:

B
A
C

Precedencias de convergencia:

Corresponden a los casos en los que hay varias actividades que preceden y una
única actividad que procede.

B
C
E

19
Paso nº 3: Dibujar el grafo:

Se hace siguiendo 3 reglas:

Un nudo sólo puede numerarse una vez que se han numerado todos los nudos
que le preceden (que tienen flechas que llegan hasta él)

Debe haber un único nudo de comienzo y un único nudo de final.

Dos flechas que parten del mismo nudo no pueden tener el mismo nudo de
destino.

Esta última regla es la menos intuitiva. Puede suceder perfectamente que, para
pasar de una fase del proyecto a la siguiente, sean necesarias varias actividades
distintas. Por ejemplo, en nuestro proyecto, las actividades B, C y D son proceden
de A y preceden a E. En principio, esto se podría representar de la siguiente
forma:

B
A E
C

Sin embargo es interesante (para que la notación no sea demasiado pesada a


medida que el PERT se complica) poder definir una actividad como un conjunto de
2 nudos (los 2 nudos que están ligados por esa actividad); y con la forma de
representación que acabamos de plantear esto no sería posible. Por eso,
utilizamos la siguiente representación:

B B’
C
C ’
2 5 6
D
D

20
Hemos añadido 3 actividades “ficticias” (con los nombres B’, C’ y D’) y 3 nudos
intermedios simplemente para respetar el principio de designación unívoca.
Para construir el grafo completo, utilizamos estas reglas que acabamos de
describir y obtenemos el siguiente grafo:

3 10
B B’ H
I

A E F G
C C’ J
1 2 4 6 7 8 9 11

D D’

Paso nº 4: Análisis de duraciones: tiempos "early" y "last":

El grafo PERT se utiliza para calcular la duración del proyecto y para evaluar la
importancia de las diferentes tareas:

Tiempo "early" = tiempo mínimo necesario para alcanzar un nudo.

Tiempo "last" = tiempo máximo que podemos tardar en alcanzar un nudo sin que
el proyecto sufra un retraso.

Las duraciones previstas nos vienen dadas por las características de las diferentes
tareas: hay tareas que llevan más o menos tiempo. Por el contrario, los tiempos
early y last dependen de la relación entre las diferentes tareas, y podemos
calcularlos a través del grafo PERT. Por ejemplo, supongamos que las duraciones
previstas son las siguientes:

Duración
prevista
Actividad
(semanas)

A 4
B 4
C 8
D 1
E 3
F 7
G 3
H 6
I 10
J 2

21
A continuación incorporaríamos estos datos al grafo PERT, de la siguiente forma:

Debajo de cada flecha, colocamos la duración de la actividad correspondiente.

Para los tiempos early: empezamos por el nudo inicial, asignándole un tiempo
early = 0. A partir de este nudo, el tiempo early de cada nudo será igual al tiempo
early del nudo anterior + la duración de la actividad precedente. Si hay varios
nudos y actividades inmediatamente anteriores, se toma el máximo de los
“candidatos”.

Para los tiempos last: empezamos por el nudo final, asignándole un tiempo last
igual a su tiempo early. A partir de este nudo, el tiempo last de cada nudo será
igual al tiempo last del nudo posterior menos la duración de la actividad
procedente. Si hay varios nudos y actividades inmediatamente posteriores, se
toma el valor mínimo entre los “candidatos”.

Decimos que hay “HOLGURA” en un nudo cuando el tiempo early es inferior al


tiempo last. Que haya holgura significa que podemos permitirnos un retraso sin
que la duración total del proyecto se vea comprometida.

No hay holgura en un nudo cuando el tiempo early es igual al tiempo last. El


“CAMINO CRÍTICO” es la senda definida por los nudos que no tienen holgura.
Este camino es importante porque nos indica todas las actividades para las cuales
es importante que no haya ningún retraso.

En nuestro caso, tenemos holgura únicamente en 2 actividades:

B (Elaborar la lista de agencias de viajes potenciales)


D (Estudiar posibles fechas para el viaje)

A continuación mostramos el grafo PERT completo:

22
PROBLEMA DEL AGENTE VIAJERO - TSP

En el Problema del Agente Viajero - TSP (Travelling Salesman Problem), el


objetivo es encontrar un recorrido completo que conecte todos los nodos de una
red, visitándolos tan solo una vez y volviendo al punto de partida, y que además
minimice la distancia total de la ruta.
Este tipo de problemas tiene gran aplicación en el ámbito de la logística y
distribución, así como en la programación de curvas de producción.

El problema del agente viajero tiene una variación importante, y esta depende de
que las distancias entre un nodo y otro sean simétricas o no, es decir, que la
distancia entre A y B sea igual a la distancia entre B y A, puesto que en la práctica
es muy poco probable que así sea.
La cantidad de rutas posibles en una red está determinada por la ecuación:

(n-1)!

Es decir que en una red de 5 nodos la cantidad de rutas probables es igual a (5-1)!
= 24, y a medida que el número de nodos aumente la cantidad de rutas posibles
crece factorialmente. En el caso de que el problema sea simétrico la cantidad de
rutas posibles se reduce a la mitad, es decir:
( (n-1)! ) / 2

Lo cual significa un ahorro significativo en el tiempo de procesamiento de rutas de


gran tamaño.

MÉTODOS DE SOLUCIÓN

La complejidad del cálculo del problema del agente viajero ha despertado


múltiples iniciativas por mejorar la eficiencia en el cálculo de rutas. El método más
básico es el conocido con el nombre de fuerza bruta, que consiste en el cálculo de
todos los posibles recorridos, lo cual se hace extremadamente ineficiente y casi
que se imposibilita en redes de gran tamaño. También existen heurísticos que se
han desarrollado por la complejidad en el cálculo de soluciones óptimas en redes
robustas, es por ello que existen métodos como el vecino más cercano, la
inserción más barata y el doble sentido. Por último se encuentran los algoritmos
que proporcionan soluciones óptimas, como el método de branch and bound
(ramificación y poda), que trabaja el problema como un algoritmo de asignación y
lo resuelve por medio del método simplex.

23
MÉTODO DE FUERZA BRUTA

El método de la fuerza bruta no implica la aplicación de ningún algoritmo


sistemático, tan solo consiste en explorar todos los recorridos posibles.
Considerando la siguiente red simétrica, los caminos posibles se reducen a la
mitad:

Posibles rutas

A - B - D - C - A = 9 + 15 + 4 + 7 = 35 km
A - B - C - D - A = 9 + 10 + 4 + 8 = 31 km
A - C - B - D - A = 7 + 10 + 15 + 8 = 40 km

Rutas simétricas

A - D - C - B - A = 8 + 4 + 10 + 9 = 31 km
A - C - D - B - A = 7 + 4 + 15 + 9 = 35 km
A - D - B - C - A = 8 + 15 + 10 +7 = 40 km

MÉTODO DEL VECINO MÁS CERCANO

El método del vecino más cercano es un algoritmo heurístico diseñado para


solucionar el problema del agente viajero, no asegura una solución óptima, sin
embargo suele proporcionar buenas soluciones, y tiene un tiempo de cálculo muy
eficiente. El método de desarrollo es muy similar al utilizado para resolver
problemas de árbol de expansión mínima.

El método consiste en una vez establecido el nodo de partida, evaluar y


seleccionar su vecino más cercano. En este caso:

En la siguiente iteración habrá que considerar los vecinos más cercanos al nodo C
(se excluye A por ser el nodo de origen):

En la siguiente iteración los vecinos más cercanos de D serán C, con quien ya


tiene conexión, A quién es el nodo de origen y B, por esta razón B se debe
seleccionar por descarte. Al estar en B todos los nodos se encuentran visitados,
por lo que corresponde a cerrar la red uniendo el nodo B con el nodo A, así
entonces la ruta solución por medio del vecino más próximo sería A, C, D, B, A =
7, 4, 15, 9 = 35 km.
24
Este es un caso en el que a pesar de tener una red compuesta por pocos nodos,
el método del vecino más cercano no proporciona la solución óptima, la cual
calculamos con el método de fuerza bruta como 31 km.

MÉTODO DE BRANCH AND BOUND - WINQSB

El método de branch and bound (ramificación y poda) nos proporciona una


solución óptima del problema del agente viajero, calculando mediante el algoritmo
simplex la solución del modelo. A medida que aumente el tamaño de la red el
método puede tardar gran cantidad de tiempo en resolverse, sin embargo para
redes de mediano tamaño es una excelente alternativa. En este caso y
considerando la red que hemos desarrollado mediante los métodos anteriores,
utilizaremos el módulo Network Modeling del software WinQSB para encontrar la
solución óptima.

25
BIBLIOGRAFIA

FREDERICK. S. H & Gerald. J. L. (2010). Modelos de optimización de redes. En


Introducción a la investigación de operaciones (Novena edición) (pp. 331-380).
México: Mc Graw Hill.

26

Das könnte Ihnen auch gefallen