Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tipos de Programacion
Tipos de Programacion
Clave: Memorizacin
Almacenar las soluciones de los subproblemas en alguna estructura de datos
para reutilizarlas posteriormente. De esa forma, se consigue un algoritmo ms
eficiente que la fuerza bruta, que resuelve el mismo subproblema una y otra
vez.
Memorizacin
Para evitar calcular lo mismo varias veces:
Cuando se calcula una solucin, sta se almacena.
Antes de realizar una llamada recursiva para un subproblema X, se
comprueba si la solucin ha sido obtenida previamente:
Si no ha sido obtenida, se hace la llamada recursiva y, antes de
devolver la solucin, sta se almacena.
Si ya ha sido previamente calculada, se recupera la solucin
directamente (no hace falta calcularla).
Usualmente, se utiliza una matriz que se rellena conforme las soluciones
a los subproblemas son calculados (espacio vs. tiempo).
Ejemplo:
Un caza fortunas de Missouri decide irse al oeste a unirse a la fiebre del oro en
California. Tiene que hacer el viaje en diligencia a travs de territorios sin ley
donde existan serios peligros de ser atacados por merodeadores. Aun cuando
su punto de partida y destino eran fijos, tena muchas opciones en cuanto a
que estados deba elegir como puntos intermedios. Se desea estimar la ruta
ms segura, como el costo de la pliza para cualquier jornada de la diligencia
est basada en una evaluacin de seguridad del recorrido, la ruta ms segura
debe ser aquella que tenga el costo total ms barato. Cul es la ruta que
minimiza el costo total de la pliza?
Hacia atrs
Empezamos por la etapa k=4
Estados
x4
Distancias acumulada
H
I
Decisin optima
3
4
u4
J
J
Etapa k=3
Estados
E
F
G
x3
Estado
x4
1+3=4
6+3=9
3+3=6
4+4=8
3+4=7
3+4=7
Distancias
acumulada
Decisin
f 3
optima
4
7
6
H
I
H
u3
Etapas k=2
Estado
Estados
x3
x2
B
C
D
7+4=11
3+4=7
4+4=8
4+7=11
2+7=9
1+7=8
6+6=12
4+6=10
5+6=11
Distancias
acumulada
Decisin
optima
f 2
u2
11
7
8
E,F
E
E,F
Distancias
acumulada
Decisin
optima
f 1
u1
11
C,D
Etapa k=1
Estado
Estados
x2
x1
2+11=1
2
4+7=11
3+8=11
Rutas optimas:
ACEHJ
ADEHJ
ADFIJ
4+3+1+3=11
3+4+1+3=11
3+1+3+4=11