Está en la página 1de 39

Exposición de experto

Temas por desarrollarse

1 Ramificación y poda (BB)

2 La mochila 0-1

3 Asignación de tareas

4 El viajante de comercio (TSP)

5 Ciclos hamiltonianos

6 Síntesis

Exposición de Experto
Ramificación y poda (BB)

Exposición de Experto
Ramificación y poda (BB)

• Esta técnica se utiliza principalmente en problemas de optimización,


concretamente de minimización. Problemas de maximización pueden
ser fácilmente adaptados.
• Hay una variable global, que llamamos lim, que contiene el mínimo
valor que se tiene asegurado hasta el momento.
• Para cada nodo se calculan dos magnitudes: el costo, que llamamos c,
que es el costo de llegar hasta ese nodo, y el tope, que llamamos u,
que es el mínimo que tenemos asegurado en ese punto (podría
mejorar, pero no empeorar).
• Si u < lim, se actualiza lim con el nuevo mínimo asegurado.

• Si c > lim, se desecha el nodo, ya que no vale la pena seguir explorando


esa rama.

Exposición de Experto
Ramificación y poda (BB) - Estrategia

lim = x u

c < lim
u > lim

u (mínima solución que se puede lograr desde un nodo)


c (mejor solución que se puede lograr desde un nodo)

Exposición de Experto
Tipos de Ramificación y Poda

Nodos pendientes
en una pila LIFO-BB

Se elige siempre Tipos de


el nodo de
menor costo
ramificación y Nodos pendientes
en una cola
poda

LC-BB FIFO-BB

Exposición de Experto
Ramificación y Poda: FIFO-BB
2 10
1
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31331
4
5
6
7
8
911
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
511
6
7
8
9
10731
8
9
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
11
912
10
11
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
12
11
13
12
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
13
14
13
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1516
171731
18
19
20
21
22
23
24
25
26
27
28
29
30
31 18 31
19
20
21
22
23
24
25
26
27
28
29
30 19 31
20
21
22
23
24
25
26
27
28
29
30 21 31
22
23
24
25
26
27
28
29
30 23 31
24
25
26
27
28
29
30 25 31
26
27
28
29
30 27 31
28
29
30 29 31
30

1

√ √
2 3

√ √ √ √
4 5 6 7

√ √ √ √ √ √ √ √
8 9 10 11 12 13 14 15

√ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Exposición de Experto
Ramificación y Poda: LIFO-BB


1

9
11
15
23
7
8 √ √
10
13
14
17
21
22
25
29
5
6 2 3

31
12
16
19
20
24
27
28
3
4
18
26
30
1
2
√ √ √ √
18 19 4 5

√ √ √ √ √ √ √ √
26 27 20 21 12 13 6 7

√ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
30 31 28 29 24 25 22 23 16 17 14 15 10 11 8 9

Exposición de Experto
Ramificación y Poda de menor costo (LC-BB)
lim = 24 20 9 6 Penalidad 4 11 7 2
Plazo 1 3 2 1
(2n) 1 Duración 1 2 1 1

t1 t1 u = Σ penalidades, excepto las ya


u = 20 u = 24 incluidas en la solución.
2 3
c=0 c=4 c= Σ penalidades no incluidas en
la solución hasta ese punto.
t2 t2 t2 t2

u=9 u = 20 u = 13 u = 24
4 5 8 9
c=0 c = 11 c=4 c = 15

t3 t3 t3 t3

u=9 u=6 u = 13
6 7
c=7 c=4 9 10
c = 11
t4 t4

u=6
11 12
c=6
Exposición de Experto
La mochila 0-1

Exposición de Experto
Souvenir: la mochila 0-1

Recordemos las reglas de juego para el problema de la mochila 0-1:

• Se tiene una mochila con una capacidad máxima m.

• Hay n objetos, cada uno con un peso pi y un valor vi.

• Los objetos no pueden fraccionarse. Se colocan enteros o no se dejan.

• Se trata de maximizar el valor obtenido sin exceder la capacidad


máxima de la mochila.

• Aquí se trata de un problema de maximización, que puede reducirse


fácilmente a uno de minimización.

Exposición de Experto
La mochila 0-1. Estrategia

• Los objetos se ordenan por valor sobre peso, como era el caso en el
algoritmo greedy.

• Para cada nodo calculamos dos magnitudes, u y c.

• La magnitud u representa el mínimo valor que podemos obtener en


una rama. La magnitud c es el costo.

• Ambas se calculan como la suma de los valores que podemos incluir en


esa rama según el orden de los objetos. En el caso de c, se calcula con
fraccionamiento.

• Hay una variable lim que se actualiza con u; si el costo c supera a lim,
se desecha esa rama.

Exposición de Experto
Ejemplo: la mochila 0-1 Valor 10 10 12 18
lim = 0 -32 -38 Peso 2 4 6 9
m = 15
1
o1 o1 u = Σ valores que pueden incluirse.

u = -32 u = -22
c= Σ valores que pueden incluirse
2 2 (con fracciones).
c = -38 c = -32
o2 o2

u = -32 u = -22
(2n)
4 5
c = -38 c = -36
o3 o3
u = -32 u = -38
6 7
c = -38 c = -38
o4 o4 o4 o4

u = -32 u = -38 u = -20


8 9 10
c = -38
11
c = -32 c = -20

Exposición de Experto
Asignación de tareas

Exposición de Experto
Un ejemplo: asignación de tareas

Las reglas de juego son las siguientes:

• Hay m personas para m tareas. Cualquiera de ellas podría realizar


cualquiera de las tareas.

• Cada asignación de tareas implica un costo, dependiendo de la tarea y


de la persona a quien se la asignó.

• Es necesario que se realicen todas las tareas, que cada tarea esté
asignada a una persona y que cada persona realice sólo una tarea.

• Se quiere minimizar el costo total de las asignaciones de tareas.

Exposición de Experto
Asignación de tareas. Estrategia

• Para resolver este problema exploraremos un árbol en el que cada nodo


corresponde a una asignación de una tarea a una persona.

• En cada nodo se calcula un costo. El costo se calcula como la suma de los


costos actuales más los mínimos valores de las tareas no asignadas.

• Un límite superior se puede obtener con una asignación arbitraria. Una


solución óptima no puede ser mayor. Si una solución es menor que el
límite superior, lo reemplaza. Este límite será la variable lim.

• Este proceso continúa: si se asigna la tarea 1 a la persona a, entonces se


suman los mínimos valores de la columna para cada una de las restantes
tareas, excluyendo la fila de a.

Exposición de Experto
Ejemplo: asignación de tareas
a
lim = 73 64 61

c = 60 c = 58 c = 65 c = 78
a1 a2 a3 a4

c = 61 c = 59 1 2 3 4
a 11 12 18 40
b2 b3 b4 b1 b3 b4 b 14 15 13 22
c 11 17 19 23
c = 68 c = 66 c = 68 c = 64
d 17 14 20 28

c= Σ mínimos costos de tareas


c2 c4 c1 c4 no asignadas aún.

c = 69 c = 61 c = 64 c = 65

Exposición de Experto
El problema del viajante
comercial (TSP)

Exposición de Experto
El problema del viajante comercial

• El problema se plantea así: dada una lista de ciudades y las distancias


entre cada par de ellas, ¿cuál es el camino más corto que visita
exactamente una vez cada ciudad y retorna a la ciudad original?

• En la literatura, este problema se conoce como TSP. Esto viene de la


denominación inglesa de Travelling Salesman Problem.

• El problema es NP-difícil, por lo que es altamente improbable que


exista un algoritmo eficiente para resolverlo.

• Un algoritmo de fuerza bruta está en  (n!).

• Existe un algoritmo de programación dinámica, el llamado algoritmo


de Bellman-Held-Karp, que resuelve el problema en  (n22n).

Exposición de Experto
El problema del viajante. Estrategia

S V\S
b

c = aSb + mín (V\S)+ mín (b, V\S)+ mín (b, V\S)

MST de (V\S)

Exposición de Experto
Ejemplo: el problema del viajante (TSP)
a 4
4 1
1 5 3 b
2
f 1 5

2 5
2 c

3
e
3
3 d

Buscamos el ciclo de mínimo costo dentro de {a, b, c, d, e, f}.

Exposición de Experto
Ejemplo de cálculo de costo
a 4
4 1
1 5 3 b
2
f 1 5

2 5
2 c

3
e
3
3 d

c (a–b) = (a–b) + mín (b–V\S) + MST (V\S) + mín (a–V\S)


4 1 7 1

Exposición de Experto
13
El problema del viajante. Desarrollo
a lim = 21 13 11

13 b 9 c 13 d 11 e 12 f

aa
13 10 13 12
b d e f 4447111
7 1
11
2422424
333 11 3 11 3
ff 51 1 bb
3
3
3 5 5552 22 111
10 16 15 22
b e f 22
22 22 4 52222 22 111 1111 33
22 553
3 5 111
4
2
5 225 1
4 3
ee cc
13 11 33
24
5
33 1 33333
e f 3333 3
333
33
dd

Exposición de Experto
El viajante en un grafo dirigido

4 1 13

12 8

5 8 12 10

6
5 2

12 8
4

7 12
3 4

3 9
4
4 3

Exposición de Experto
Estrategia del cálculo del costo.

k+1
n

Exposición de Experto
La reducción de la matriz de costos

Mínimo costo posible =


∞ 10 8 12 5 𝟓 ∞ 5 3 7 0
(5+6+3+4+3)+(1+3) = 25
13 ∞ 12 8 6 6 7 ∞ 6 2 0
12 9 ∞ 6 3 3 9 6 ∞ 3 0
8 4 8 ∞ 7 4 4 0 4 ∞ 3
4 7 12 3 ∞ 3 1 4 8 0 ∞
𝟏 𝟎 𝟑 0 0 ∞ 𝟓 𝟎 𝟕 𝟎
𝟔 ∞ 𝟑 𝟐 0
𝟖 𝟔 ∞ 𝟑 0
𝟑 0 𝟏 ∞ 3
Filas Columnas
𝟎 𝟒 𝟓 0 ∞

Exposición de Experto
Ejemplo de un cálculo de costos

∞ 𝟓 𝟎 𝟕 𝟎 ∞ ∞ ∞ ∞ ∞
c = 25
𝟔 ∞ 𝟑 𝟐 0 ∞
𝟔 ∞ 𝟑 𝟐 0 0
1
𝟖 𝟔 ∞ 𝟑 0 𝟖 ∞
𝟔 ∞ 𝟑 0 0
𝟑 0 𝟏 ∞ 3 𝟐 ∞
𝟑 𝟎
0 𝟏 ∞ 32 1
2
𝟎 𝟒 𝟓 0 ∞ 𝟎 ∞
𝟒 𝟓 0 ∞ 0
c = 25 + 1 + 5 = 31
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
c = 31 + 2 + 3 = 36
∞ ∞ 𝟑 𝟐 0 ∞ ∞ ∞ ∞ ∞
3 𝟖 ∞ ∞ 𝟑 0 ∞
𝟖 ∞ ∞ 𝟑 0 0
𝟐 ∞ 𝟎 ∞ 2 𝟐 ∞
𝟎 ∞ ∞ 02 2
𝟎 ∞ 𝟓 0 ∞ 𝟎 ∞ ∞ 0 ∞ 0
El problema del viajante. Una reflexión.

Fuente: https://xkcd.com/399/

Exposición de Experto
Ciclos hamiltonianos

Exposición de Experto
Ciclos hamiltonianos

• En teoría de grafos, un camino hamiltoniano es un camino que pasa


exactamente una vez por cada vértice.

• Un ciclo hamiltoniano es un camino hamiltoniano que es un ciclo.

• Dado un grafo, la determinación de la existencia de un ciclo o un


camino Hamiltoniano es un problema NP-completo.

• La versión original se refería al problema de encontrar un camino


hamiltoniano en un dodecaedro. La solución puede verse en el
siguiente slide.

• La idea tiene antecedentes remotos. Por ejemplo, la excursión de un


caballo de ajedrez alrededor de un tablero visitando todas las casillas
exactamente una vez se conoce desde el siglo IX.

Exposición de Experto
Un ciclo hamiltoniano sobre un dodecaedro

Exposición de Experto
Un ciclo hamiltoniano sobre un dodecaedro

Exposición de Experto
Ciclos hamiltonianos y viajantes

• El problema de encontrar ciclos hamiltonianos puede reducirse al


problema del viajante de comercio.

• Dado un grafo G=(V, E) construimos un grafo G’=(V, E’) con los mismos
vértices pero completando las aristas para hacerlo fuertemente
conexo.

• Se agregan además pesos a las aristas de G’: 1 si la arista ya existía en


G y 2 si es una nueva arista.

• Si existe un camino para el viajante en G’ de costo |V|, entonces existe


un ciclo hamiltoniano en G.

• Esto se debe a que un ciclo de costo |V| implica que solo usamos
aristas de costo 1 y por lo tanto que ya existían en G.

Exposición de Experto
Ciclos hamiltonianos y viajantes

B
1 1
1 1
A
2
2 1
1 2
F C
2 1 2

E
1
1 1
D

Exposición de Experto
Ciclos hamiltonianos y viajantes
A

B C D E F

C D E F B C D F B C D E

D E F C D E B C F B C D C D E B C D

E F
Detalles a cargo del estudiante

F
Exposición de Experto
Síntesis

Exposición de Experto
Síntesis

• Se explora un grafo acíclico o directamente un árbol.

• Se calcula un tope (bound) a la mejor solución que podemos encontrar


en esa rama para cada nodo.

• Si ese tope está por debajo de la mejor solución que hemos


encontrado hasta ese momento, no vale la pena seguir por esa rama.

• Los topes se usan, también, para elegir la rama abiertas más


promisoria.

• Si se encuentra una solución mejor que el tope, se lo actualiza con la


nueva solución.

Exposición de Experto
Bibliografía

BRASSARD, Gilles. Fundamentals of algorithmics.


Upper Saddle River: Prentice Hall, 1996.
ISBN: 9780133350685

Exposición de Experto
¡Muchas gracias!

Exposición de Experto

También podría gustarte