Sunteți pe pagina 1din 33

Investigacin

Operativa
Daro Blanco Iturriaga con la colaboracin de alumno Annimo CURSO 2010-2011 UNIVERSIDAD POLITCNICA DE MADRID INGENIERA EN INFORMTICA

Forma estndar de maximizacin


Antes de resolver un problema por el mtodo del Simplex Primal, debemos asegurarnos de que se encuentre en forma de estndar de maximizacin, para lo cual deber cumplir las siguientes propiedades: 1. La funcin objetivo debe ser siempre de maximizacin. Si no lo fuera, podemos cambiar el sentido de la optimizacin con un simple cambio de signo de la funcin.
! !

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 multiplicacin 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 aadiendo variables de holgura. Si la desigualdad es sumaremos una variable de holgura, si es , la restaremos. Las variables de holgura las incorporaremos a la funcin objetivo con coeficiente cero.
! !

!!" !! !!
!!! ! !!! !

!!" !! + !! = !!

!!" !! !!
!!! !!!

!!" !! !! = !!

4. Todas las variables han de ser no negativas (tener una restriccin 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

Mtodo del Simplex Primal


ATENCIN! Antes de aplicar el mtodo del Simplex Primal, el problema DEBE estar en forma estndar de maximizacin. 1. Poner el problema en forma estndar de maximizacin. 2. Aadir variables artificiales a las restricciones que originalmente eran igualdades o desigualdades de tipo (y por tanto les aadimos antes variables de holgura negativas). 3. Ajustar la funcin objetivo con los coeficientes adecuados: 0 para las variables de holgura y M para las variables artificiales (si se utiliza el mtodo de las penalizaciones, para el mtodo de las dos fases, ver otra hoja) 4. Construir la tabla inicial del Simplex 5. Si hay algn 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 solucin 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 algn 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 ms 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 mnima la razn xBi/yik para todo yik > 0. Esto es, dividiremos cada valor de las variables bsicas, por su correspondiente elemento del vector yk de la columna pivote, y la mnima razn 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 vaca. La posicin 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 Mtodo del Simplex Primal


Construiremos la tabla inicial as: COEFICIENTES DE LA FUNCIN OBJETIVO VARIABLES DE LA FUNCIN VARIABLES c1 c2 c3 cn OBJETIVO BSICAS 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 BSICAS . BSICOS cBm xBm ym1 ym2 ym3 . ymn val(xBm) VALOR DE VECTORES z1 c1 z2 c2 z3 c3 zn cn z LA FUNCIN 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 frmula: ! ! !! = !! !! !"# !! !"# !! !! = !! !! !! 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 Construccin 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 calcularn a partir de la tabla anterior, restndole al actual elemento yij correspondiente, el resultado de multiplicar los elementos diagonales en la fila pivote y columna pivote, y dividindolos 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 multiplicacin es 0, eij no vara respecto a yij.

!"

Mtodo de las dos fases


Es una forma alternativa de resolucin para el mtodo del smplex con variables artificiales frente al mtodo de las penalizaciones, adecuada para los ordenadores ya que no pueden utilizar M para simbolizar una cantidad muy grande y tienen que poner un nmero enorme, generando errores de redondeo.

Inicializacin
0. Poner el programa en forma estndar de maximizacin, aadiendo variables artificiales si es necesario.

Fase I
1. Crear una nueva funcin objetivo artificial z del siguiente modo: Tomamos la funcin objetivo del paso 0 (ya en forma estndar de maximizacin y con variables artificiales) y cambiamos los coeficientes, asignando -1 a las variables artificiales y 0 al resto. 2. Aplicamos el mtodo del simplex al programa construido con la nueva funcin z y las restricciones originales salidas del paso 0. El proceso termina cuando o bien el valor de la funcin 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 funcin 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 bsicas, 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 funcin objetivo construida en el paso anterior (paso 3). Adems, hay que calcular de nuevo los valores zj cj de la fila indicador como ya sabemos, con la ! frmula !! !! = !! !! !! y el valor de z, con los valores de xB. 5. Si la funcin construida en el paso 3 no tiene variables artificiales, aplicar el mtodo del Simplex. En otro caso, ir al paso siguiente (paso 6). 6. Aplicamos el mtodo del Simplex con la siguiente modificacin 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 ningn yik correspondiente a dichas variables artificiales es negativo), aplicar la regla de la variable de salida del mtodo del Smplex.

Relaciones estructurales en dualidad


Programa lineal en forma simtrica
1. 2. El objetivo es de la forma de maximizacin o minimizacin. Todas las restricciones son desigualdades de la forma si el problema es de maximizacin y de la forma si se trata de un problema de minimizacin. NUNCA hay restricciones que sean igualdades. Si las hay se transforman, dando lugar a dos desigualdades por igualdad. Todas las variables son no negativas.

3.

Relaciones estructurales primal-dual simtrico


1. 2. 3. 4. 5. 6.

El objetivo de un problema es de maximizacin y el del otro, de minimizacin. En el problema de maximizacin todas las restricciones son desigualdades de la forma y en el de minimizacin 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 funcin objetivo en el otro. Por cada variable en un problema se tiene una restriccin en el otro y viceversa. La matriz de coeficientes tecnolgicos 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 simtrica, solo se aplica a programas lineales en forma simtrica. Hay un cierto nmero de problemas que no vienen en forma simtrica y de este modo, no tendramos que convertirlos a dicha forma. 1. El objetivo de un problema es de la forma de maximizacin y el del otro de minimizacin. 2. En el problema de maximizacin todas las restricciones son desigualdades de la forma o igualdades. En el de minimizacin son o igualdades. 3. Los elementos del vector de recursos en un problema son los coeficientes de la funcin objetivo en el otro. 4. Para cada variable en un problema se tiene una restriccin en el otro, y viceversa. 5. La matriz de coeficientes tecnolgicos 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 restriccin 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 dbil) El valor de la funcin objetivo z del problema de maximizacin es menor o igual que el valor de la funcin objetivo w del problema de minimizacin. 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 recprocamente, 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 recprocamente, 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.

Relacin de holgura complementaria


Sirven para obtener fcilmente la solucin 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 restriccin dual es una igualdad (la restriccin dual es una igualdad en el ptimo, con vj = 0). b) Si una restriccin 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 restriccin primal es una igualdad (ui = 0). d) Si una restriccin 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.

Mtodo del Smplex Dual


Este mtodo, al contrario que el smplex primal, parte de una base dual factible y se mueve por bases duales factibles hasta alcanzar una base que sea, adems, primal factible. Por ello, este mtodo es nicamente aplicable a un problema que sea primal infactible y dual factible, es decir, si inicialmente uno o ms xBi son negativos y todo zj cj 0. La tabla que usa el smplex dual es la misma que la del smplex 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 solucin ptima) cuando todos los xBi 0, en cuyo caso la solucin es primal y dual factible.

Algoritmo del Smplex Dual para el problema de maximizacin


1. Dada xB solucin bsica dual factible (zj cj 0, !), si xB 0, la solucin es ptima, por lo que paramos. 2. Seleccin de la variable de salida. Seleccionar como variable de salida aquella variable bsica con el xBi ms negativo y designar la fila asociada (fila pivote) por r y la variable por xr 3. Seleccin de la variable de entrada. Determinar para aquellas columnas no bsicas (j no pertenece a B) con elemento yrj < 0, la razn pj = (zj cj)/yrj, y seleccionar como variable de entrada, aquella que tenga la mayor razn (ms 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 solucin: 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.

Anlisis de Sensibilidad: Cambios Discretos


El anlisis de sensibilidad estudia el efecto de cambios en el modelo sobre la solucin ptima. Utilizaremos la tabla ptima del smplex para obtener con el cambio de algn dato la nueva solucin ptima sin tener que resolver el problema nuevamente.

Cambio en un coeficiente de coste bsico


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 smplex hasta alcanzar la optimalidad

Cambio en un coeficiente de coste no bsico


Si cambia un coeficiente cj asociado a una variable no bsica, el nico cambio que se produce es el de su valor indicador zj cj correspondiente a esa columna no bsica. 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 smplex 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 bsica 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 algn xBi pasa a ser negativo, habr que aplicar el mtodo del smplex dual hasta alcanzar la factibilidad. Para determinar ! !! seguiremos las siguientes reglas: - Las columnas !! de ! !! van asociadas con las variables bsicas iniciales (primera tabla del smplex) y estn 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 tecnolgicos


Si el coeficiente tecnolgico aik que ha sufrido cambios es bsico, hay que rehacer el problema de nuevo. En caso contrario, si llamamos !! al nuevo vector tecnolgico bajo la variable no bsica 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 smplex hasta alcanzar la optimalidad.

Anlisis de Sensibilidad: Incorporacin


Incorporacin de una nueva restriccin
A veces es necesario aadir una nueva restriccin una vez que ya se ha modelizado y resuelto el problema. Para evaluar su efecto, basta con comprobar si la solucin ptima x* satisface esta nueva restriccin: - Si la satisface, no hay efecto y la solucin x* sigue siendo la ptima. - De lo contrario, hay que realizar el siguiente procedimiento: 1. Incorporar la nueva restriccin a la tabla final (aadiendo una fila encima de los indicadores), considerando adems 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 bsicas, esto lo haremos mediante operaciones matriciales elementales (sumarle a la nueva fila algn mltiplo 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 smplex dual hasta alcanzar la optimalidad.

Incorporacin de una nueva variable de decisin


A veces hay que incorporar una nueva variable de decisin a un problema ya resuelto. Dicha variable puede no afectar a la optimalidad (en cuyo caso ser una variable no bsica) o puede afectarla, entrando a formar parte de la base. Una forma de analizar esto es, aprovechndonos de las propiedades primal- dual, teniendo en cuenta que a cada variable primal le corresponde una restriccin dual y procediendo como hemos explicado arriba (Incorporacin de una nueva restriccin). Sin embargo, podemos hacer dicho anlisis directamente en el problema primal: 1. Si el problema tiene k 1 variables de decisin, sea xk la nueva variable, modifiquemos el problema primal con las contribuciones de xk a la funcin objetivo. 2. Construir la k-sima restriccin dual y comprobar si la verifica la solucin dual ptima v* (leda 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. Aadir una nueva columna a la tabla primal ptima cuyos elementos son: ! !! = !!! !! ! !! !! = !! !! !! 4. Aplicar el mtodo del smplex para determinar una nueva solucin ptima.

Anlisis de sensibilidad: Programacin Paramtrica


La programacin paramtrica estudia variaciones continuas en el modelo, considerando cambios simultneos en funcin de un parmetro.

Variaciones en los coeficientes de costes

Pgina 102 del libro Investigacin Operativa, modelos determinsticos y estocsticos.

Variacin en los recursos

Pgina 106 del libro Investigacin Operativa, modelos determinsticos y estocsticos.

Problema del Transporte


El problema del transporte consiste en determinar las cantidades que hay que transportar de un producto homogneo desde un conjunto de orgenes a un conjunto de destinos con coste mnimo, satisfaciendo al mismo tiempo tanto unas disponibilidades de producto en los orgenes, como una demanda en los destinos. En el problema general, que podemos representar como una red, tendremos: - m orgenes 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 programacin lineal, cuya funcin objetivo minimizar el coste de transporte:
! !

!!" !!" min ! = s.a. !!! !!!


!

!!" !! ! = 1, , !
!!! !

!!" !! ! = 1, , !
!!!

Si la suma de las disponibilidades en los orgenes es menor que la suma de las demandas en los destinos ( !! < !! ), nunca se podrn satisfacer las demandas, mientras que si la suma de las disponibilidades es mayor que las demandas ( !! > !! ), entonces habr unidades en los orgenes que no habrn 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 ms demanda que disponibilidad ( !! < !! ) se crear un origen ficticio cuya disponibilidad es el exceso de demanda: !!!! = !! !! .

!!" 0 !, !

Problema del transporte: Forma Matricial


A continuacin se presenta la forma matricial del problema del transporte, denominada tabla del transporte. Esta forma presenta una resolucin bastante ms eficiente que resolver el programa lineal. DESTINOS (incluidos los ficticios)
ORGENES (incluidos ficticios)
Una casilla cualquiera ya rellena (no inicial)

O1 O2 : Om DEM

D1 c11 c21 : cm1 b1

D2 c12 c22 : cm2 b2

Dn c1n c2n : cmn bn

DISP a1 a2 : am
COSTES DISPONIBILIDADES

Esta es la tabla inicial del transporte, sus casillas se denominan posiciones. En cada posicin 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 solucin 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 solucin factible se obtiene sumando los productos de los costes por las unidades asignadas a las posiciones localizadas. Podramos 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 orgenes y destinos, les asignamos un coste grande.

DEMANDAS

Cmo resolver el problema del transporte


Fase 0: Poner el problema en forma matricial y equilibrarlo si no lo fuera. Fase I: Determinar una solucin bsica factible inicial. Fase II: Si la solucin es ptima, parar. En otro caso, determinar una solucin que mejore a la anterior mediante el mtodo MODI. Una solucin 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: Solucin Inicial


Mtodo de la Esquina Noroeste (MEN)
Este mtodo no utiliza la informacin de los costes de la tabla del transporte y conduce a una solucin con a lo sumo m + n 1 posiciones localizadas. 0. Sea (i, j) la posicin de la esquina noroeste (posicin 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 (marcndolas con X), ya que no se podrn 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 iteracin a la tabla reducida en la fila o columna de antes.

Mtodo de aproximacin de Vogel (MAV)


Este mtodo considera los costes por unidad transportada entre distintos orgenes y destinos a travs de penalizaciones por fila y columna, por lo que la solucin bsica 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 ms pequeos 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 penalizacin y situar el mayor nmero posible de unidades en la posicin de menor coste cij (a igualdad de penalizacin, 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 estn asignadas, parar. En otro caso, volver al paso 0.

Problema del Transporte: Mtodo de las -Posiciones


El mtodo de las -posiciones sirve para, partiendo de una solucin degenerada, obtener una no degenerada. Decimos que una solucin es degenerada cuando tiene menos de n + m 1 posiciones con valor positivo (llamadas posiciones localizadas o posiciones bsicas). n + m 1 es el nmero de orgenes ms el nmero de destinos, menos uno. Consiste en asignar convenientemente el valor , que se supone una cantidad positiva prxima a cero, a posiciones no localizadas hasta alcanzar m + n 1 posiciones localizadas, obteniendo as una solucin no degenerada. Estas - posiciones se tienen en cuenta durante todo el proceso de solucin de la Fase II como si fueran posiciones bsicas y nicamente al terminar el proceso de solucin, al alcanzar la optimalidad, se hacen los e iguales a cero. La asignacin de -posiciones se hace a las posiciones independientes con costes ms bajos, definidas como aquellas posiciones vacas para las que no es posible construir un ciclo. Un ciclo se construye considerando una sucesin de segmentos alternativamente verticales y horizontales con orgenes y destinos en posiciones bsicas y que comienza y termina en a posicin vaca inicialmente elegida. A las posiciones del ciclo construido se le asignan alternativamente las designaciones + y -, comenzando con + en la posicin vaca inicial. El hecho de asignar las -posiciones de entre las posiciones independientes a aquellas de menor coste, se debe a que esta asignacin puede conducir ms rpidamente a la solucin final. Una propiedad importante es que siempre se puede construir un ciclo a partir de una solucin bsica factible. Esto nos permitir obtener siempre una solucin no degenerada y as entrar en la Fase II.

Problema del Transporte: Mtodo MODI


El algoritmo MODI o u-v, utiliza el dual del problema del transporte para hallar una solucin. En primer lugar debemos definir los nmeros MODI. Si = -ui (nmero MODI de la fila i) y Tj = -vj (nmero MODI de la columna j) Estos nmeros se sitan 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 solucin no degenerada, hacer arbitrariamente igual a cero cualquier Si o Tj, y para cada posicin bsica imponer que Si + Tj + cij = 0. De esta forma, resolviendo el sistema de ecuaciones, obtenemos el valor de los nmeros MODI. 1. Para cada posicin no bsica, determinar su valor indicador ij y situarlo en su respectiva posicin (ij = 0 para las posiciones bsicas). 2. Si para toda posicin (i,j) es ij no negativo, la solucin actual es ptima. Adems, dicha solucin ptima ser nica si no existe ningn ij nulo asociado a una posicin no bsica. Si algn valor indicador ij es negativo, es posible la mejora, ir al paso 3. 3. Para obtener la nueva solucin bsica factible que mejora el valor de la funcin objetivo, considerar la posicin (i,j) con el valor indicador ij ms negativo (en caso de igualdad de valores ij, elegir uno arbitrariamente). Redistribuir las unidades de la tabla construyendo un ciclo para esta posicin de la siguiente manera: a. A la posicin vaca para la cual se ha construido el ciclo se le asignan = min-{xij} unidades, es decir, el valor xij ms pequeo de entre las casillas -. b. Restamos esa misma cantidad a las posiciones del ciclo con designacin - y se la sumamos a aquellas con designacin +. 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 decisin 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 lmite de peso de la mochila. Tenemos as un problema de programacin 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 ms probable en el examen para encontrar un problema de este tipo, es en los ejercicios de modelizacin.

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 mnimo. Este problema se puede representar de manera natural mediante una red cuyos vrtices simbolizan las n ciudades y los arcos las rutas entre pares de ciudades, teniendo asociado un coste cij. La designacin 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 decisin: 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, , !)
!!! !!!

!!"# =
!!! !!!

!!"(!!!)

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 solucin; 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 formulacin como problema 0-1 lleva a programas de tamao muy grande, incluso para un nmero pequeo de ciudades. Existen otros mtodos alternativos de solucin, ms eficientes, pero que no se estudiarn.

!!"# = 0 1 !, !, !

Ramificacin y Acotacin
Llamamos problema lineal relajado (PR) asociado a un problema lineal entero, al mismo problema entero, pero prescindiendo de la condicin de que sus variables sean enteras. Ramificacin y Acotacin es un mtodo de solucin de programas enteros que consiste en ir particionando el conjunto factible continuo del problema lineal relajado en subproblemas o subconjuntos tambin continuos (ramificacin), prescindiendo de aquellas partes del conjunto factible del problema lineal relajado que no lo sean del problema entero. Por otro lado, la acotacin se refiere a la cota superior (para la forma de maximizacin) 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 ramificacin, para ordenar las soluciones de los subproblemas y as, determinar la solucin ptima del problema entero, descartando conjuntos que no contienen el ptimo. Presentamos el algoritmo sistemtico para aplicar este mtodo: 0. (Inicializacin) Resolver el problema lineal relajado (PR) asociado al problema entero. Si la solucin ptima obtenida es entera, parar y tal solucin 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 funcin objetivo en algn punto factible del PE. 1. (Ramificacin) Mediante alguna regla de ramificacin, seleccionar un subconjunto (o subproblema) de soluciones factibles que quede sin sondear (inicialmente se selecciona F) y una componente no entera de la solucin del subproblema en cuestin. Hacer una particin en el subconjunto elegido en dos subconjuntos ms pequeos, obtenidos al aadir restricciones que excluyan los valores fraccionarios de la componente elegida. 2. (Acotacin) 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 solucin 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 solucin ptima viene dada por c). En caso contrario, ir al paso 1. Las reglas de ramificacin (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 algn conjunto no sondeado para ramificacin podemos usar dos reglas: la mejor cota (conjunto con mayor valor para el objetivo, mayor cota superior) o la cota ms reciente (selecciona el ltimo conjunto surgido, el ms 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 transicin o de probabilidades de transicin

Formada por las probabilidades de transicin en un paso. P matriz cuadrada no negativa cuyas filas suman la unidad (matriz estocstica) 1 = 1 En la matriz, las posiciones indican la probabilidad de pasar al siguiente estado. En este caso, la posicin (0,0) indica que para pasar del estado 0 al 0 tenemos una probabilidad p, y la posicin (0,1) nos dice que para pasar del estado 0 al 1 hay una probabilidad 1-p. 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 transicin entre estados. 1-p

Diagramas de transicin

0 p 1-p

1 p

Comportamiento de una transicin

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 transicin en n pasos, se eleva la matriz de transicin al nmero 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 transicin, pero en vez probabilidad de un paso, indicar la probabilidad en n pasos). (!!!) = (!) (!)

Probabilidad de transicin para dos pasos: (!) = (!) (!) Probabilidad de transicin para tres pasos: (!) = (!) (!) Probabilidad de transicin para MAXIMUM pasos: (!) = (!) Distribucin marginal en el paso n-simo Esta es la distribucin 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). Clasificacin 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, simtrica 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 0.7 0.2
Ilustracin 1 - CMTD irreductible

CMTD no irreductible Cuando existe ms 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 clasificacin.

Se considera que la recurrencia y la propiedad transitoria son propiedades de clase.


{0,1,2} 0.5 0.6

0 0.5 0.2

0.2

0.3 3 0.7 4

{3,4}

Ilustracin 2 - CMTD no irreductible

Estado recurrente Si comenzando en el estado recurrente, el nmero 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 nmero 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 peridico Su perodo es mayor que 1. El perodo de un estado se calcula con el mximo comn divisor del nmero 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 perodo, calculando el perodo de un estado de esa clase, sabremos el de la clase. Estado aperidico Cuando su perodo es 1. Estado absorbente Si ningn otro estado de la cadena es accesible desde l.

Estado ergdico Si es aperidico y recurrente positivo. Si todos los estados de la CMTD son ergdicos, se la considera una CMTD ergdica. {0,1} 0.2

0 0.8 0.4 4 {4} 0.5 3 0.6 0.5 0.7

0.3

{2,3} 1
Ilustracin 3 - Ejemplo de clasificacin de estados

Peridico No (1) No (1) No (1)

Ilustracin 4 - Tabla de clasificacin de estados

Clase {0,1} {2,3} {4}

Recurrente No S No


0.5

0 0.5 0.5 0.5 0.5 3 0.5

0.5

0.5

mcd(a,b,c) = mcd(a, mcd(b,c)) mcd(2,4) = 2 Perodo 2


Ilustracin 5 - Clculo del perodo de una clase de equivalencia

Teoremas lmite Si la CMTD es irreductible (si no lo es, debemos coger una clase de equivalencia), existir una distribucin de probabilidad estacionaria. Clculo 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 ecuacin se suman todos los componentes (siempre) y se iguala a 1. Resolviendo el sistema de ecuaciones: = ! , ! = (0.5, 0.5) La distribucin lmite es un caso particular de la distribucin estacionaria, es el nico vector de probabilidades de equilibrio del CMTD. Para que exista distribucin lmite en la CMTD, esta debe ser finita (siempre lo es), irreductible y aperidica. Esta nica distribucin 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 distribucin estacionaria se puede definir de forma anloga a la de las CMTD. Primero voy a poner la frmula general y la explicacin de cada variable infernal, de esta manera se crearn las llamadas ecuaciones de equilibrio: ! ! =
!

!" !

! = 1

! ! ! ! !" !" ! !" ! Diris, pero qu es esto. Muy sencillo. El famoso v hace referencia a la suma de las tasas de salida del estado j, y el puetero q sern 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

4
Ilustracin 1 Diagrama de transicin CMTC

Las ecuaciones de equilibrio para el diagrama anterior sern:

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 slo si tiene una distribucin estacionaria que satisface las ecuaciones de equilibrio locales, tal que: ! !" = ! !"

Procesos de nacimiento y muerte


Describen sistemas cuyo estado, en cada instante, representa el nmero 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 frmulas importantes para resolver problemas infernales


Nmero medio de algo en el sistema
!

=
!!!

! = 1 = ! + !

Tiempo medio que algo pasa en el sistema (Frmula de Little) = = + ! ! algo ! ! Nmero medio de algo en la cola Bsicamente es L pero quitando del sumatorio aquellos correspondientes a estados donde no se est en la cola. Comnmente se le denomina ! . Proporcin de tiempo que hay cierto estado en el sistema Al hacer las ecuaciones de equilibrio, el resultado de ! es la proporcin de tiempo del estado i en el sistema. Nmero 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 sern sistemas con mltiples nodos en los que el cliente requiere servicio en ms 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 asncrona 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.

Notacin de Kendall

A/B/c/K/m/z A: distribucin de tiempo entre llegadas B: distribucin de tiempo de servicio c: nmero de canales de servicio (c >= 1) k: capacidad del sistema m: tamao de la poblacin z: disciplina de la cola (LIFO, FIFO, )

Clculo de las tasas de entrada y de salida


Los clientes llegarn con una tasa lambda segn un proceso de Poisson, pero tambin 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

Servidor 1 q

Servidor 2

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 sera probabilidad 1). Por lo tanto, para este caso en particular, las tasas se calculan de la siguiente manera: ! = 3 + p!

! = !

Ahora habra que despejar las ecuaciones.

Clculo de la probabilidad de que haya n clientes en el nodo


El nmero de clientes de cada nodo es independiente del nmero del resto. Se llega a estas frmulas gracias al teorema de Burke. ! ! ! ! ! = 1 . 1 ! ! ! ! ! ! 1 . 1 ! = ! ! ! ! !,! = ! ! ( ) Es importante darse cuenta de que si nos piden el nmero de clientes, su variable es una potencia (n m). Ese nmero de clientes son variables aleatorias independientes.

Comprobacin de existencia de distribucin estacionaria


Existir distribucin 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 frmula 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 bsicamente 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 = + ! ! !

Nmero medio de clientes en el sistema

Esta frmula 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 inters


Trabajo o tiempo medio de servicio (Ws) Se mide en cada servidor (o se suma para todos los servidores y tener un clculo 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 distribuira segn una exponencial de parmetro ! ! : ! = ! ! Intensidad de trfico (r) = ( )

Utilizacin o uso del servidor () No confundir la p de probabilidad con la de utilizacin. = = c hace referencia al nmero de canales del servicio (nmero de servidores), ! a la hora de medir un servidor tendremos que = = ya que c = 1.
!

Normalmente nos pedirn la tasa de produccin mxima que puede soportar un servidor (o el sistema entero), en este caso deberamos verificar que ! todos los ! < 1 ! = ! , y calcular la ! para que cumpla la restriccin < 1 (o lo ! que nos pidan).
!

Situacin de congestin o sistema saturado si 1 Situacin de igualdad si = 1 Situacin ideal si < 1

Productividad del sistema o caudal o paso a travs del sistema ~ ~ ( ) Sistema con capacidad ilimitada: ~ = min {, }

Sistema congestionado: ~ = Sistema estable y sin prdidas: ~ = =

Cantidades medias de clientes (frmulas 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 nmero medio de clientes en cola y ! al nmero medio de clientes en el sistema.

Bibliografa
Sixto Ros Insua, Alfonso Mateos, Concha Bielza y Antonio Jimnez. Investigacin Operativa: Modelos Determinsticos y Estocsticos, Centro de Estudios Ramn Areces, S.A., Madrid. (2004)

S-ar putea să vă placă și