Apuntes de Investigación Operativa
Short Description
Descripción: Apuntes para la asignatura de Investigación Operativa: - Modelos deterministas 1-Programación lineal 2-E...
Description
Investigación Operativa Darío Blanco Iturriaga con la colaboración de alumno Anónimo CURSO 2010-‐2011 UNIVERSIDAD POLITÉCNICA DE MADRID INGENIERÍA EN INFORMÁTICA
Forma estándar de maximización Antes de resolver un problema por el método del Simplex Primal, debemos asegurarnos de que se encuentre en forma de estándar de maximización, para lo cual deberá cumplir las siguientes propiedades: 1. La función objetivo debe ser siempre de maximización. Si no lo fuera, podemos cambiar el sentido de la optimización con un simple cambio de signo de la función. !
max ! =
!! ∙ !! ⟺ min ! = − !!!
!
!
! = −!′
!! ∙ !! !!!
2. Las constantes a la derecha de las restricciones (xB) han de ser no negativas. Si no lo fueran, podemos transformar las restricciones multiplicando ambos miembros por -‐1. Esta multiplicación cambia el sentido de las desigualdades. !
!
!!" ∙ !! ≤ !! ⟺
!!!
−!!" ∙ !! ≥ −!! !!!
3. Todas las restricciones han de ser de igualdad. Si no lo fueran, podemos transformar las desigualdades en igualdades añadiendo variables de holgura. Si la desigualdad es ≤ sumaremos una variable de holgura, si es ≥, la restaremos. Las variables de holgura las incorporaremos a la función objetivo con coeficiente cero. !
!
!!" ∙ !! ≤ !! ⟺
!!" ∙ !! + !! = !!
!!!
!!!
!
!
!!" ∙ !! ≥ !! ⟺
!!!
!!" ∙ !! − !! = !! !!!
4. Todas las variables han de ser no negativas (tener una restricción de no negatividad). Si esto no fuera así, sustituiremos las variables no restringidas por la resta de dos variables restringidas, de modo que el resultado final pueda ser negativo. !"# !! !" !"#$!%&'%() !! = !′! − ! !!! !"# ! !! ! !!! ≥ 0
Método del Simplex Primal ¡ATENCIÓN! Antes de aplicar el método del Simplex Primal, el problema DEBE estar en forma estándar de maximización. 1. Poner el problema en forma estándar de maximización. 2. Añadir variables artificiales a las restricciones que originalmente eran igualdades o desigualdades de tipo ≥ (y por tanto les añadimos antes variables de holgura negativas). 3. Ajustar la función objetivo con los coeficientes adecuados: 0 para las variables de holgura y –M para las variables artificiales (si se utiliza el método de las penalizaciones, para el método de las dos fases, ver otra hoja) 4. Construir la tabla inicial del Simplex 5. Si hay algún valor indicador negativo (zj – cj < 0), tenemos posibilidad de mejora: ir al paso 7. Si todo valor indicador zj – cj ≥ 0, ir al paso 6. 6. Si todos los valores indicadores son no negativos (zj – cj ≥ 0) y no hay variables artificiales en la base con valor positivo, la solución actual es óptima y hemos acabado. Si alguna variable artificial es positiva (xA > 0), el problema es infactible, por lo que pararemos. 7. Si para algún valor indicador zj – cj < 0, su vector asociado yj tiene todas sus componentes negativas (yj < 0), el problema es no acotado. En otro caso, es posible la mejora: ir al paso 8. 8. Seleccionamos como variable de entrada (se va a incorporar a la base) aquella cuyo valor indicador zj – cj sea más negativo. Esa columna será la columna pivote. 9. Seleccionar como variable de salida (la que deja la base a favor de la variable de entrada) aquella que haga mínima la razón xBi/yik para todo yik > 0. Esto es, dividiremos cada valor de las variables básicas, por su correspondiente elemento del vector yk de la columna pivote, y la mínima razón nos dará la variable de salida. La fila correspondiente será la fila pivote, y el elemento donde intersectan la fila pivote con la columna pivote, es el elemento pivote. 10. Construimos una nueva tabla vacía. La posición del elemento pivote la rellenamos con un 1, el resto de la columna pivote con ceros. Rellenamos el resto de la fila pivote por el resultado de dividir sus antiguos elementos por el elemento pivote. El resto de las posiciones de la tabla se rellenan restando al elemento que iba ahí, el producto de los elementos diagonales en las filas-‐columna pivotes, divididos por el propio pivote.
Tablas del Método del Simplex Primal Construiremos la tabla inicial así: COEFICIENTES DE LA FUNCIÓN OBJETIVO VARIABLES DE LA FUNCIÓN VARIABLES c1 c2 c3 … cn OBJETIVO BÁSICAS V.B. x1 x2 x3 . xn xB cB1 xB1 y11 y12 y13 . y1n val(xB1) VALORES DE LAS cB2 xB2 y21 y22 y23 . y2n val(xB1) VARIABLES COEFICIENTES BÁSICAS … … … … . … … BÁSICOS cBm xBm ym1 ym2 ym3 . ymn val(xBm) VALOR DE VECTORES z1 – c1 z2 – c2 z3 – c3 … zn – cn z LA FUNCIÓN OBJETIVO COLUMNA Y COSTES REDUCIDOS O VALORES INDICADORES En esta tabla inicial, los vectores columna yj corresponden con las columnas de la matriz A, dado que la base es la matriz identidad. Los valores indicadores iniciales se calculan con la siguiente fórmula: !! = !!! ∙ !! !"# !! !"# !! − !! = !!! ∙ !! − !! Para determinar la variable de entrada y de salida, en la tabla, marcamos la fila pivote, la columna pivote y el elemento pivote. c1 c2 c3 … cn V.B. x1 x2 x3 . xn xB cB1 xB1 y11 y12 y13 . y1n val(xB1) cB2 xB2 y21 y22 y23* . y2n val(xB1) … … … . … … cBm xBm ym1 ym2 ym3 . ymn val(xBm) z1 – c1 z2 – c2 z3 – c3 … zn – cn z Construcción de una nueva tabla al iterar: c1 c2 c3 … cn V.B. x1 x2 x3 . xn xB cB1 xB1 e11 e12 0 . e1n xB1 cB2 xB3 y21/ y23 y22/ y23 1 . y2n/ y23 val(xB1) / y23 . … cBm xBm em1 ym2 0 . emn xBm z1 – c1 z2 – c2 0 … zn – cn e(z) Los elementos eij se calcularán a partir de la tabla anterior, restándole al actual elemento yij correspondiente, el resultado de multiplicar los elementos diagonales en la fila pivote y columna pivote, y dividiéndolos entre el propio pivote, tal y como se muestra con la triple flecha verde en la segunda tabla. ! ∙! Así, por ejemplo !!" = !!" − !!! !" de modo que, por ejemplo, si alguno de j
!"
los factores de la multiplicación es 0, eij no varía respecto a yij.
Método de las dos fases Es una forma alternativa de resolución para el método del símplex con variables artificiales frente al método de las penalizaciones, adecuada para los ordenadores ya que no pueden utilizar –M para simbolizar una cantidad muy grande y tienen que poner un número enorme, generando errores de redondeo.
Inicialización
0. Poner el programa en forma estándar de maximización, añadiendo variables artificiales si es necesario.
Fase I 1. Crear una nueva función objetivo artificial zº del siguiente modo: Tomamos la función objetivo del paso 0 (ya en forma estándar de maximización y con variables artificiales) y cambiamos los coeficientes, asignando -‐1 a las variables artificiales y 0 al resto. 2. Aplicamos el método del simplex al programa construido con la nueva función zº y las restricciones originales salidas del paso 0. El proceso termina cuando o bien el valor de la función objetivo artificial zº = 0, o bien todo valor indicador zj – cj ≥ 0. Si no hay variables artificiales en la base con valor positivo, ir al paso 3. En otro caso, el problema es infactible, parar.
Fase II 3. Tomamos ahora la función objetivo original z y asignamos coeficiente 0 a todas las variables artificiales que aparezcan en la base (con valor 0) al final de la fase I y prescindimos de todas las variables artificiales no básicas, así como de sus columnas asociadas en la tabla final de la Fase I. 4. La tabla del simplex inicial de la Fase II es la tabla final de la Fase I, pero sin las columnas de las variables artificiales que no figuran en la función objetivo construida en el paso anterior (paso 3). Además, hay que calcular de nuevo los valores zj – cj de la fila indicador como ya sabemos, con la fórmula !! − !! = !!! ∙ !! − !! y el valor de z, con los valores de xB. 5. Si la función construida en el paso 3 no tiene variables artificiales, aplicar el método del Simplex. En otro caso, ir al paso siguiente (paso 6). 6. Aplicamos el método del Simplex con la siguiente modificación en la regla para elegir la variable de salida: “Si xk es la variable de la columna pivote (xk es la variable de entrada), considerar los valores yik de las variables artificiales de la base (es decir, los elementos del vector yk que corresponden a una variable artificial de la base) y si alguno de estos es negativo, tomar como variable de salida alguna de las variables artificiales con yik < 0. En otro caso (no hay variables artificiales en la base o ningún yik correspondiente a dichas variables artificiales es negativo), aplicar la regla de la variable de salida del método del Símplex”.
Relaciones estructurales en dualidad Programa lineal en forma simétrica
1. 2.
3.
El objetivo es de la forma de maximización o minimización. Todas las restricciones son desigualdades de la forma ≤ si el problema es de maximización y de la forma ≥ si se trata de un problema de minimización. NUNCA hay restricciones que sean igualdades. Si las hay se transforman, dando lugar a dos desigualdades por igualdad. Todas las variables son no negativas.
Relaciones estructurales primal-‐dual simétrico 1. 2. 3. 4. 5. 6.
El objetivo de un problema es de maximización y el del otro, de minimización. En el problema de maximización todas las restricciones son desigualdades de la forma ≤ y en el de minimización de la forma ≥. Todas las variables duales y primales son no negativas. Los elementos del vector de recursos o constantes en un problema, son los coeficientes de la función objetivo en el otro. Por cada variable en un problema se tiene una restricción en el otro y viceversa. La matriz de coeficientes tecnológicos de las restricciones en un problema es la traspuesta de la matriz de coeficientes en el otro.
Relaciones estructurales primal-‐dual para la forma general
Lo enunciado anteriormente como dualidad simétrica, solo se aplica a programas lineales en forma simétrica. Hay un cierto número de problemas que no vienen en forma simétrica y de este modo, no tendríamos que convertirlos a dicha forma. 1. El objetivo de un problema es de la forma de maximización y el del otro de minimización. 2. En el problema de maximización todas las restricciones son desigualdades de la forma ≤ o igualdades. En el de minimización son ≥ o igualdades. 3. Los elementos del vector de recursos en un problema son los coeficientes de la función objetivo en el otro. 4. Para cada variable en un problema se tiene una restricción en el otro, y viceversa. 5. La matriz de coeficientes tecnológicos de las restricciones en un problema, es la traspuesta de la matriz de coeficientes en el otro. 6. Si una variable en un problema es no restringida, su restricción asociada en el otro es una igualdad y viceversa.
Relaciones algebraicas en Dualidad Relaciones algebraicas en dualidad 1. El dual del problema dual es el primal 2. (Dualidad débil) El valor de la función objetivo z del problema de maximización es menor o igual que el valor de la función objetivo w del problema de minimización. 3. Si ambos problemas tienen soluciones factibles, ambos tienen soluciones óptimas. 4. Si el primal es factible, pero no acotado, el dual es infactible, y recíprocamente, si el dual es factible pero no acotado, el primal es infactible. 5. Si el primal es infactible, el dual puede ser no acotado o infactible, y recíprocamente, si el dual es infactible, el primal puede ser no acotado o infactible. 6. Si existen soluciones factibles para los problemas primal y dual que dan igual valor a los respectivos objetivos, tales soluciones son óptimas. 7. Los valores óptimos z* y w* de los problemas primal y dual son iguales.
Relación de holgura complementaria
Sirven para obtener fácilmente la solución óptima del problema dual a partir de la del primal y viceversa. Siendo ui y vj variables de holgura del problema primal y dual respectivamente, imponemos estas condiciones para luego, con las siguientes reglas calcular el valor de ui y uj: !! ∙ !! = 0 !"#" ! = 1, … , ! | !! ∙ !! = 0 !"#" ! = 1, … , ! a) Si una variable primal es positiva (xj* > 0) la correspondiente restricción dual es una igualdad (la restricción dual es una igualdad en el óptimo, con vj = 0). b) Si una restricción primal es una desigualdad en el óptimo (ui > 0), la correspondiente variable dual es cero en el óptimo (yi* = 0). c) Si una variable dual es positiva (yi* > 0), la correspondiente restricción primal es una igualdad (ui = 0). d) Si una restricción dual es una desigualdad (vj > 0), la correspondiente variable primal es un cero en el óptimo (xj* = 0).
Una vez despejados algunos ui y vi calculamos los yi o xi que queramos a partir de las restricciones, planteando y resolviendo un sistema de ecuaciones.
Método del Símplex Dual Este método, al contrario que el símplex primal, parte de una base dual factible y se mueve por bases duales factibles hasta alcanzar una base que sea, además, primal factible. Por ello, este método es únicamente aplicable a un problema que sea primal infactible y dual factible, es decir, si inicialmente uno o más xBi son negativos y todo zj – cj ≥ 0. La tabla que usa el símplex dual es la misma que la del símplex primal y se pretende, manteniendo la optimalidad o factibilidad dual (zj – cj ≥ 0), tratar de alcanzar la factibilidad primal (xBi ≥ 0, ∀!). El algoritmo finaliza (si hay solución óptima) cuando todos los xBi ≥ 0, en cuyo caso la solución es primal y dual factible.
Algoritmo del Símplex Dual para el problema de maximización
1. Dada xB solución básica dual factible (zj – cj ≥ 0, ∀!), si xB ≥ 0, la solución es óptima, por lo que paramos. 2. Selección de la variable de salida. Seleccionar como variable de salida aquella variable básica con el xBi más negativo y designar la fila asociada (fila pivote) por r y la variable por xr 3. Selección de la variable de entrada. Determinar para aquellas columnas no básicas (j no pertenece a B) con elemento yrj < 0, la razón pj = (zj – cj)/yrj, y seleccionar como variable de entrada, aquella que tenga la mayor razón (más positivo, menor negativo). Designar tal columna por k (columna pivote) y la variable asociada por xk. El elemento yrk es el pivote. Si yrj ≥ 0, ∀! (esto es, todos los elementos de la fila pivote son no negativos) el problema no tiene solución: El dual es no acotado y el primal es infactible 4. Construir una nueva tabla mediante el mismo proceso que en el simplex primal. Volver al paso 1.
Análisis de Sensibilidad: Cambios Discretos El análisis de sensibilidad estudia el efecto de cambios en el modelo sobre la solución óptima. Utilizaremos la tabla óptima del símplex para obtener con el cambio de algún dato la nueva solución óptima sin tener que resolver el problema nuevamente.
Cambio en un coeficiente de coste básico Si llamamos !!" , !! − !! ! ! a los nuevos valores de ck, zk – ck y z respectivamente: !! − !! = !!! ∙ !! − !! ! ! = !!! ∙ !! Si alguno de los nuevos valores indicadores !! − !! pasa a ser negativo, la base actual deja de ser óptima y hay que aplicar el símplex hasta alcanzar la optimalidad
Cambio en un coeficiente de coste no básico Si cambia un coeficiente cj asociado a una variable no básica, el único cambio que se produce es el de su valor indicador zj – cj correspondiente a esa columna no básica. Sea !! el nuevo valor de cj, el nuevo valor indicador será: !! − !! = !!! ∙ !! − !! Si el nuevo valor indicador !! − !! pasa a ser negativo, la base actual deja de ser óptima y hay que aplicar el símplex hasta alcanzar la optimalidad.
Cambio en un recurso Si llamamos ! al nuevo vector de recursos resultante de cambiar un recurso, ! !! a la inversa de la actual matriz básica y !! al nuevo vector correspondiente al lado derecho de la presente tabla, tenemos: !! = ! !! ∙ ! ! ! = !!! ∙ !! Si con ese cambio !! ≥ 0, la tabla permanece óptima. Sin embargo, si algún xBi pasa a ser negativo, habrá que aplicar el método del símplex dual hasta alcanzar la factibilidad. Para determinar ! !! seguiremos las siguientes reglas: -‐ Las columnas !! de ! !! van asociadas con las variables básicas iniciales (primera tabla del símplex) y están ordenadas de la misma forma que dichas variables. -‐ Los valores de los vectores yk son aquellos que aparecen en la tabla actual.
Cambios en los coeficientes tecnológicos Si el coeficiente tecnológico aik que ha sufrido cambios es básico, hay que rehacer el problema de nuevo. En caso contrario, si llamamos !! al nuevo vector tecnológico bajo la variable no básica xk e !! al nuevo vector asociado a xk, será: !! = ! !! ∙ !! ! !! − !! = !!! ∙ !! − !! Si el nuevo valor indicador !! − !! pasa a ser negativo, la base actual deja de ser óptima y hay que aplicar el símplex hasta alcanzar la optimalidad.
Análisis de Sensibilidad: Incorporación Incorporación de una nueva restricción
A veces es necesario añadir una nueva restricción una vez que ya se ha modelizado y resuelto el problema. Para evaluar su efecto, basta con comprobar si la solución óptima x* satisface esta nueva restricción: -‐ Si la satisface, no hay efecto y la solución x* sigue siendo la óptima. -‐ De lo contrario, hay que realizar el siguiente procedimiento: 1. Incorporar la nueva restricción a la tabla final (añadiendo una fila encima de los indicadores), considerando además una nueva variable de holgura si fuera necesario (si fuera una desigualdad). 2. Una vez incorporada a la tabla, hay que hacer cero los elementos yij correspondientes a las variables básicas, esto lo haremos mediante operaciones matriciales elementales (sumarle a la nueva fila algún múltiplo de cualquier otra fila). 3. Si una vez que hechos 0 los elementos yij la tabla no es factible (hay un valor xB negativo), aplicamos el símplex dual hasta alcanzar la optimalidad.
Incorporación de una nueva variable de decisión
A veces hay que incorporar una nueva variable de decisión a un problema ya resuelto. Dicha variable puede no afectar a la optimalidad (en cuyo caso será una variable no básica) o puede afectarla, entrando a formar parte de la base. Una forma de analizar esto es, aprovechándonos de las propiedades primal-‐ dual, teniendo en cuenta que a cada variable primal le corresponde una restricción dual y procediendo como hemos explicado arriba (Incorporación de una nueva restricción). Sin embargo, podemos hacer dicho análisis directamente en el problema primal: 1. Si el problema tiene k – 1 variables de decisión, sea xk la nueva variable, modifiquemos el problema primal con las contribuciones de xk a la función objetivo. 2. Construir la k-‐ésima restricción dual y comprobar si la verifica la solución dual óptima v* (leída en la tabla primal óptima). Si es así, la variable xk no afecta a la tabla óptima. En otro caso ir al paso siguiente. 3. Añadir una nueva columna a la tabla primal óptima cuyos elementos son: !! = !!! ∙ !! ! !! −!! = !!! ∙ !! − !! 4. Aplicar el método del símplex para determinar una nueva solución óptima.
Análisis de sensibilidad: Programación Paramétrica La programación paramétrica estudia variaciones continuas en el modelo, considerando cambios simultáneos en función de un parámetro.
Variaciones en los coeficientes de costes
Página 102 del libro “Investigación Operativa, modelos determinísticos y estocásticos”.
Variación en los recursos
Página 106 del libro “Investigación Operativa, modelos determinísticos y estocásticos”.
Problema del Transporte El problema del transporte consiste en determinar las cantidades que hay que transportar de un producto homogéneo desde un conjunto de orígenes a un conjunto de destinos con coste mínimo, satisfaciendo al mismo tiempo tanto unas disponibilidades de producto en los orígenes, como una demanda en los destinos. En el problema general, que podemos representar como una red, tendremos: -‐ m orígenes Oi cada uno con una disponibilidad ai (i = 1, …, m), -‐ n destinos Dj cada uno con una demanda bj (j = 1, …, n) -‐ Una serie de costes cij asociados a transportar una unidad entre el origen Oj y el destino Dj y que se supone constante. Podemos así representar el problema en forma de red o como un problema de programación lineal, cuya función objetivo minimizará el coste de transporte: !
!
!!" ∙ !!" min ! = s.a. !!! !!! !
!!" ≤ !! ! = 1, … , ! !!!
!
!!" ≥ !! ! = 1, … , ! !!!
!!" ≥ 0 ∀!, !
Si la suma de las disponibilidades en los orígenes es menor que la suma de las demandas en los destinos ( !! < !! ), nunca se podrán satisfacer las demandas, mientras que si la suma de las disponibilidades es mayor que las demandas ( !! > !! ), entonces habrá unidades en los orígenes que no habrán sido transportadas. Un problema de transporte está equilibrado cuando la suma de las disponibilidades es igual a la de las demandas !! = !! . Si está equilibrado, las desigualdades de las restricciones en el problema lineal pasan a ser igualdades. Para equilibrar un problema de transporte, seguimos estas dos reglas:
-‐
Si hay menos demanda que disponibilidad ( !! > !! ) creamos un destino ficticio cuya demanda es el exceso de disponibilidad: !!!! = !! − !! .
-‐
Si hay más demanda que disponibilidad ( !! < !! ) se creará un origen ficticio cuya disponibilidad es el exceso de demanda: !!!! = !! − !! .
Problema del transporte: Forma Matricial
O1 O2
: Om DEM
D1
D2
c11 c21
:
c12 c22 :
cm1 b1
…
…
…
cm2 b2
…
Dn
… …
DISP
c1n c2n :
a1 a2 :
cmn bn
am
DISPONIBILIDADES
Una casilla cualquiera ya rellena (no inicial)
ORÍGENES (incluidos ficticios)
A continuación se presenta la forma matricial del problema del transporte, denominada tabla del transporte. Esta forma presenta una resolución bastante más eficiente que resolver el programa lineal. DESTINOS (incluidos los ficticios)
COSTES
DEMANDAS
Esta es la tabla inicial del transporte, sus casillas se denominan posiciones. En cada posición aparecen tres valores: cij es el coste de enviar 1 unidad de producto desde el origen Oi al destino Dj. -‐ -‐ αij es el valor indicador y nos dice si una solución es óptima o no. -‐ xij representa las unidades de producto transportada desde Oi hasta Dj. Solo escribiremos en la tabla los valores de xij distintos de cero. A las posiciones que tienen asignado un valor de xij entero positivo (distinto de cero) las llamaremos posiciones localizadas. El coste total del transporte asociado a cualquier solución factible se obtiene sumando los productos de los costes por las unidades asignadas a las posiciones localizadas. Podríamos enfrentarnos a problemas de transporte que tengan beneficios en lugar de costes multiplicando los beneficios por -‐1. Si no estuviera permitido el transporte entre determinados orígenes y destinos, les asignamos un coste grande.
Cómo resolver el problema del transporte Fase 0: Poner el problema en forma matricial y equilibrarlo si no lo fuera. Fase I: Determinar una solución básica factible inicial. Fase II: Si la solución es óptima, parar. En otro caso, determinar una solución que mejore a la anterior mediante el método MODI. Una solución optima puede ser degenerada, sin embargo no puede serlo una a partir de la cual se vaya a obtener otra mejor. Tendremos que comprobar si es no degenerada y si no convertirla.
Problema del transporte: Solución Inicial Método de la Esquina Noroeste (MEN)
Este método no utiliza la información de los costes de la tabla del transporte y conduce a una solución con a lo sumo m + n – 1 posiciones localizadas. 0. Sea (i, j) la posición de la esquina noroeste (posición superior izquierda) de la tabla de transporte (inicialmente i = j = 1). 1. Hacer xij = min{ai, bj} y reducir ai y bj en la cantidad xij situada en (i, j), de forma que la fila o columna o ambas queden satisfechas y se puedan eliminar de la tabla (marcándolas con X), ya que no se podrán hacer asignaciones adicionales a ella(s). 2. Si no queda ninguna fila o columna, parar. En otro caso, volver al paso 0 y aplicar una nueva iteración a la tabla reducida en la fila o columna de antes.
Método de aproximación de Vogel (MAV)
Este método considera los costes por unidad transportada entre distintos orígenes y destinos a través de penalizaciones por fila y columna, por lo que la solución básica factible obtenida será mejor que con el MEN (de menor coste). Las penalizaciones por fila y por columna, PFi y PCj, se obtienentomando el valor absoluto de la diferencia entre los dos costes más pequeños de la fila i o columna j respectivamente. 0. Determinar las penalizaciones por fila y por columna PFi y PCj de la matriz de transporte. 1. Considerar la fila o columna con mayor penalización y situar el mayor número posible de unidades en la posición de menor coste cij (a igualdad de penalización, elegir una fila o columna arbitrariamente). 2. Disminuir la disponibilidad de la fila i y la demanda de la columna j en la cantidad asignada a la casilla (i, j) y suprimir la fila y/o columna cuya disponibilidad o demanda, respectivamente, haya pasado a ser cero. 3. Si todas las unidades están asignadas, parar. En otro caso, volver al paso 0.
Problema del Transporte: Método de las ε-‐Posiciones El método de las ε-‐posiciones sirve para, partiendo de una solución degenerada, obtener una no degenerada. Decimos que una solución es degenerada cuando tiene menos de n + m – 1 posiciones con valor positivo (llamadas posiciones localizadas o posiciones básicas). n + m – 1 es el número de orígenes más el número de destinos, menos uno. Consiste en asignar convenientemente el valor ε, que se supone una cantidad positiva próxima a cero, a posiciones no localizadas hasta alcanzar m + n – 1 posiciones localizadas, obteniendo así una solución no degenerada. Estas ε-‐ posiciones se tienen en cuenta durante todo el proceso de solución de la Fase II como si fueran posiciones básicas y únicamente al terminar el proceso de solución, al alcanzar la optimalidad, se hacen los e iguales a cero. La asignación de ε-‐posiciones se hace a las posiciones independientes con costes más bajos, definidas como aquellas posiciones vacías para las que no es posible construir un ciclo. Un ciclo se construye considerando una sucesión de segmentos alternativamente verticales y horizontales con orígenes y destinos en posiciones básicas y que comienza y termina en a posición vacía inicialmente elegida. A las posiciones del ciclo construido se le asignan alternativamente las designaciones τ+ y τ-‐, comenzando con τ+ en la posición vacía inicial. El hecho de asignar las ε-‐posiciones de entre las posiciones independientes a aquellas de menor coste, se debe a que esta asignación puede conducir más rápidamente a la solución final. Una propiedad importante es que “siempre se puede construir un ciclo a partir de una solución básica factible”. Esto nos permitirá obtener siempre una solución no degenerada y así entrar en la Fase II.
Problema del Transporte: Método MODI El algoritmo MODI o u-‐v, utiliza el dual del problema del transporte para hallar una solución. En primer lugar debemos definir los números MODI. Si = -‐ui (número MODI de la fila i) y Tj = -‐vj (número MODI de la columna j) Estos números se sitúan en las respectivas filas y columnas a la derecha y en la parte inferior de la tabla del transporte. El valor indicador de cada variable xij es: αij = Si + Tj + cij
Pasos del algoritmo MODI:
0. Dada una solución no degenerada, hacer arbitrariamente igual a cero cualquier Si o Tj, y para cada posición básica imponer que Si + Tj + cij = 0. De esta forma, resolviendo el sistema de ecuaciones, obtenemos el valor de los números MODI. 1. Para cada posición no básica, determinar su valor indicador αij y situarlo en su respectiva posición (αij = 0 para las posiciones básicas). 2. Si para toda posición (i,j) es αij no negativo, la solución actual es óptima. Además, dicha solución óptima será única si no existe ningún αij nulo asociado a una posición no básica. Si algún valor indicador αij es negativo, es posible la mejora, ir al paso 3. 3. Para obtener la nueva solución básica factible que mejora el valor de la función objetivo, considerar la posición (i,j) con el valor indicador αij más negativo (en caso de igualdad de valores αij, elegir uno arbitrariamente). Redistribuir las unidades de la tabla construyendo un ciclo para esta posición de la siguiente manera: a. A la posición vacía para la cual se ha construido el ciclo se le asignan ρ = minτ-‐{xij} unidades, es decir, el valor xij más pequeño de entre las casillas τ-‐. b. Restamos esa misma cantidad a las posiciones del ciclo con designación τ-‐ y se la sumamos a aquellas con designación τ+. El resto de variables permanecen igual. c. Volver al paso 0 y repetir el proceso hasta alcanzar la optimalidad.
Problema de la Mochila El problema de la mochila consiste en que un excursionista debe elegir entre varios objetos para transportar en su mochila, que no debe exceder de determinado peso y donde el objetivo consiste en maximizar el valor de la mochila, es decir, de los objetos que se eligen. Consideremos n objetos, donde el objeto j tiene asociado un determinado peso pj y un valor vj. Para cada objeto hay que decidir si se incluye o no en la mochila, de manera que es posible definir las variables de decisión 1 si se incluye el objeto j en la mochila. xj = 0 en caso contrario. El problema se puede formular de la siguiente forma: !
max ! =
!! ∙ !! !!!
!
!. !.
!! ∙ !! ≤ ! !!!
!! = 0 ó 1 ∀!
Donde P es el límite de peso de la mochila. Tenemos así un problema de programación entera 0-‐1 con importantes aplicaciones a problemas reales, como el de corte óptimo (rollos de papel, tela, etc.), empaquetamiento de piezas o carga de vasos con capacidad limitada, entre otros. El lugar más probable en el examen para encontrar un problema de este tipo, es en los ejercicios de modelización.
Problema del Viajante El problema del viajante de comercio o del cartero chino es un problema entero de gran dificultad computacional. Se sustenta en el hecho de que un viajante tiene que visitar todas y cada una de n ciudades una sola vez, regresando a la ciudad de origen. El problema que debemos resolver es en qué orden debe visitar las distintas ciudades para que el coste (o distancia) del viaje sea mínimo. Este problema se puede representar de manera natural mediante una red cuyos vértices simbolizan las n ciudades y los arcos las rutas entre pares de ciudades, teniendo asociado un coste cij. La designación de los arcos se hace de acuerdo con el orden del viaje, de manera que el k-‐ésimo tramo va a estar asociado con el k-‐esimo arco. Definimos así las siguientes variables de decisión: 1, si el k-‐ésimo arco de la ruta va de la ciudad i a la j. xijk 0, en caso contrario. = El problema se puede formular de la siguiente manera: !
!
!
min ! =
!!" ∙ !!"# (! ≠ !) !!! !!! !!! !
!
!!"# = 1 (! = 1, … , !) !!! !!! ! !
!!"# = 1 (! = 1, … , !) !!! !!! ! !
!!"# = 1 (! = 1, … , !)
!!! !!!
!!"# =
!!!
!!"(!!!) !!!
!!"# = 0 ó 1 ∀!, !, !
donde el primer conjunto de restricciones expresa que desde cualquier ciudad i únicamente se puede ir a otra ciudad; el segundo, que se puede asignar una única ruta a un determinado arco k de la solución; el tercero, que se puede tener un arco final en j desde solamente otra ciudad; y el último, que suponiendo que el k-‐ésimo arco finaliza en la ciudad j, el k + 1 debe tener su origen en esa ciudad j. Esta formulación como problema 0-‐1 lleva a programas de tamaño muy grande, incluso para un número pequeño de ciudades. Existen otros métodos alternativos de solución, más eficientes, pero que no se estudiarán.
Ramificación y Acotación Llamamos problema lineal relajado (PR) asociado a un problema lineal entero, al mismo problema entero, pero prescindiendo de la condición de que sus variables sean enteras. Ramificación y Acotación es un método de solución de programas enteros que consiste en ir particionando el conjunto factible continuo del problema lineal relajado en subproblemas o subconjuntos también continuos (ramificación), prescindiendo de aquellas partes del conjunto factible del problema lineal relajado que no lo sean del problema entero. Por otro lado, la acotación se refiere a la cota superior (para la forma de maximización) que se obtiene del problema lineal relajado y a la cota inferior que se obtiene del valor de los objetivos de los subproblemas obtenidos en el proceso de ramificación, para ordenar las soluciones de los subproblemas y así, determinar la solución óptima del problema entero, descartando conjuntos que no contienen el óptimo. Presentamos el algoritmo sistemático para aplicar este método: 0. (Inicialización) Resolver el problema lineal relajado (PR) asociado al problema entero. Si la solución óptima obtenida es entera, parar y tal solución lo es del problema entero (PE). En caso contrario, asignar como cota inferior al valor óptimo del objetivo el valor –∞ o bien, si fuera posible, el valor de la función objetivo en algún punto factible del PE. 1. (Ramificación) Mediante alguna regla de ramificación, seleccionar un subconjunto (o subproblema) de soluciones factibles que quede sin sondear (inicialmente se selecciona F) y una componente no entera de la solución del subproblema en cuestión. Hacer una partición en el subconjunto elegido en dos subconjuntos más pequeños, obtenidos al añadir restricciones que excluyan los valores fraccionarios de la componente elegida. 2. (Acotación) Para cada nuevo subconjunto, determinar una cota superior zS para el valor del objetivo del PE. 3. (Sondeo) Analizar los subconjuntos que pueden contener la solución óptima y considerar como terminales aquellos que cumplan alguno de: a. El subconjunto es infactible b. zS ≤ zI c. zS se alcanza en un punto factible para el PE y zS > zI 4. (Convergencia) Si todos los subconjuntos son terminales parar y la solución óptima viene dada por c). En caso contrario, ir al paso 1. Las reglas de ramificación (para el paso 1) nos deben indicar la variable no entera sobre la que ramificar. Es importante que cuando se implementa en un ordenador, haya una regla definida, para hacerlo a mano escogeremos aleatoriamente. Para elegir algún conjunto no sondeado para ramificación podemos usar dos reglas: la mejor cota (conjunto con mayor valor para el objetivo, mayor cota superior) o la cota más reciente (selecciona el último conjunto surgido, el más reciente).
CADENAS DE MARKOV EN TIEMPO DISCRETO El estado de un sistema se observa en un conjunto discreto de instantes de tiempo t = 0, 1, 2… Las observaciones en los sucesivos estados de tiempo definen un conjunto de variables aleatorias x0, x1, x2, … Los valores que pueden tomar las variables aleatorias xn son los posibles estados del sistema en el instante n.
Matriz de transición o de probabilidades de transición
Formada por las probabilidades de transición en un paso. P – matriz cuadrada no negativa cuyas filas suman la unidad (matriz estocástica) 𝑝 1−𝑝 𝑃 = 𝑝 1−𝑝 En la matriz, las posiciones indican la probabilidad de pasar al siguiente estado. En este caso, la posición (0,0) indica que para pasar del estado 0 al 0 tenemos una probabilidad p, y la posición (0,1) nos dice que para pasar del estado 0 al 1 hay una probabilidad 1-‐p.
Diagramas de transición Es un grafo dirigido finito (refleja los resultados de la matriz) donde: 1. Cada nodo representa un estado de la cadena. 2. Cada arco representa las posibles transiciones entre estados. 3. Sobre los arcos se indican las probabilidades de transición entre estados. 1-p
0
1 p
p 1-p
Comportamiento de una transición
Estudio de los tiempos de permanencia de cada cadena en cada estado. Es la probabilidad de que la cadena permanezca en el estado i exactamente m pasos.
Ecuaciones de Chapman-‐Kolmogorov Para poder calcular la probabilidad de transición en n pasos, se eleva la matriz de transición al número de pasos deseado. La matriz resultante nos dirá la probabilidad con la que se podrá transitar a cada estado (una nueva matriz de probabilidades de transición, pero en vez probabilidad de un paso, indicará la probabilidad en n pasos). 𝑃(!!!) = 𝑃(!) 𝑃(!)
Probabilidad de transición para dos pasos: 𝑃(!) = 𝑃(!) 𝑃(!) Probabilidad de transición para tres pasos: 𝑃(!) = 𝑃(!) 𝑃(!) Probabilidad de transición para MAXIMUM pasos: 𝑃(!) = 𝑃(!) Distribución marginal en el paso n-‐ésimo Esta es la distribución de probabilidad en n pasos (expresado de forma matricial): 𝜋 ! = 𝜋 ! 𝑃!
Comportamiento estacionario Estudio de la cadena a largo plazo. Consideramos que las CMTD son siempre finitas (espacio de estados finito). Clasificación de estados Las clases de equivalencia se designan por {i,j} (siendo i y j los estados pertenecientes a la clase), son relaciones que verifican las propiedades reflexiva, simétrica y transitiva. Cada clase de equivalencia cumple que desde cualquier estado de la misma se pueda transitar a cualquier otro (ya sea con un solo paso o con varios). CMTD irreductible Cuando todos los estados de la CMTD se comunican entre sí (y por lo tanto, constará de una sola clase de equivalencia). 0.8 0.3
0
1
2
0.7 1
0.2 Ilustración 1 -‐ CMTD irreductible
CMTD no irreductible Cuando existe más de una clase de equivalencia. A partir de ahora se consideran a las clases de equivalencia como si fuera un solo estado, ya que todos los estados de la clase de equivalencia tienen la misma clasificación.
Se considera que la recurrencia y la propiedad transitoria son propiedades de clase. {0,1,2}
0.6
0.5
0
1
2
0.5 0.2
0.2
0.3 3 0.7 4
{3,4}
1
Ilustración 2 -‐ CMTD no irreductible
Estado recurrente Si comenzando en el estado recurrente, el número esperado de instantes que la cadena está en el propio estado (o clase de equivalencia) es infinito. Es decir, una vez entra el proceso en él, no sale. En el ejemplo anterior, la clase {3,4} es una clase de equivalencia recurrente. Al ser una CMTD finita, todos los estados recurrentes son estados recurrentes positivos. Estado transitorio Si comenzando en el estado transitorio, el número esperado de instantes que la cadena está en el propio estado (o clase de equivalencia) es finito. Es decir, existe la posibilidad de que se pueda salir de ahí. En el ejemplo anterior, la clase {0, 1, 2} es una clase de equivalencia transitoria. Estado periódico Su período es mayor que 1. El período de un estado se calcula con el máximo común divisor del número de pasos necesarios para volver a ese estado (suponiendo que se ha partido de él). Los estados de una clase de equivalencia comparten el mismo período, calculando el período de un estado de esa clase, sabremos el de la clase. Estado aperiódico Cuando su período es 1. Estado absorbente Si ningún otro estado de la cadena es accesible desde él.
Estado ergódico Si es aperiódico y recurrente positivo. Si todos los estados de la CMTD son ergódicos, se la considera una CMTD ergódica. 0.2
{0,1}
0
1
0.8 0.7
0.4
0.3
0.6
4
0.5
{4}
2 0.5 3 {2,3} 1
Ilustración 3 -‐ Ejemplo de clasificación de estados
Clase {0,1} {2,3} {4}
Recurrente No Sí No
Ilustración 4 -‐ Tabla de clasificación de estados
Periódico No (1) No (1) No (1)
0.5
0
1 0.5
0.5
0.5
0.5
0.5
0.5 3
2 0.5
mcd(a,b,c) = mcd(a, mcd(b,c)) mcd(2,4) = 2 Período 2 Ilustración 5 -‐ Cálculo del período de una clase de equivalencia
Teoremas límite Si la CMTD es irreductible (si no lo es, debemos coger una clase de equivalencia), existirá una distribución de probabilidad estacionaria. Cálculo del vector de probabilidad estacionario Sea: 0.7 0.3 𝑝 = 0.3 0.7 Cogemos por columnas las ecuaciones y el vector de probabilidad estacionario será: 𝜋! = 0.7𝜋! + 0.3𝜋! 𝜋! = 0.3𝜋! + 0.7𝜋! 𝜋! + 𝜋! = 1 En la última ecuación se suman todos los componentes (siempre) y se iguala a 1. Resolviendo el sistema de ecuaciones: 𝜋 = 𝜋! , 𝜋! = (0.5, 0.5) La distribución límite es un caso particular de la distribución estacionaria, es el único vector de probabilidades de equilibrio del CMTD. Para que exista distribución límite en la CMTD, esta debe ser finita (siempre lo es), irreductible y aperiódica. Esta única distribución debe verificar que: 𝜋 = 𝜋𝑃
Cadenas de Markov absorbentes
Es absorbente si al menos tiene un estado absorbente, y si es posible ir de cada estado no absorbente al estado absorbente (en uno o varios pasos).
Cadenas de Markov reversibles
Es reversible si la tasa de transiciones de i a j coincide con la de transiciones de j a i, para i,j siendo estados cualesquiera.
CADENAS DE MARKOV EN TIEMPO CONTINUO Normalmente los valores que nos dan suele ser horas/cliente ó horas/trabajo. Para poder hacer los ejercicios de manera correcta es muy importante establecer una medida universal para todo el problema, y que esta medida sea en tiempo. Es decir, si te vienen 0.5 horas/cliente, el valor a meter en los diagramas de estados (y a tener en cuenta) será de 2 clientes/hora (1/0.5), trabajando con la medida de las horas.
Comportamiento Estacionario
La distribución estacionaria se puede definir de forma análoga a la de las CMTD. Primero voy a poner la fórmula general y la explicación de cada variable infernal, de esta manera se crearán las llamadas ecuaciones de equilibrio: 𝑣! 𝜋! =
𝑞!" 𝜋!
𝜋! = 1
!
𝜋! − 𝑝𝑟𝑜𝑝𝑜𝑟𝑐𝑖ó𝑛 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑞𝑢𝑒 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗 𝑣! − 𝑡𝑎𝑠𝑎 𝑑𝑒 𝑎𝑏𝑎𝑛𝑑𝑜𝑛𝑜 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗 𝑐𝑢𝑎𝑛𝑑𝑜 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 é𝑙 𝑣! 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑑𝑒𝑗𝑎𝑟 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗 𝑞!" − 𝑡𝑎𝑠𝑎 𝑑𝑒 𝑖𝑟 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖 𝑎𝑙 𝑗 𝑐𝑢𝑎𝑛𝑑𝑜 𝑒𝑙 𝑝𝑟𝑜𝑐𝑒𝑠𝑜 𝑒𝑠𝑡á 𝑒𝑛 𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖 𝑞!" 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑖𝑟 𝑑𝑒𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑖 𝑎𝑙 𝑗 𝑞!" 𝜋! − 𝑡𝑎𝑠𝑎 𝑎 𝑙𝑎𝑟𝑔𝑜 𝑝𝑙𝑎𝑧𝑜 𝑑𝑒 𝑖𝑟 𝑎𝑙 𝑒𝑠𝑡𝑎𝑑𝑜 𝑗 Diréis, pero qué es esto. Muy sencillo. El famoso v hace referencia a la suma de las tasas de “salida” del estado j, y el puñetero q serán las tasas de “entrada” a j (de los estados que se comunican con j). El sumatorio de π del final es igual que en CMTD (para poder sacar las soluciones). 2 2
0
1
4
2
4
Ilustración 1 – Diagrama de transición CMTC
Las ecuaciones de equilibrio para el diagrama anterior serán:
2𝜋! = 4𝜋! 4 + 2 𝜋! = 2𝜋! + 4𝜋! 4𝜋! = 2𝜋! 𝜋! + 𝜋! + 𝜋! = 1 Se despejan y a tope ahí con el resultado, ya tenemos las proporciones de tiempo que el proceso estará en cada estado.
Cadenas de Markov reversibles Una CMTC es reversible si y sólo si tiene una distribución estacionaria π que satisface las ecuaciones de equilibrio locales, tal que: 𝜋! 𝑞!" = 𝜋! 𝑞!"
Procesos de nacimiento y muerte Describen sistemas cuyo estado, en cada instante, representa el número de individuos en el mismo. Cuando éste es n, se producen llegadas con tasa exponencial 𝜆! y salidas con tasa exponencial 𝜇! , de forma independiente.
Listado de fórmulas importantes para resolver problemas infernales Número medio de “algo” en el sistema !
𝐿 =
𝑛 𝜋! 𝑠𝑖𝑒𝑛𝑑𝑜 𝑚 = 𝑛º 𝑑𝑒 𝑒𝑐𝑢𝑎𝑐𝑖𝑜𝑛𝑒𝑠 𝑑𝑒 𝑒𝑞𝑢𝑖𝑙𝑖𝑏𝑟𝑖𝑜 − 1 !!!
𝐿 = 𝐿! + 𝐿!
Tiempo medio que “algo” pasa en el sistema (Fórmula de Little) 𝐿 𝑊 = 𝜆 𝑊 = 𝑊! + 𝑊! 𝑊! − 𝑡𝑖𝑒𝑚𝑝𝑜 𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 algo 𝑝𝑎𝑠𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑜𝑙𝑎 𝑊! − 𝑡𝑖𝑒𝑚𝑝𝑜 𝑚𝑒𝑑𝑖𝑜 𝑞𝑢𝑒 𝑎𝑙𝑔𝑜 𝑝𝑎𝑠𝑎 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑠𝑡𝑒𝑚𝑎 Número medio de “algo” en la cola Básicamente es L pero quitando del sumatorio aquellos π correspondientes a estados donde no se esté en la cola. Comúnmente se le denomina 𝐿! . Proporción de tiempo que hay cierto estado en el sistema Al hacer las ecuaciones de equilibrio, el resultado de 𝜋! es la proporción de tiempo del estado i en el sistema. Número medio de “algo” que está siendo procesado, por unidad de tiempo, en el sistema Se tienen en cuenta todos los π correspondientes a estados donde se está procesando algo en el sistema. Se le llama 𝐿! .
REDES DE COLAS Estos serán sistemas con múltiples nodos en los que el cliente requiere servicio en más de uno. Los clientes pueden entrar al sistema por varios nodos, encolarse para ser servidos y salir de un nodo dado para entrar en otro y recibir servicio adicional o para abandonar el sistema definitivamente. Las redes de colas son un conjunto de nodos interrelacionados que funcionan de forma asíncrona y concurrente. Se clasifican en dos grupos: • Redes abiertas: los clientes pueden entrar y salir del sistema • Redes cerradas: no entran nuevos clientes y los existentes nunca salen.
Notación de Kendall
A/B/c/K/m/z • A: distribución de tiempo entre llegadas • B: distribución de tiempo de servicio • c: número de canales de servicio (c >= 1) • k: capacidad del sistema • m: tamaño de la población • z: disciplina de la cola (LIFO, FIFO, …)
Cálculo de las tasas de entrada y de salida Los clientes llegarán con una tasa lambda según un proceso de Poisson, pero también existen probabilidades de que los clientes salgan del sistema, vuelvan a entrar a otro servidor o vuelvan a entrar al mismo servidor, por lo tanto, la tasa de entrada no será siempre igual a la lambda con la que llegan los clientes. p p+q+r = 1
3
r
Servidor 1
Servidor 2
z
q
En este caso, llegan clientes con lambda 3 al servidor 1, pero al procesarles, pueden volver a este servidor con probabilidad p, ir al servidor 2 con probabilidad r o abandonar el sistema con probabilidad q. A su vez, al procesar a los clientes en el servidor 2, abandonan el sistema (z sería probabilidad 1). Por lo tanto, para este caso en particular, las tasas se calculan de la siguiente manera: Λ! = 3 + pΛ!
Λ! = 𝑟Λ!
Ahora habría que despejar las ecuaciones.
Cálculo de la probabilidad de que haya n clientes en el nodo El número de clientes de cada nodo es independiente del número del resto. Se llega a estas fórmulas gracias al teorema de Burke. Λ! ! Λ! ! 𝜋! = 1− − 𝑝𝑟𝑜𝑏. 𝑑𝑒 𝑛 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑛𝑜𝑑𝑜 1 𝜇! 𝜇! Λ! ! Λ! ! 1− − 𝑝𝑟𝑜𝑏. 𝑑𝑒 𝑛 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑒𝑛 𝑒𝑙 𝑛𝑜𝑑𝑜 1 𝜋! = 𝜇! 𝜇! ! 𝜋!,! = 𝜋!! 𝜋! (𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 𝑒𝑠𝑡𝑎𝑐𝑖𝑜𝑛𝑎𝑟𝑖𝑎 𝑝𝑎𝑟𝑎 𝑑𝑜𝑠 𝑛𝑜𝑑𝑜𝑠) Es importante darse cuenta de que si nos piden el número de clientes, su variable es una potencia (n ó m). Ese número de clientes son variables aleatorias independientes.
Comprobación de existencia de distribución estacionaria Existirá distribución estacionaria si: Λ! 𝜌! = < 1 𝑝𝑎𝑟𝑎 𝑡𝑜𝑑𝑜 𝑖 𝜇!
Tiempo medio de permanencia en el sistema Normalmente es el tiempo que permanece un cliente o trabajo en el sistema (“algo”): 𝐿 1 1 𝑊 = = + + ⋯ 𝜆 𝜇! − 𝜆! 𝜇! − 𝜆! Hay que tener cuidado, porque en esta fórmula se tienen en cuenta las “lambdas de Poisson” y no las tasas de entrada y salida calculadas.
Tiempo medio en cola Se simboliza como Wq y básicamente es restar al tiempo total la suma de la inversa de las tasas de servicio de aquellos servidores donde no se vaya a estar en cola. Por ejemplo: 1 1 𝑊! = 𝑊 − + 𝜇! 𝜇!
Número medio de clientes en el sistema
Esta fórmula es muy importante (en vez de clientes puede ser trabajos, dependiendo del sistema enunciado). Seguimos suponiendo que tenemos dos servidores: Λ! Λ! 𝐿 = 𝐿! + 𝐿! = + 𝜇! − Λ! 𝜇! − Λ !
Variables aleatorias y medidas de interés Trabajo o tiempo medio de servicio (Ws) Se mide en cada servidor (o se suma para todos los servidores y tener un cálculo global), será el tiempo medio en despachar a un cliente o trabajo. 1 𝑊! = 𝜇 Pueden preguntar el tiempo de estancia de un trabajo en un proceso, que se distribuiría según una exponencial de parámetro 𝜇! − Λ ! : 𝑊! = 𝜇! − Λ ! Intensidad de tráfico (r)
𝜆 𝑟 = (𝑠𝑒 𝑚𝑖𝑑𝑒 𝑒𝑛 𝑒𝑟𝑙𝑎𝑛𝑔𝑠) 𝜇
Utilización o uso del servidor (𝝆) No confundir la p de probabilidad con la 𝜌 de utilización. 𝑟 𝜆 𝜌 = = 𝑐 𝑐𝜇 c hace referencia al número de canales del servicio (número de servidores), ! a la hora de medir un servidor tendremos que 𝜌 = 𝑟 = ya que c = 1. !
• • •
Situación de congestión o sistema saturado si 𝜌 ≥ 1 Situación de igualdad si 𝜌 = 1 Situación ideal si 𝜌 < 1
Normalmente nos pedirán la tasa de producción máxima que puede soportar un servidor (o el sistema entero), en este caso deberíamos verificar que ! todos los 𝜌! < 1 ⇒ 𝜌! = ! , y calcular la 𝜇! para que cumpla la restricción < 1 (o lo ! que nos pidan).
!
Productividad del sistema o caudal o paso a través del sistema 𝝀~ 𝜆~ − 𝑛º 𝑑𝑒 𝑐𝑙𝑖𝑒𝑛𝑡𝑒𝑠 𝑐𝑢𝑦𝑜 𝑠𝑒𝑟𝑣𝑖𝑐𝑖𝑜 𝑠𝑒 𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑎 𝑒𝑛 𝑢𝑛𝑎 𝑢𝑑 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜 (𝑡𝑎𝑠𝑎 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎) • Sistema con capacidad ilimitada: 𝜆~ = min {𝜆, 𝑐𝜇}
• •
Sistema congestionado: 𝜆~ = 𝑐𝜇 Sistema estable y sin pérdidas: 𝜆~ = 𝜆 = 𝜌𝑐𝜇
Cantidades medias de clientes (fórmulas de Little) 𝐿 = 𝜆𝑊 𝐿! = 𝜆𝑊! 𝐿! = 𝜆𝑊! 𝐿 = 𝐿! + 𝐿! = 𝐿! + 𝑟 Ojito con las lambdas porque depende del problema y es necesario saber si tienen una o varias lambdas (y no confundirlas con las tasas de entrada calculadas anteriormente). 𝐿! hará referencia al número medio de clientes en cola y 𝐿! al número medio de clientes en el sistema.
Bibliografía Sixto Ríos Insua, Alfonso Mateos, Concha Bielza y Antonio Jiménez. Investigación Operativa: Modelos Determinísticos y Estocásticos, Centro de Estudios Ramón Areces, S.A., Madrid. (2004)
View more...
Comments