• No se han encontrado resultados

A sampling simulation approach for the stochastic constrained shortest path problem

N/A
N/A
Protected

Academic year: 2020

Share "A sampling simulation approach for the stochastic constrained shortest path problem"

Copied!
8
0
0

Texto completo

(1)

Resumen— Una variante del problema de ruta más corta restringido (CSP por sus siglas en ingles), se puede desarrollar cuando el consumo de recurso en cada arco es modelado como una variable aleatoria y además, en lugar de llevar a cabo una restricción de recursos determinística, se busca un camino en el que la probabilidad de satisfacer el consumo máximo de recurso esté por encima de una confiabilidad dada. El mayor reto se encuentra en la distribución de probabilidad del recurso total del camino. Para resolver este problema, utilizamos un método de muestreo y simulación. Como resultado obtenemos gran variedad de copias de nuestra red en donde los atributos de cada arco son representados por un costo y un recurso determinístico, obtenido por medio de una realización de la variable aleatoria. Involucramos el algoritmo Pulso [1] (método exacto para resolver problemas CSP de gran escala), como nuestro motor de optimización y lo ejecutamos en cada una de las copias. Debido a que estamos interesados en evaluar la restricción de probabilidad, la confiabilidad de cada camino es medido por la media del proceso de simulación. Desarrollamos experimentos en redes con hasta 9.559 nodos y 39.377 arcos al variar las distribuciones de probabilidad. Encontramos el camino que minimiza el costo y satisface la restricción de confiabilidad con al menos nuestro parámetro de confiabilidad. Proponemos una técnica de muestreo y simulación capaz de resolver CSP estocásticos donde los parámetros estocásticos estarán relacionados con la restricción de recurso en un tiempo computacional razonable.

Palabras clave— Problema estocástico de ruta más corta

restringido, simulación, muestreo, confiabilidad.

I. INTRODUCCIÓN

L problema de ruta más corta restringido (CSP), es bien conocido en la literatura y ha sido estudiado extensivamente. Este problema considera una red 𝒢 = (𝒩, 𝒜) donde 𝒩 representa el conjunto de nodos y 𝒜 el conjunto de arcos que conectan los nodos. Cada arco está representado por un costo no negativo 𝑐𝑖,𝑗 y un consumo de recurso

determinístico 𝑡𝑖,𝑗. El CSP consiste en encontrar el camino 𝒫∗,

desde un nodo inicial a un nodo final, que minimiza el costo y adicionalmente cumple con la restricción del consumo máximo de recurso 𝑡𝑚𝑎𝑥[1].

Existe gran variedad de aplicaciones las cuales pueden ser modeladas como el CSP, entre estas se encuentran: ruteo de vehículos, planeamiento de personal, planeamiento aéreo,

ruteo de sensores de red, análisis de reemplazo de equipamiento, entre otros.

Una variante para el CSP puede determinarse al considerar uno de sus parámetros de forma estocástica. Se han desarrollado diversas investigaciones a nivel mundial, con el fin de brindar soluciones al CSP estocástico [3]. Por ejemplo, Kulkarni [4] desarrolla un método enfocado en cadenas de Markov de tiempo continuo para solucionar una red dirigida donde la longitud de los arcos son variables aleatorias independientes y distribuidas exponencialmente, Peer & Sharma [5] formulan a través de programación lineal el cálculo de la longitud mínima en redes estocásticas incompletas, cuando la longitud de los arcos se distribuyen de igual forma que el trabajo desarrollado por Kulkarni, es por tal motivo que Peer y Sharma presentan una comparación entre ambos métodos. Este problema ha demostrado que puede ser modelado de diferentes maneras, por ejemplo Xiaoyu [6] desarrolla tres tipos de programación estocástica los cuales soluciona a través de un algoritmo hibrido inteligente integrando simulación estocástica y algoritmos genéticos. Otro acercamiento al problema CSP estocástico se realiza a través de redes acíclicas; Martin [7] desarrolla un método para el cálculo de la función de densidad del tiempo desde el nodo inicial al nodo final, teniendo en cuenta que las funciones de densidad de los arcos son polinomiales. Así mismo, Sigal, Pritsker & solberg [8] presentan una derivación analítica de los índices de optimalidad del camino (probabilidad que un camino sea más corto que los demás caminos).

Como se puede observar, la variante del CSP al incluir parámetros estocásticos, ha sido estudiado a través de diferentes enfoques, sin embargo el problema estocástico en el recurso no ha sido de igual manera alcanzado, por tal motivo el objetivo de este trabajo es ampliar el campo de investigación en esta área, a través de la implementación de un algoritmo que permita la solución del CSP con consumo de recurso estocástico, donde el parámetro de recurso en cada arco se comporta como una variable aleatoria 𝑇𝑖,𝑗 ~ 𝐺(𝑖. 𝑒 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙, 𝑙𝑜𝑔𝑛𝑜𝑟𝑚𝑎𝑙, 𝑒𝑡𝑐). Este algoritmo

está basado en un método de muestreo y simulación de la red, e implementa el algoritmo Pulso [1] como motor de optimización. Adicionalmente, permite extender el problema y es flexible al permitir incluir otros métodos de solución basados en muestreo y simulación.

A sampling-simulation approach for the

stochastic constrained shortest path problem

Sergio H. Cárdenas, Daniel Duque. Centro para la Optimización y Probabilidad Aplicada (COPA),

Departamento de Ingeniería Industrial, Universidad de los Andes, Bogotá, Colombia.

(2)

Este trabajo está organizado de la siguiente manera: En la sección II se enunciará el planteamiento del problema, diferenciando entre el problema determinístico y el problema estocástico. La sección III hará referencia a los fundamentos teóricos, los cuales son las bases para la realización del algoritmo. La sección IV explicará claramente cada uno de los procesos utilizados en el algoritmo propuesto, adicionalmente brinda una pequeña descripción del algoritmo utilizado como motor de optimización. La sección 0 explicará los resultados computacionales obtenidos a través de la aplicación del algoritmo. Finalmente, la sección ¡Error! No se encuentra el

origen de la referencia. concluye el trabajo desarrollado y

realiza un esquema de los posibles trabajos futuros. II. PLANTEAMIENTO DEL PROBLEMA

A. Problema determinístico.

Inicialmente partimos del CSP como un problema determinístico, el cual consiste en encontrar el camino más corto 𝒫∗, en una red 𝒢 = (𝒩, 𝒜) compuesta por un conjunto

de nodos 𝒩 y un conjunto de arcos 𝒜. Cada uno de los arcos está descrito por unos pesos determinísticos y no negativos 𝑐𝑖,𝑗

y 𝑡𝑖,𝑗, los cuales describen el costo y consumo de recurso,

respectivamente, de ir desde el nodo 𝑣𝑖 al nodo 𝑣𝑗, donde

𝑣𝑖, 𝑣𝑗∈ 𝒩|𝑖 ≠ 𝑗. Adicionalmente, este camino 𝒫∗ tiene que

cumplir la restricción del recurso máximo 𝑡𝑚𝑎𝑥. A partir de

este problema tenemos la siguiente formulación (1):

min ( ∑ 𝑐𝑖,𝑗𝑥𝑖,𝑗 (𝑖,𝑗)∈𝒜

)

s.a

∑ 𝑥𝑖𝑗

{𝑗|(𝑖,𝑗)∈𝒜}

− ∑ 𝑥𝑗𝑖

{𝑗|(𝑗,𝑖)∈𝒜}

= {

1, 𝑖 = 𝑠 0, 𝑖 ≠ 𝑠, 𝑒 −1, 𝑖 = 𝑒

∀𝑖, 𝑗 ∈ 𝒩

∑ 𝑡𝑖𝑗𝑥𝑖𝑗 (𝑖,𝑗)∈𝒜

≤ 𝑡𝑚𝑎𝑥 (1)

𝑥𝑖𝑗 ∈ {0,1} ∀(𝑖, 𝑗) ∈ 𝒜

B. Planteamiento estocástico

En el momento que adicionamos el recurso como una variable aleatoria 𝑇𝑖,𝑗 ~ 𝐺(𝑖. 𝑒 𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑐𝑖𝑎𝑙, 𝑙𝑜𝑔𝑛𝑜𝑟𝑚𝑎𝑙, 𝑒𝑡𝑐)

debemos realizar una modificación de gran importancia en el modelo y adicionar la restricción de probabilidad, la cual nos permite seleccionar el camino que minimiza el costo y cuya probabilidad que el consumo de recurso total sea menor al 𝑡𝑚𝑎𝑥 sea mayor a una confiabilidad 𝛼 dada. Para tal fin,

debemos definir el consumo aleatorio total del camino como:

𝑇𝒫= ∑ 𝑇𝑖𝑗𝑥𝑖𝑗 (𝑖,𝑗)𝒜

(2)

Finalmente, la formulación (2) del CSP teniendo en cuenta el consumo de recurso como una variable aleatoria es la siguiente:

min ( ∑ 𝑐𝑖,𝑗𝑥𝑖,𝑗 (𝑖,𝑗)∈𝒜

)

s.a

∑ 𝑥𝑖𝑗

{𝑗|(𝑖,𝑗)∈𝒜}

− ∑ 𝑥𝑗𝑖

{𝑗|(𝑗,𝑖)∈𝒜}

= {

1, 𝑖 = 𝑠 0, 𝑖 ≠ 𝑠, 𝑒 −1, 𝑖 = 𝑒

∀𝑖, 𝑗 ∈ 𝒩

𝑃(𝑇𝒫≤ 𝑡𝑚𝑎𝑥) ≥ 𝛼 (3)

𝑥𝑖𝑗 ∈ {0,1} ∀(𝑖, 𝑗) ∈ 𝒜

El gran reto en esta variante del CSP se encuentra en la ecuación (2), ya que no es posible conocer la distribución de probabilidad del consumo de recurso total del camino 𝑇𝒫. Por

tal motivo y con el fin de brindar una solución a este problema se plantea el algoritmo basado en muestreo y simulación el cual será explicado en la sección IV.

III. FUNDAMENTOS TEÓRICOS

Con el fin de tener mayor claridad del porqué se eligió el procedimiento expuesto en el algoritmo propuesto, se explicará en detalle las bases teóricas que se eligieron para desarrollarlo.

A. Aproximación promedio de la muestra

La intuición del algoritmo propuesto se basa en el trabajo desarrollado por Kleywegt, Shapiro y Homem-de-Mello [9] en donde la idea básica del método que desarrollan es generar una muestra aleatoria con el fin de aproximar la función del valor esperado por medio de la función promedio de la muestra correspondiente. El problema de optimización obtenido a través de la generación de la muestra es resuelto y el procedimiento se repite varias veces hasta que un criterio de parada es cumplido (Kleywegt, et al, 2002).

El problema está constituido de la siguiente forma: min

𝑥∈𝑆{𝑔(𝑥) ≔ 𝔼𝑝𝐺(𝑥, 𝑊)} (4)

Donde 𝑊 es un vector aleatorio con distribución de probabilidad 𝑃, 𝑆 es un conjunto finito, 𝐺(𝑥, 𝑤) es una función real evaluada para ambas variables 𝑥 y 𝑤, y 𝔼𝑃𝐺(𝑥, 𝑊) =

∫ 𝐺(𝑥, 𝑤)𝑃(𝑑𝑤) es el correspondiente valor esperado

El método propuesto en [9] está especialmente enfocado en problemas con las siguientes características:

1. El valor esperado de la función 𝑔(𝑥) ≔ 𝔼𝑝𝐺(𝑥, 𝑊) no

puede ser escrita en forma cerrada y/o sus valores no pueden ser fácilmente calculados.

(3)

un 𝑥 y un 𝑤 dados.

3. El conjunto 𝑆 de soluciones factibles, aunque es finito, es realmente grande, por tal motivo métodos de numeración exhaustiva no son viables.

(Kleywegt, et al, 2002).

Como se puede observar las tres características son aplicables para el problema a tratar, ya que la primera característica, fácilmente puede compararse con la ecuación (2), en donde el consumo total del recurso del camino 𝑇𝒫 no es

fácilmente computable y por lo tanto no es trivial estimar su probabilidad. La segunda característica se puede referenciar a la ecuación (1), donde para valores dados de 𝑡𝑖,𝑗 y 𝑥𝑖,𝑗 es

posible calcular la función. Finalmente, el conjunto de soluciones factibles es finito, ya que estamos trabajando bajo una red dada, sin embargo la cantidad de caminos posibles es realmente grande.

De acuerdo con los resultados de convergencia obtenidos en [9], se demuestra que al tener 𝑊1, … , 𝑊𝑁 como realizaciones

aleatorias, independientes e idénticamente distribuidas de la muestra aleatoria de tamaño 𝑁, se puede considerar la función del promedio de muestra como:

𝑔̂𝑁(𝑥) ≔

1

𝑁∑ 𝐺(𝑥, 𝑊

𝑗) 𝑁

𝑗=1

Por tal motivo, el problema asociado es de la forma: min

𝑥∈𝑆 𝑔̂𝑁(𝑥) (5)

Dado que el 𝔼[𝑔̂𝑁(𝑥)] = 𝑔(𝑥), es posible determinar la

función (4) como el valor real y la función (5) como la aproximación promedio de la muestra.

Si denominamos 𝑣∗≔ min

𝑥∈𝑆 𝑔(𝑥) y 𝑣̂𝑁≔ min𝑥∈𝑆 𝑔̂𝑁(𝑥)

podemos concluir por la proposición 2.1 propuesta en [9], que la siguiente propiedad se cumple: 𝑣̂𝑁 → 𝑣∗ con probabilidad

de 1, a medida que 𝑁 → ∞1.

Pagnoncelli, Ahmed y Shapiro [10] presentan una variante al problema presentado anteriormente ya que discuten como se puede utilizar el método de aproximación promedio de la muestra (SAA) para obtener buenas soluciones candidatas en los problemas con restricciones similares a la (3) (restricciones de probabilidad). Para tal fin, presentan el siguiente problema:

min

𝑥∈𝑆 𝑓(𝑥)

𝑠. 𝑎

𝑝(𝑥) ≤ 𝛼

Donde,

𝑃(𝑥) ≔ 𝑃{𝐺(𝑥, 𝑊) > 0}

1

Para mayor información sobre las pruebas correspondientes de la proposición 2.1 pueden referirse a [9]

Si determinamos la medida empírica como: 𝑃̂𝑁≔

1

𝑁 ∑ Δ(𝑊

𝑗) 𝑁 𝑗=1

Siendo Δ(𝑊) la medida de masa en un punto 𝑊. Y al utilizar una función indicadora:

𝕝(0,∞)(𝑡) ≔ {1, 𝑠𝑖 𝑡 > 00, 𝑠𝑖 𝑡 ≤ 0

Se puede escribir 𝑝(𝑥) = 𝔼𝑃[𝕝(0,∞)(𝐺(𝑥, 𝑊))] y

𝑃̂𝑁(𝑥) = 𝔼𝑃𝑁[𝕝(0,∞)(𝐺(𝑥, 𝑊))] =

1

𝑁∑ 𝕝(0,∞)(𝐺(𝑥, 𝑊

𝑗)) 𝑁

𝑗=1

Similarmente al problema presentado en [9] la solución 𝑃̂𝑁(𝑥) → 𝑃(𝑥) cuando 𝑁 → ∞.

Esta última solución por medio del método de aproximación promedio de la muestra, nos permite trabajar utilizando la restricción de probabilidad (3), en el cual la función indicadora 𝕝(0,∞) es modificada:

𝕝(0,∞)(𝑡) ≔ {

1, 𝑠𝑖 𝑡 ≤ 𝑡𝑚𝑎𝑥

0, 𝑠𝑖 𝑡 > 𝑡𝑚𝑎𝑥

Finalmente, esto nos permite concluir que entre mayor sea el tamaño de la muestra el resultado va a tender a los resultados reales, por tal motivo se desea que este tamaño generado por el algoritmo propuesto sea bastante extenso, dentro del tiempo computacional razonable.

IV. ALGORITMO PROPUESTO

Para brindar mayor claridad sobre la idea básica del algoritmo propuesto se presenta el siguiente diagrama, el cual será explicado en las siguientes secciones.

Fig. 1. Esquema del algoritmo propuesto.

A continuación se muestra el seudocódigo para el algoritmo propuesto, las líneas 1 a 7 inicializan las variables utilizadas en el código, es decir: el camino inicial que recibe el algoritmo pulso 𝒫, el costo 𝑐, el consumo de recurso 𝑡, el rango inferior 𝜌 para la generación de números aleatorios, el número de

(4)

iteraciones 𝑖𝑡, una variable booleana como parámetro para el while, la cual indica si el algoritmo se detiene y el mejor camino 𝒫∗. Línea 8 llama al algoritmo pulso (Algoritmo 3)

para la red con los valores esperados de cada recurso de los arcos. Se obtiene el valor del recurso del camino que minimiza el costo y se actualiza la cota inferior 𝑙 en la línea 9, del mismo modo se inicializa el valor de la cota superior 𝑢. En la línea siguiente se inicializa el proceso iterativo para la creación de la muestra llamando el algoritmo 1 y línea 13 asigna el valor a la variable boleana después de realizar el proceso de revision de los parámetros de parada. Finalmente, linea 15 retorna el mejor camino.

𝑨𝒍𝒈𝒐𝒓𝒊𝒕𝒉𝒎 𝟏 Stochastic pulse 𝑰𝒏𝒑𝒖𝒕: 𝒢, 𝑛, 𝑠, 𝑔, 𝑖

𝑶𝒖𝒕𝒑𝒖𝒕: Best path 𝒫∗

1: 𝒫 ← {} 2: 𝑐0← 0

3: 𝑡0← 0

4: 𝜌 ← 0 5: 𝑖𝑡 ← 1

6: stopCondition ← False 7: 𝒫∗← {}

8: 𝒫 ← 𝑝𝑢𝑙𝑠𝑒 (𝑣𝑠, 𝑐0, 𝑡0, 𝒫) for the mean values

9: 𝑙 ← 𝑚𝑖𝑛 𝐶 10: 𝑢 ← ∞

11: 𝒘𝒉𝒊𝒍𝒆 ¬𝑠𝑡𝑜𝑝𝐶𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 𝒅𝒐 12: (𝒫∗, 𝑢) ← 𝑠𝑎𝑚𝑝𝑙𝑒(𝒢, 𝑛, 𝜌, 𝑠, 𝑢)

13: 𝑠𝑡𝑜𝑝𝐶𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛 ← 𝑐ℎ𝑒𝑐𝑘(𝑖𝑡, 𝑖, 𝑙, 𝑢, 𝑔, 𝜌, 𝒫∗)

14: 𝒆𝒏𝒅 𝒘𝒉𝒊𝒍𝒆 15: 𝒓𝒆𝒕𝒖𝒓𝒏 𝒫∗

A. Input (Estocástico)

El Input estocástico hace referencia a los datos iniciales de la red. Es decir, en este se encuentra el número total de nodos y de arcos, los arcos existentes junto con sus parámetros: nodo cabeza (𝑣𝑖), nodo cola (𝑣𝑗), costo 𝑐𝑖,𝑗, consumo de recurso

promedio, distribución del recurso 𝑇𝑖,𝑗 y los parámetros de la

distribución, los cuales pueden variar de una distribución a otra.

B. Muestreo

El método de muestreo se implementa con el fin de obtener varias realizaciones de la red con el fin de solucionarlas y obtener los mejores caminos en cada una de ellas. Para realizarlo se utiliza el método de Montecarlo al generar números aleatorios, los cuales son reemplazados en la función inversa de las distribuciones de probabilidad del recurso en cada uno de los arcos.

Gracias a este procedimiento obtenemos como resultado varias copias de la red, en donde, tanto los costos como el consumo de recurso son determinísticos. Esto significa que tenemos gran variedad de redes y la única diferencia entre estas es el valor del consumo de recurso en cada uno de los arcos. Finalmente, a cada una de estas redes se les realiza los procedimientos explicados en las siguientes secciones.

Algoritmo 2 muestra el cuerpo del proceso de creación de la muestra. En la línea 1 se inicializa el generador de números aleatorios para la creación de la muestra aleatoria. Línea 2 inicia el ciclo para crear la muestra de tamaño n. Línea 3 cambia los tiempos de cada uno de los arcos de la red, con el fin de obtener diferentes realizaciones de la variable aleatoria 𝑇𝑖,𝑗, lo realiza a partir del número aleatorio stream, el valor

inferior del rango de numeros aleatorios para las funciones de distribución inversas de cada uno de los arcos de la red. Las líneas 4, 5 y 6 inicializan los parámetros del pulso. Seguido a esto la línea 7 realiza el pulso en la red. La línea 8 nos permite preguntar si el camino existe, esto se puede comprobar al utilizar la estructura de datos hashmap como la forma de almacenamiento de los caminos encontrados y en dado caso que no exista se procede a realizar la simulación del camino con el fin de obtener la confiabilidad 𝑟, la media 𝑥 del consumo de recurso total del camino 𝑇𝒫 y la desviación

estándar 𝑠𝑑. En las líneas 11 y 12 se actualizan los valores de la cota superior 𝑢 y del mejor camino 𝒫∗, si cumple que su

confiabilidad sea mayor al 𝛼 y tenga un mejor costo en comparación a la actual cota superior, lo cual se verifica en la linea 10. En caso que exista el camino, la linea 15 modifica la frecuencia del mismo, aumentándola en 1 unidad adicional. Finalmente, la línea 18 retorna el mejor camino 𝒫∗ y el valor de la cota superior 𝑢.

𝑨𝒍𝒈𝒐𝒓𝒊𝒕𝒉𝒎 𝟐 𝑠𝑎𝑚𝑝𝑙𝑒 𝑰𝒏𝒑𝒖𝒕: 𝒢, 𝑛, 𝜌, 𝑠, 𝑢 𝑶𝒖𝒕𝒑𝒖𝒕: Best path 𝒫∗

1: stream ← 𝑟𝑛𝑑 2: 𝒇𝒐𝒓 𝑖 = 1 𝒕𝒐 n

3: 𝑐ℎ𝑎𝑛𝑔𝑒𝑇𝑖𝑚𝑒𝑠(stream, 𝜌) 4: 𝒫 ← {}

5: 𝑐0← 0

6: 𝑡0← 0

7: 𝒫´ ← 𝑝𝑢𝑙𝑠𝑒 (𝑣𝑠, 𝑐0, 𝑡0, 𝒫)

8: 𝒊𝒇 ¬𝑒𝑥𝑖𝑠𝑡(𝒫´) 𝒕𝒉𝒆𝒏

9: (𝑟, 𝑥, sd) ← 𝑠𝑖𝑚𝑢𝑙𝑎𝑡𝑖𝑜𝑛(𝒫´, s) 10: 𝒊𝒇 𝑐(𝒫´) < u 𝒂𝒏𝒅 𝑟 ≥ 𝛼 𝒕𝒉𝒆𝒏 11: 𝑢 ← 𝑐𝒫´

12: 𝒫∗← 𝒫´

13: 𝒆𝒏𝒅 𝒊𝒇 14: 𝒆𝒍𝒔𝒆

15: 𝐹(𝒫´) + + 16: 𝒆𝒏𝒅 𝒊𝒇 17: 𝒆𝒏𝒅 𝒇𝒐𝒓 18: 𝒓𝒆𝒕𝒖𝒓𝒏 (𝒫∗, 𝑢)

C. Pulso

En este módulo del algoritmo, el Pulso es aplicado a cada una de las redes obtenidas a través del método de muestreo.

La idea del algoritmo Pulso es muy sencilla, sin embargo muy importante. El algoritmo está basado en la idea de propagar pulsos a través de una red desde un nodo de inicio 𝑣𝑠∈ 𝒩 hasta un nodo de llegada 𝑣𝑒∈ 𝒩. Mediante el pulso

atraviesa la red de nodo a nodo va construyendo un camino parcial 𝒫 incluyendo los nodos que ya ha visitado, la función

(5)

objetivo acumulada 𝑐(𝒫) y el consumo de recurso acumulado 𝑡(𝒫). Cada pulso que alcanza el nodo final 𝑣𝑒

contiene toda la información de un camino factible 𝒫 desde 𝑣𝑠 hacia 𝑣𝑒. Si nada impide que se propague, el algoritmo

enumera completamente todos los posibles caminos desde 𝑣𝑠

hasta 𝑣𝑒, lo cual asegura que el camino óptimo 𝒫∗ siempre

es encontrado. La fuerza del algoritmo pulso depende de las estrategias de podado; para el caso del CSP, se poda por

dominancia, cotas, e infactibilidad. (Lozano & Medaglia, 2013).

A continuación se muestra el seudocódigo presentado en [1] 𝑨𝒍𝒈𝒐𝒓𝒊𝒕𝒉𝒎 𝟑 pulse

𝑰𝒏𝒑𝒖𝒕: 𝑣𝑘, 𝑐, 𝑡, 𝒫

𝑶𝒖𝒕𝒑𝒖𝒕: void´

1: 𝐢𝐟 checkDominance(vk, c, t) = false 𝐭𝐡𝐞𝐧

2: 𝐢𝐟 checkFeasibility(vk, t) = true 𝐭𝐡𝐞𝐧

3: 𝐢𝐟 checkBounds(vk, c) = false 𝐭𝐡𝐞𝐧

4: 𝒫´ ← 𝒫 ⋃{𝑣𝑘}

5: 𝐟𝐨𝐫 𝑣𝑖∈ 𝒩(𝑣𝑘) 𝐝𝐨

6: 𝑐´ ← 𝑐 + 𝑐𝑘𝑖

7: 𝑡´ ← 𝑡 + 𝑡𝑘𝑖

8: pulse(𝑣𝑖, 𝑐´, 𝑡´𝒫´)

9: 𝐞𝐧𝐝 𝐟𝐨𝐫 10: 𝐞𝐧𝐝 𝐢𝐟 11: 𝐞𝐧𝐝 𝐢𝐟 12: 𝐞𝐧𝐝 𝐢𝐟

Cada una de las estrategias de podado son explicadas en el trabajo desarrollado por Lozano y Medaglia [1], adicionalmente resultados computacionales y la incorporación del algoritmo con los esquemas de generación de columnas, son presentados en el mismo.

D. Output (Solución CSP)

Gracias al muestreo que se realizó anteriormente, el problema inicial como una variante del CSP al tener en cuenta el consumo de recurso como una variable aleatoria, se convirtió en la solución de varias redes, las cuales se diferencian en la realización de estas variables en cada uno de los arcos. Por tal motivo, el resultado obtenido después de la ejecución del Pulso, son los caminos más cortos que cumplen la restricción del consumo máximo; la cantidad de caminos obtenida es igual a la cantidad de redes que se generaron en el método de muestreo.

E. Simulación

Debido a que el objetivo del algoritmo es encontrar el camino más corto teniendo en cuenta que cumple la restricción del consumo máximo de recurso 𝑡𝑚𝑎𝑥 (2), se realiza una

simulación para cada camino encontrado, al haber resuelto las diferentes redes generadas en el método de muestreo, con el fin de obtener una aproximación a su confiabilidad. Este procedimiento se desarrolla por el método de Montecarlo al generar números aleatorios y reemplazarlos en la función inversa de la distribución del consumo de recurso en cada uno de los arcos que componen el camino que está siendo simulado. Es decir, se hace una realizacion de cada uno de los

arcos que componen el camino y se va acumulando cada uno de los valores, de esta forma se obtiene el tiempo total del camino. Adicionalmente, en esta simulación se comprueba la factibilidad del mismo al compararlo con la restriccion de probabilidad (3), esto se realiza verificando, cada vez que se obtiene el tiempo total del camino, si cumple con la restriccion del 𝑡𝑚𝑎𝑥.

Algoritmo 4 muestra el cuerpo del proceso de simulación. Línea 1 inicializa el contador 𝑐, el cual guardará las veces que la simulación del camino cumpla la restricción de confiabilidad, línea 2 inicializa el ciclo para realizar 𝑠 replicas en la simulación. La línea 3 obtiene el consumo de recurso total del camino al hacer una realización del consumo de recurso de cada uno de los arcos que lo componen (restricción 2). Las líneas 4 a 6 permiten revisar si el tiempo del camino simulado cumple con la restricción del 𝑡𝑚𝑎𝑥, en caso de

cumplirla se aumenta la confiabilidad del camino. La línea 8 calcula la confiabilidad como el contador sobre la cantidad de réplicas de la simulación. Finalmente, la linea 9 retorna la confiabilidad, la media y la desviacion estandar obtenidas a través de la simulación.

𝑨𝒍𝒈𝒐𝒓𝒊𝒕𝒉𝒎 𝟒 simulation 𝑰𝒏𝒑𝒖𝒕: 𝒫´, 𝑠

𝑶𝒖𝒕𝒑𝒖𝒕: reliability 𝑟; 𝑀𝑒𝑎𝑛 𝑥, 𝑆𝑡𝑎𝑛𝑑𝑎𝑟𝑑 𝐷𝑒𝑣𝑖𝑎𝑡𝑖𝑜𝑛 𝑠𝑑 1: 𝑐 ← 0

2: 𝒇𝒐𝒓 𝑖 = 1 𝒕𝒐 s 3: 𝑇𝒫´← getTime(𝒫´)

4: 𝒊𝒇 𝑇𝒫´< 𝑡𝑚𝑎𝑥 𝒕𝒉𝒆𝒏

5: 𝑐 ← 𝑐 + 1 6: 𝒆𝒏𝒅 𝒊𝒇 7: 𝒆𝒏𝒅 𝒇𝒐𝒓 8: 𝑟 ← 𝑐/𝑠 9: 𝒓𝒆𝒕𝒖𝒓𝒏 r, 𝑥, 𝑠𝑑

F. Solución

Al tener en cuenta el objetivo principal, se decidió obtener el camino que cumpla la restricción (3) y adicionalmente minimizará el costo, sin embargo existen casos en que en una red no es posible encontrar dicho camino, por lo tanto, obtenemos aquel camino que más se acerque a cumplir la restricción de probabilidad. Debido a la estructura del algoritmo es posible modificar esta solución y por ejemplo encontrar el camino con mayor frecuencia y que cumpla la restricción de factibilidad, lo cual puede ser discutido en trabajos posteriores.

G. Bucle

Con el fin de explorar un mayor tamaño del espacio muestral el algoritmo cuenta con un bucle el cual permite repetir el procedimiento anterior. Este bucle posee 3 criterios de parada. El primero de estos es la cantidad de veces que se realiza, por motivos de tiempo computacional, se escogió el número máximo de iteraciones como 3, sin embargo este número puede ser modificado. El siguiente criterio de parada lo denominamos como gap, del mismo modo que el proceso de

(6)

Branch and Bound, calculamos un gap en donde la solución óptima se puede encontrar. Para calcular este gap inicialmente evaluamos la función objetivo en la red con los valores esperados de las diferentes distribuciones de probabilidad en los arcos y este resultado será nuestra cota inferior 𝑙; la cota superior 𝑢 inicialmente toma el valor ∞. El valor de la cota superior se va actualizando a medida que se encuentre una mejor solución factible, finalmente el algoritmo se detiene cuando el valor del gap es menor o igual a un parámetro dado, el cual escogimos del 20%. Finalmente, el tercer criterio es el tiempo computacional, si el algoritmo lleva más de una hora para una configuración se detiene. Adicionalmente, en el bucle tenemos un criterio que no solo nos permite hacer el algoritmo recursivo, sino además modificar la generación de números aleatorios en el método de muestreo, ya que permite repetir el procedimiento anterior cuando el algoritmo no encuentra ningún camino factible. Es decir, si después de realizar la revisión de los criterios anteriores no encuentra un camino factible, permite que entre en recursividad y modifica el rango de generación de números aleatorios haciendo que el valor inferior del rango 𝜌 aumente en 0.1 hasta un máximo de 0.5.

Algoritmo 5 describe el procedimiento para determinar por si se deja de ejecutar el algoritmo propuesto. La línea 1 calcula el gap. En la segunda línea se verifica el cumplimiento de los criterios de parada: por iteración, por gap o por tiempo. Al cumplirse alguna de estas condiciones, la línea 3 verifica si fue por iteración, de ser así la línea 4 verifica que exista un mejor camino y de cumplirse la línea 5 retorna verdadero. En caso contrario línea 7 verifica que el rango inferior sea menor a 0.5 al cumplirse aumenta en 0.1 el rango inferior y la siguiente línea retorna el valor de falso, indicando que el algoritmo iniciará nuevamente teniendo en cuenta la modificación del rango inferior. Línea 15 retorna verdadero debido a que se cumplió el gap o se llegó al tiempo máximo. Finalmente, si ninguna condición de terminación se cumple, la línea 18 aumenta en uno la cantidad de iteraciones y la línea 19 retorna el valor de falso.

𝑨𝒍𝒈𝒐𝒓𝒊𝒕𝒉𝒎 𝟓 check 𝑰𝒏𝒑𝒖𝒕: 𝑖𝑡, 𝑖, 𝑙, 𝑢, 𝑔, 𝜌, 𝒫∗

𝑶𝒖𝒕𝒑𝒖𝒕: Boolean

1: 𝑔𝑎𝑝 ← (𝑢 − 𝑙)/𝑙

2: 𝒊𝒇 𝑖𝑡 > 𝑖 𝒐𝒓 𝑔𝑎𝑝 ≤ 𝑔 𝒐𝒓 𝑡𝑖𝑚𝑒 > 𝑡𝑖𝑚𝑒𝐿𝑖𝑚𝑖𝑡 3: 𝒊𝒇 𝑖𝑡 > 𝑖 𝒕𝒉𝒆𝒏

4: 𝒊𝒇 |𝒫∗| > 0 𝒕𝒉𝒆𝒏

5: 𝒓𝒆𝒕𝒖𝒓𝒏 𝑡𝑟𝑢𝑒 6: 𝒆𝒍𝒔𝒆

7: 𝒊𝒇 𝜌 ≤ 0.5 𝒕𝒉𝒆𝒏 8: 𝜌 ← 𝜌 + 0.1 9: 𝒓𝒆𝒕𝒖𝒓𝒏 𝑓𝑎𝑙𝑠𝑒 10: 𝒆𝒍𝒔𝒆

11: 𝒓𝒆𝒕𝒖𝒓𝒏 𝑡𝑟𝑢𝑒 12: 𝒆𝒏𝒅 𝒊𝒇

13: 𝒆𝒏𝒅 𝒊𝒇 14: 𝒆𝒍𝒔𝒆

15: 𝒓𝒆𝒕𝒖𝒓𝒏 𝑡𝑟𝑢𝑒 16: 𝒆𝒏𝒅 𝒊𝒇

17: 𝒆𝒍𝒔𝒆

18: 𝑖𝑡 ← 𝑖𝑡 + 1 19: 𝒓𝒆𝒕𝒖𝒓𝒏 𝑓𝑎𝑙𝑠𝑒 20: 𝒆𝒏𝒅 𝒊𝒇

V. RESULTADOS

En esta sección realizamos varios experimentos en redes diferentes, los cuales fueron desarrollados en Java, utilizando Eclipse Luna Service versión (4.4.1) e implementados en un computador con procesador Intel® Core™ i5-3330 CPU @ 3.00GHz con 4.00 GB de memoria RAM.

Inicialmente corrimos el algoritmo en instancias pequeñas de hasta 500 nodos y 4868 arcos. Para la creación de las instancias se eligieron dos rangos (100-200) y (500-600), aleatoriamente el costo del arco pertenece a un rango y el valor esperado de la función de probabilidad del consumo de recurso pertenece al rango restante. Para estas redes los arcos se distribuirán exponencialmente con tasa uno sobre el valor esperado.

Con el fin de obtener el 𝑡𝑚𝑎𝑥 para cada una de las redes, se

obtiene inicialmente el valor del consumo de recurso del camino que minimiza el tiempo, el cual será nuestro parámetro 𝐚. Posteriormente, se encuentra el camino que minimiza el costo y se realiza una simulación del mismo con el fin de obtener el valor𝐛 que se encuentra en el percentil 𝛼. Para este caso 𝛼 = 80%.

Para cada red se realizan 4 configuraciones diferentes como una combinación lineal entre ambos valores 𝐚 y 𝐛, modificando los valores de 𝛾 entre 0.3 y 1.

𝑡𝑚𝑎𝑥 = 𝛾𝐛 + (1 − 𝛾)𝐚

Se realiza un tamaño de muestra de 5000 redes, y la simulación de cada camino es de 1000 réplicas.

En la Tabla 1: Resultados para redes SCSP se muestran los resultados obtenidos para diferentes redes. La columna 1 muestra el número de la red, la columna 2 los valores diferentes para el 𝛾, la columna 3 enuncia la cantidad de nodos y la columna 4 la cantidad de arcos; La columna 5 muestra el criterio de parada, si se realizó por gap, es decir que el gap encontrado fue menor al 20%, por Iteración si se realizaron más de 3 iteraciones del procedimiento o por tiempo si el la ejecución del algoritmo duró más de 3600 segundos. La columna 6 muestra el valor inferior del rango en donde encontró el camino factible, es decir cuando el valor de 𝜌 = 0.5 significa que modificó iterativamente el rango desde (0 , 1) hasta (0.5 , 1). Columna 7 muestra el costo del camino encontrado, la columna 8 su confiabilidad, columna 9 la media del consumo de recurso total del camino, al realizar la simulación y columna 10 su desviación estándar correspondiente. Finalmente, las columnas 11 y 12 corresponden al 𝑡𝑚𝑎𝑥 y al tiempo de ejecución

(7)

Tabla 1: Resultados para redes SCSP Red 𝛾 Nodos Arcos Criterio 𝜌 Costo

Simulación

Tmax Tiempo (s) Confiabilidad Media Desv. Est

1 0.3

100 990

Gap. 0 1614 86.0% 403.25 276.58 634.22 2.32

0.5 Iter. 0 1536 88.1% 458.45 268.45 788.37 7.12

0.8 Iter. 0 1536 95.3% 473.28 277.51 1,019.59 6.83

1.0 Gap. 0 775 83.3% 714.18 259.99 1,173.74 1.78

2 0.3

100 999

Iter. 0.4 2237 82.5% 1,204.28 630.99 1,661.48 76.63

0.5 Iter. 0.4 1910 81.0% 1,608.01 824.51 2,246.47 56.35

0.8 Iter. 0.4 996 81.6% 2,223.45 1,038.51 3,123.95 43.77

1.0 Gap. 0 626 81.4% 2,672.10 1,147.00 3,708.94 2.01

3 0.3

200 2080

Gap. 0.1 1144 82.1% 748.21 573.58 1,120.62 19.25

0.5 Iter. 0 1144 90.4% 777.07 528.35 1,535.71 15.77

0.8 Iter. 0 764 89.1% 1,213.04 781.12 2,158.33 13.06

1.0 Gap. 0 527 83.6% 1,673.72 768.60 2,573.42 3.15

4 0.3

200 1960

Iter. 0.3 1973 80.4% 1,404.13 736.24 1,953.99 73.19

0.5 Iter. 0.4 1524 81.0% 1,784.85 921.03 2,476.65 79.86

0.8 Iter. 0.3 1087 81.3% 2,369.06 1,097.40 3,260.64 54.20

1.0 Gap. 0 667 82.1% 2,706.32 1,170.31 3,783.30 3.11

5 0.3

500 4847

Gap. 0.1 1305 89.5% 805.86 963.56 1,588.57 48.26

0.5 Iter. 0.2 1305 96.2% 790.20 621.84 2,244.95 84.09

0.8 Iter. 0.2 935 92.0% 1,704.27 943.61 3,229.52 68.08

1.0 Gap. 0 701 83.0% 2,758.05 1,154.63 3,885.90 5.06

6 0.3

500 4868

Iter. 0.5 2721 80.3% 1,355.91 706.61 1,811.70 255.25

0.5 Iter. 0.4 1890 87.3% 1,575.93 812.84 2,497.51 177.82

0.8 Iter. 0.4 1604 84.2% 2,451.91 1,110.01 3,526.21 154.13

1.0 Gap. 0 795 80.2% 3,162.51 1,228.27 4,212.01 7.14

Por medio de estos resultados, es posible observar que en redes de hasta 500 nodos y 4868 arcos, el algoritmo permite encontrar una solución en un tiempo computacional razonable pues las redes se solucionan en un tiempo inferior a 5 minutos. Adicionalmente, se puede observar que cuando el valor del 𝛾 es 1, el tiempo computacional disminuye, ya que el problema está más relajado y por lo tanto permite encontrar más caminos factibles, lo cual disminuye el gap hasta el valor deseado. Generalmente el algoritmo termina por el criterio de iteración, lo cual nos puede indicar que podemos mejorar el número de iteraciones para que el algoritmo continúe ejecutándose hasta encontrar un camino que cumpla el gap. En relación al rango inferior no existe un comportamiento específico. Con respecto a la media y la desviación estándar tienen el comportamiento esperado ya que entre mayor es el

valor de 𝛾, la media y la desviación aumentan, esto ocurre ya que cada vez que aumenta el valor de 𝛾 el problema se relaja y debido a la configuración de la red entre menor sea el costo mayor será el tiempo. Finalmente, el tiempo computacional aumenta a medida que el tamaño de la red aumenta.

La Tabla 2: 30 redes muestra los resultados obtenidos al correr el algoritmo propuesto en las redes DC-modificadas. Estas redes cuentan con 9.559 nodos y 39.377 arcos. Del mismo modo que las redes anteriores, se seleccionaron dos rangos (100-200) y (500-600) y aleatoriamente se elige uno de estos rangos, para cada uno de los arcos, con el fin de encontrar el valor del costo, el rango restante se elige para el valor promedio de la distribución del consumo de recurso en cada uno de los arcos. Las 30 redes difieren entre si al cambiar

(8)

el nodo de inicio y nodo final, pero su estructura sigue siendo la misma. El cálculo del 𝑡𝑚𝑎𝑥 y los parámetros de la

distribución son calculados de igual manera que las redes de la Tabla 1: Resultados para redes SCSP, del mismo modo todos los arcos se distribuyen exponencialmente. Para este experimento se realiza un tamaño de muestra de 500 redes y la simulación del camino es de 1000 réplicas.

En la siguiente tabla columna 1 muestra las diferentes configuraciones con los valores de 𝛾, columna 2, 3 y 4 muestran la cantidad de redes que obtuvieron como resultado caminos factibles, caminos infactibles dentro de la muestra realizada o se detuvieron al cumplir los 3600 segundos, finalmente la columna 5 muestra el promedio del tiempo computacional al resolver las 30 redes con las diferentes configuraciones del 𝛾.

Tabla 2: 30 redes

𝛾 Resueltas No Resueltas Tiempo* (s) F INF >3600 (s)

0.3 15 9 6 1521.23

0.5 22 2 6 1192.69

0.8 24 0 6 882.01

1 25 0 5 738.93

*El calculó del tiempo promedio tiene en cuenta los 3600 segundos de las instancias que no se resolvieron.

Los resultados obtenidos son los esperados, ya que entre menor sea el valor de 𝛾, mayor cantidad de redes no encuentran caminos factibles, esto se debe a que el problema está más restringido. Por otro lado, se observa que el algoritmo resuelve, en este caso, la mitad de las redes satisfactoriamente cuando el problema es muy restringido, mientras que cuando el problema se relaja resuelve más del 70% de las redes satisfactoriamente. En cuanto a las redes que no se resuelven en menos de 3600 segundos, en general son 4 redes que se repiten en las 4 configuraciones, a excepción de una red que no se repite en la última configuración, esto se debe a las configuraciones de la red. Finalmente, el tiempo computacional se encuentra alrededor de 18 minutos para redes de hasta 9.559 nodos y 39.377 arcos, lo cual es un tiempo computacional razonable al trabajar con redes extensas y con la cantidad de réplicas que se realizan en el método de muestreo y las simulaciones realizadas en los caminos.

VI. CONCLUSIONES Y TRABAJOS FUTUROS

Desarrollamos un algoritmo capaz de resolver problemas de ruta más corta restringida con consumo de recurso estocástico para redes de hasta 9.559 nodos y 39.377 arcos en un tiempo computacional razonable. El algoritmo está basado en un muestreo de la red utilizando el método de Montecarlo, utiliza el algoritmo pulso desarrollado por Lozano y Medaglia [1] como motor de optimización y genera una simulación del camino obtenido con el fin de obtener la confiabilidad del

mismo para verificar el cumplimiento de la restricción de probabilidad.

El algoritmo logra resolver aproximadamente 50% de las redes trabajadas cuando los problemas están muy restringidos, mientras que en problemas más relajados logra resolver aproximadamente el 80%; esto ocurre en redes grandes, mientras que en redes pequeñas logra resolver el 100% de estas. El algoritmo resuelve redes grandes en un tiempo computacional razonable, de alrededor de 18 minutos lo cual en el caso extremo equivale a resolver 500 redes * 3 iteraciones * 5 modificaciones del 𝜌, es decir 7.500 redes de 9.559 nodos y 39.377 arcos junto con las 1000 réplicas de la simulación de los 7.500 caminos obtenidos como solución de estas redes, mientras que en el mejor caso únicamente tiene que resolver 500 redes.

Actualmente el método de muestreo es realizado a través de simulación de Montecarlo, teniendo como base la teoría de la aproximación promedio de la muestra, sin embargo este puede ser modificado con el fin de obtener diferentes métodos de muestreo como por ejemplo el Hiper-Cubo Latino, con el fin de realizar diferentes comparaciones. Adicionalmente es posible realizar experimentos con diferentes distribuciones de probabilidad y puede ser extendido para diferentes problemas relacionados con ruta más corta como por ejemplo: cuando existe reposición (WCSPP-R), cuando existen restricciones de recurso (ESPPRC), cuando se desea solucionar un problema con biobjetivo (BSP), entre otros. Lo anterior significa que el algoritmo propuesto se puede extender a otros problemas relacionados con ruta más corta, en los cuales incluya parámetros estocásticos, así mismo permite modificar los procedimientos que utilizan el método de Montecarlo para compararlos con otros métodos de muestreo, lo cual convierte el algoritmo como una herramienta versátil y útil en el momento de solucionar este tipo de problemas.

REFERENCIAS

[1] Lozano, L., & Medaglia, A. L. (2013). On an exact method for the constrained shortest path problem. Computers & Operations Research, 40(1), 378-384.

[2] Feillet, D., Dejax, P., Gendreau, M., & Gueguen, C. (2004). An exact algorithm for the elementary shortest path problem with resource constraints: Application to some vehicle routing problems. Networks, 44(3), 216-229.

[3] Peer, S. K., & Sharma, D. K. (2007). Finding the shortest path in stochastic networks. Computers & Mathematics with Applications, 53(5), 729-740.

[4] Kulkarni, V. G. (1986). Shortest paths in networks with exponentially distributed arc lengths. Networks, 16(3), 255-274.

[5] Peer, S. K., & Sharma, D. K. (2007). Finding the shortest path in stochastic networks. Computers & Mathematics with Applications, 53(5), 729-740.

[6] Ji, X. (2005). Models and algorithm for stochastic shortest path problem. Applied Mathematics and Computation, 170(1), 503-514.

[7] Martin, J. J. (1965). Distribution of the time through a directed, acyclic network. Operations Research, 13(1), 46-66.

[8] Sigal, C. E., Pritsker, A. A. B., & Solberg, J. J. (1980). The stochastic shortest route problem. Operations Research, 28(5), 1122-1129. [9] Kleywegt, A. J., Shapiro, A., & Homem-de-Mello, T. (2002). The

sample average approximation method for stochastic discrete optimization. SIAM Journal on Optimization, 12(2), 479-502.

[10] Pagnoncelli, B. K., Ahmed, S., & Shapiro, A. (2009). Sample average approximation method for chance constrained programming: theory and applications. Journal of optimization theory and applications, 142(2), 399-416.

Referencias

Documento similar

Esta perspectiva puede distorsionar la naturaleza y fin del recurso de protección, ya que tal acción constitucional se caracteriza por el hecho de que cualquier persona afectada en

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Esto viene a corroborar el hecho de que perviva aún hoy en el leonés occidental este diptongo, apesardel gran empuje sufrido porparte de /ue/ que empezó a desplazar a /uo/ a

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,