Vous êtes sur la page 1sur 40

Metodos

Branch and Bound:


y Algoritmo de Branching strategy. y Relax Assignment Problem, usando tambin

el algoritmo hngaro, Eastman 1950-1960 y El algoritmo de Little.

Mtodos Heursticos:
y El vecino mas cercano y B & B. y Twice around the tree

Branching strategy
1. Ejemplo con una matriz simtrica 2. si se empieza desde la ciudad 1, se dice que la persona tiene que atravesar la distancia mnima de 7, ver de la matriz . 3. Si llegase a la ciudad 2 la distancia mnima a recorrer es 5. 4. Y as con todas las dems ciudades hasta llegar a la suma de todas las distancias mnimas de las filas. 5. El resultado es un camino mnimo en este caso 31 y esto es una Lower Bound (LB) de la distancia real que la persona tiene que recorrer.

Branching strategy

Una vez obtenido el LB se comienza a dibujar las ramas, para nuestro ejemplo dibujamos 4 ramas que es n-1. En cada rama escribimos X12=1, X13=1, X14=1, X15=1, Al recordar que vamos a empezar en la ciudad 1, temporalmente eliminamos la primera fila y la segunda columna (X12) estos nos permitir obtener la distancia adicional que la persona va a realizar Con la matriz reducida sacamos de nuevo el mnimo de las filas Los mnimos son: 5+8+6+6= 25 a esto se le suba el 10 de 1,2 dando una total de 35

Branching strategy

Se realiza las misma operacin para todas las dems ramas.


X14= 6+8+5+6+9= 34

X13= 5+8+5+6+8= 32

X14= 5+8+5+7+6= 31

Branching strategy

Seguimos haciendo las ramas a partir de aquel que tenga el valor mnimo. En este caso el X14= 31. Ahora solo se crear 3 ramas, X21=1, X23=1, X24=1 Ahora con la matriz se elimina 2 filas y 2 columnas la obtenida y la nueva.

X21= 8+5+6+10+7=36

Branching strategy

Se realiza las misma operacin para todas las dems ramas.


X23= 8+5+6+10+7=36 4

X24= 8+8+6+5+7=34

Branching strategy

De mi rbol veo la ramas y busco cual tiene el valor mnimo en este caso es el 32 y desde aqu decido a empezar a hacer la siguientes ramas. Con X21=1, X24=1, X25=1. se empieza a eliminar de la matriz temporalmente nuevamente.

X21=8+5+6+10+8=37

X21=8+6+6+ 8 + 5 =33

X21=8+5+6+ 8 + 6 =33

Branching strategy

Con los resultados obtenidos cual es el menor para seguir creando ramas. 2 ramas con X32=1, X35 =1. Solo que ahora al tener solo 2 ramas ya no busco el LB si no que busco el Uper Bound (UB) de las soluciones factibles. Tengo 1-3-2-4 entonces el que queda es al final es 5: 1-3-2-4-5-1. La suma del camino es 1-3+3-2+2+4+4-5+5-1=8+10+5+6+7=36 Tenemos una solucin factible de Z=36. ahora podemos hacer unas cosas Podemos factorar aquellos nodos que sean mayor 0 igual a la solucin factible. Continuamos con el siguiente nodo. 1-3-5 2-4. aqu no existe un camino que una de 5 a 2 o de 5 a 4 asi que volvemos a la matriz Vemos que la nica posibilidad es de 5-2 y de 4 a 1. tenemos lo siguiente 1-3-5-2-4-1 Z= 8+9+6+5+9=37, lo que no ayuda en mucho. Regresamos y vemos cual es el mas pequeo y volvemos al 33

Branching strategy

De nuevo buscamos soluciones factibles. Primer nodo: 1-3-2-5-4-1 = 8+10+6+6+9=39 igual no ayuda. Vamos al siguiente nodo. Segundo nodo 1-3-4-2-5-1= 8+8+5+6+7=34. Ahora que contamos con una solucin menor puedo hacer eliminaciones de aquellos nodos que sean mayores o iguales. Ahora tenemos una solucin factible y no queda ningn nodo para evaluar todos los nodos han sido eliminados. El algoritmo termina dando la solucin optima: 1-3-4-2-5-1= 8+8+5+6+7=34 No es rpido, toma muchos nodos para su evaluacin.

Relax Assignment Problem con el metodo hngaro


Se resuelve el problema de asignacin usando el mtodo hngaro, nos vamos ala matriz. Primero se resta la fila mnima ala matriz.

Relax Assignment Problem con el metodo hngaro


Y ahora se resta la columna mnima. Se nota en casi todas es cero solo cambia una columna

Relax Assignment Problem con el metodo hngaro


Se comienza a hacer asignaciones a las filas con 1 solo cero las de dos cero se omiten Se tachan aquellos ceros que estn ubicados en la columna del cero asignado

se continua con la asignacin de ceros: Una vez terminada la asignacion por fila se continua con la de columna:

Relax Assignment Problem con el metodo hngaro


Se tiene la parte inicial, se continua con el procedimiento de seleccin, donde seleccionamos una fila que no tenga asignacion, si hay un cero seleccionamos sus columnas Si hay una asignacin en las columnas se selecciona la fila correspondiente

Relax Assignment Problem con el metodo hngaro


Aquellas filas que no fueron seleccionadas les dibujamos una lnea. Tambin ponemos lneas a aquellas que tengan cero asignados y ceros tachados.

Se busca el mnimo de aquellos que no tengan lneas que pasen por ellos: 1 Se crea una nueva matriz en donde aquellas que no tengan lneas se le resta el valor antes obtenido, si pasan 2 lneas smale el valor, y con una lnea dejalo tal cual este

Relax Assignment Problem con el metodo hngaro

Con la matriz reducida comenzamos a hacer asignaciones a las filas con un cero Y se elimina los ceros de la columna. Se continua con las columnas

Relax Assignment Problem con el metodo hngaro


Se llega una situacin donde ya no podemos hacer mas asignaciones . Se realiza asignacin arbitrarias

Tenemos 5 asignaciones as que la solucin de asignacion es : X13 = X24= X31= X45= X52 =1 De la matriz original Z= 8+5+8+6+6=33 Hay que verificar si es factible con el TSP, entonces seria optimo. Al ver bine vemos que tenemos subtours : X13 = X31=1 y X24= X45 = X52 =1

Relax Assignment Problem con el metodo hngaro


Como no es factible haremos que el 33 sea el LB, del valor optimo del TSP. Hay que ver si podemos ajustar este valor. Con la ultima matriz reducida creamos una matriz de subtour

Para que ayuda?. Con esto tenemos el valor con el que la lineas que van unir a los subtrours y a cuanto se le va sumar al LB en este caso ambos son cero y el 33 queda igual, si los miniimos hubieran sido 1s solo se suma uno y no los dos y el LB seria de 34

Relax Assignment Problem con el metodo hngaro


Se continua ahora con el algoritmo brach and bound. Con los subtours se deben de eliminar escogemos el mas pequeo. Dibujamos el rbol con las ramas X13=0 X13=1. Volvemos a la matriz original con X13=0 en el 1-3 ponemos un - para que vaya a infinito as 1-3 no pertenezca a la solucin. Se vuelve a solucionar con la nueva matriz el problema de asignacin donde obtenemos un nuevo LB el cual puede aumentar dependiendo de los subtours. Para este caso el LB es 34, la solucin aun no es factible ya que se obtiene subtours como son 1-5-3-1 , 2-4-2. Con X13=1 eliminamos la fila 1 y la columna 3 y resolvemos el problema de asignacin con la nueva matriz de 4x4 donde en el valor de 8 lo sumamos al valor optimo. Como resultado obtenemos un 34 pero con subtours 1-3-5-1 y 2-4-2 Se ve que ambas soluciones es lo mismo, ambos siguen siendo no factibles y con subtours as que tenemos que eliminar los subtour de nuevo

Relax Assignment Problem con el metodo hngaro


Se crean de nuevo 2 ramas ahora con X24=0 y X24=1 Ahora tendremos en X24=0 un - al igual que en X13=0 en la coordenada dadas, se resuelve el problema de asignacin El nuevo resultado es 36 con una solucin X15=X54= X42=X23= X31 1-5-4-2-3-1 lo que si es una solucin factible para el TSP. De esta manera al tener una solucin el 36 ahora funciona como un UB y no importa aquellos que tengan una solucin de igual o mayor a 36. Volvemos a evaluar el valor de X24=1 ponemos un - en X13=0 y eliminamos la fila y columna de X24=1. Resolvemos el problema de la matriz de 4x4 sumamos el 5 de la interseccin a la solucin obtenida Obtenemos un LB de 34 y solucin X15=X52= X24=X43= X31 1-5-2-4-3-1 Y con esto podemos ya no seguir haciendo mas ramas con aquellas que sea 34 o mayor El algoritmo termina con el UB actual como la mejor solucin

Relax Assignment Problem con el metodo hngaro


El anterior era muy rudimentario, este algoritmo tiene menos nodos Un LB muy ajustado. El calculo de LB es un poco mas difcil de calcular, por igual tomara mas tiempo de en computar. Ya que se resuelve un problema de asignacin en cada nodo. Pero el anterior consumira mas memoria. Al ser un matriz simtrica se tiende a tener subtours pequeos de 2 o 3

Algoritmo de Little

Primero vamos a reducir la matriz restando el valor mnimo de la fila

Realizamos la suma del mnimo de las filas de la matriz original: 7+5+8+5+6=31 LB Vemos ahora las columnas en la columna 3 no existe cero por lo que tericamente hablando decimos que de una ciudad podemos llegar a otra ciudad con un costo de cero. Por lo que ahora a 31 se le suma 1 LB=32

Algoritmo de Little

Empezamos el algoritmo de Branch and Bound con un LB de 32 Ahora con la matriz reducida comenzamos a hacer asignaciones como en el problema de asignacin donde hay ceros para no incrementar distancia adicional para alcanzar el nodo o mientras salimos de ese nodo Que pasa si no puedo asignar en un cero en particular? Hacerlo es lo mas deseado pero caso de que no suceda , en nuestro ejemplo la fila 1, columna 3 no se puede asignar el cero . Por lo que vemos el siguiente mnimo de la fila el cual es tambin cero, pero si vemos el siguiente mnimo de la columna en este caso es 2. Al no hacer la asignacin pero como es necesario hacerlo, vamos a tener una penalizacin adicional (PA) de 2, ya que tenemos una penalizacin en fila de 0 , 0-0 =0 y una penalizacin de 2 en la columna 2-0=2 PA =0+2=2

Algoritmo de Little

Matriz final que muestra al no haber asignado en la posicin cero

Hemos calculado las penalizaciones lo que nos dice que si por alguna razon no puedo hacer una asignacion en F 1,C3 tendre una enalizacion de 2, al ser la penalizacion mas grande , voy a asignar mas en esa posicion , ya que al no asignar va ser muy alto , en nuetro ejemplo vemos ese cero que tiene la penalizacion mas grande que va ser el primero que trataremos de asignar , ya que al no asignar en esta posicion va incrementar a 2 y empezamos a realizar las ramas con 1-3. En nuetro arbol creamos dos ramas con X =0 y X13=1

Algoritmo de Little

Al no asignarlo es decir que 1-3 no sea parte de la solucin incrementa el LB a +2 es decir en X13=0 su nodo va tener el LB de 34. En X13=1 eliminamos temporalmente la fila 1 y la columna 3 creando una nueva matriz de 4x4 . Ahora que asignamos a 1-3 por ende no podemos tener 3-1 de la nueva matriz o tendremos un subtour.

Tenemos que ver en la nueva matriz que cada fila y cada columna tenga un cero para ser asignado. Todas las filas tiene ceros pero las columnas no, asi que restamos la columna minima

Algoritmo de Little

As que resta como restamos 2 unos en la columnas eso significa que tenemos que sumar los unos al LB y tenemos el LB en X13=1 que ser LB=34 El hecho de que tengamos el mismo numero es casualidad ya que son motivo diferentes con clculos diferentes De nuevo buscamos las penalizaciones en filas y columnas de la nueva matriz:

Algoritmo de Little

En la nueva matriz vemos que el que tiene la mxima penalizacin es en 5-1 con 3 de penalizacin. As que las ramas a realizar se empieza con X51=0 y X51=1, de preferencia con el nodo de la derecha

En X51=0 sabemos que no tenemos una asignacin y que ya hemos calculado que la penalizacin a incrementar va ser de 3 al anterior LB dando un nuevo LB con el total de 37. Para calcular el otro nodo X51=1 eliminamos temporalmente la fila 5 y la columna uno creamo la nueva matriz:

Algoritmo de Little

Cabe ver que tenemos de momento una solucin de 1-3 y 5-1 dejando la cadena: 5-1-3, por lo tanto no podemos tener 3-5 ya que seria un subtour por eso le ponemos un - en la matriz

Como vemos en cada fila y columna hay cero as que no es necesario ni sumar ni restar el mnimo de la fila ni el mnimo de la columna. De esta manera el nuevo LB se queda con 34 Una vez comenzamos con el calculo de penalizacin a la nueva matriz

Algoritmo de Little

Se puede seleccionar 3-4 o 4-2 ya que tiene la misma cantidad de penalizacin. Empecemos a hacer las ramas con 3-4 X34=0, X34=1 Ya vimos para X34=0 hay una penalizacin de 2 as que el nuevo LB se le agrega el 2 con el LB anterior Ahora en X34=1 se elimina la fila 3 y la columna 4 de la matriz crean una nueva matriz

Algoritmo de Little

Como tenemos el 3-4 no debe haber en la matriz 4-3, en este caso no existe asi que volvemos con lo anteriores. La solucion de momento va de 5-1-3-4, por lo que no debe de existe 4-5 ya que crea un subtour. Entonces se pone un - en la matriz en 4-5

Ahora vemos que en cada fila y en cada columna tenemos ceros que pueden ser asignados as que el LB siguiente no incrementa . Se observa que ya solo existen 2 ciudades mas por visitar por lo que podemos tratar de conseguir una solucin factible con esto. Se asigna los ceros

Algoritmo de Little

Nos da una solucin factible con X25=1 y X42=1 Y tenemos la solucin factible de: X13= X51= X34= X25= X42. ordenado correctamente seria X13= X34= X42= X25= X51. lo anterior da la solucin de 1-3-4-2-5-1 con un Z=8+8+5+6+7= 34 Al tener la solucin de 34, con las otras ramas se detiene en caso de que sean igual o mayo a 34 que hemos obtenido, ya que nos dara soluciones mayores , La solucin factible se convierte en el UB

Mtodos heursticos el Vecino mas cercano.


Digamos que la persona empieza en la ciudad 1 debemos ver cual es la ciudad a ir mas cercana. Asumimos que el vecino mas cercano empezando en la ciudad 1 seria la ciudad 5 1-5, de 5 el vecino mas cercano es 2 o 4 puede ser cualquiera para este ejemplo digamos que va a 2 entonces tenemos que 1-5-2. De 2 el vecino mas cercano es 4 , por lo que tenemos ahora 1-5-2-4 De 4 el vecino mas cercano es 2 pero como de 2 venimos hara un subtour as que pasamos al siguiente valor , de nuevo hara de 4-5 pero 5 ya existe y de nuevo hara un subtour, se pasa al siguiente valor, que es 3, esto que da as: 1-5-2-4-3 De 3 solo queda regresar ala ciudad original y esto queda as : 1-5-2-4-3-1

el Vecino mas cercano.


El valor de Z=7 +6+5+8+8= 34. Ahora empecemos en la ciudad 2 a buscar el vecino mas cercano. De 2 a 4, de 4 vamos a 5, de 5 vamos a 1, de 1 vamos 3, de 3 vamos a 2 esto queda as: 2-4-5-1-3-2. Z= 5+6+7+8+10 = 36. Vemos que partiendo de diferentes ciudades puede dar diferentes soluciones. Entonces seguimos sacando el vecino mas cercano empezando con las siguientes ciudades que falten, 3, 4, 5 y de esos escoger el resultado mas optimo. 3-1-5-2-4-3. Z=8+7+6+5+8=34 4-2-5-1-3-4. Z =5+6+7+8+8=34 5-2-4-3-1-5 . Z= 6+5+8+8+7=34

el Vecino mas cercano.


De las soluciones nos damos cuanta que 4 dan 34 y solo uno da 36. Tambin uno puede observar que las 4 son lo mismo solo que empezando de diferente forma, es decir que las 4 son las mima solucin. Como estamos usando el mismo ejemplo sabemos que este resultado es el mas optimo pero que pasara si no hubiramos resulto las anteriores solo tendramos el 34 pero no se puede decir que es el mas optimo.

Decimos que cada solucin es una solucin factible , y que proporcionan un UB para la solucin mas optima. Agregamos nuevas notaciones como Lo (link optimal) y Lh (link hueristic solution) Esto da una notacin como Lh Lo Lh=34 entonces para saber si Lh es optipo podemos hacer Lh/Lo (1 + log 2 n)/2

El segundo algoritmo usamos los mismo que en algoritmo de eastman solo que ignoramos las ramas de las izquierda solo yendo a la derecha en el momento en que hayamos una solucin factible se termina el algoritmo

Twice around the tree


Primero veremos la teora de el Minimun Spanning Tree (rbol de expansin mnima {AEM}). Conseguiremos el AEM con la matriz que hemos estado manejando. La rama mas pequea es de 2-4 con un valor de 5. Siguiendo el algoritmo nos dice que pongamos la solucin de momento (SM) y los nodos por seleccionar por separado: {2,4} y {1,3,5}. A partir de la SM vamos a seguir realizando las dems ramas buscando la distancia mnima

Twice around the tree


De la matriz vemos que de 2-5 es la mas corta de entre 2-4, actualizamos la SM {2,4,5}, {1,3}. De la SM actualizada vemos cual tiene la distancia mas corta entre los nodos faltantes. En este caso las mnima es de 5-1, actualizamos la SM {2,4,5,1}, {3} De la SM actualizada vemos cual tiene la distancia mas corta entre los nodos faltantes. En este caso las mnima es de 4-3 o 1-3, se puede seleccionar cualquiera de las dos. La distancia obtenida es LMST = 26 De que nos sirve si conocemos el Link optimo Lo al quitarle una de sus diagonales (LST)este debe ser igual o menor (LST Lo) siempre que Cij 0 lo que nos dice que la matriz no exista nmeros negativos.

Twice around the tree


Entonces la solucin obtenida debe de ser menor o igual a link del rbol expandido (LMST LST) , ya que la misma definicin lo dice es un rbol expansin mnima, y todo es menor o igual al link optimo (LMST LST Lo) Resumido (LMST Lo) y esto es un LB de Lo. Ahora lo siguiente es duplicar las diagonales para la creacin TAT. Se escribe el rbol en una forma que explique los caminos: empezando de 1 1-5-2-4-3 y se marca las diagonales y nos regresamos y marcamos la diagonales recorridas. 1-5-2-4-3 -4-2-5-1. A esto se le conoce como el link del rbol de expansin mnima al doble Le, el arbol ahora lo denominamos como un grafo de Eulerian, por lo tanto Le=1-5-2-4-3 -4-2-5-1 = 52. Lo que sigues es ahora crear las soluciones factibles de Le : 1-5-2-4-3-1 L=34. 1-5-4-3-2-1 L=41 1-2-4-3-5-1 L= 39 etc. 1-4-3-2-5-1 L= 40 1-3-4-2-5-1 L= 34

Twice around the tree

Y se escoge la mejor opcin. Para el ejemplo tenemos 1-5-2-43-1 L=34. sabemos cual es la solucin optima por las anteriores ejemplos, pero si no lo conociramos no podramos decir que la solucin es optima es solo la LH. Como definimos el rendimiento de del TAT? hemos dicho que LMST Lo Le 2LMST L H Le LH 2LMST L H 2 Lo LH / Lo 2.