Apuntes de Investigación Operativa

October 6, 2017 | Author: Darío Blanco Iturriaga | Category: Function (Mathematics), Matrix (Mathematics), Operations Research, Transport, Euclidean Vector
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF