2. Los problemas que deben satisfacer un determinado tipo de restricciones son
problemas completos, donde el orden de los elementos de la solución no
importa. Estos problemas consisten en un conjunto (o lista) de variables a la
que a cada una se le debe asignar un valor sujeto a las restricciones del
problema.
Enfoques
Programación
Dinámica
Transforma un problema de optimización
complejo en una secuencia problemas simples.
Suele empezar por el final y es una técnica descendente.
Puede calcular una amplia gama de problemas.
Se basa en la recursión, y en el principio de optimalidad.
Creado por Richard Bellman.
3. La programación hacia
adelante empieza el programa tan
pronto como se conocen las
necesidades: Los trabajos se
realizan bajo pedido del cliente. El
programa puede cumplirse incluso
si ello significa no cumplir la fecha
de entrega. A menudo provoca una
acumulación de inventario de
trabajo en curso.
Método o Enfoque de Ir Hacia
Adelante
Tiene en cuenta el tiempo de las operaciones.
Bases del corto plazo: semanal, diaria o por hora.
Tipos:
B E
Programación hacia adelante
Hoy
Fecha de
entrega
B E
Programación hacia atrás
Fecha de
entrega Hoy
4. Método o Enfoque de Ir
Hacia Atrás
La idea de trabajar hacia atrás se introduce mediante la
resolución de acertijos conocidos, luego se muestra cómo la
programación dinámica es útil para solucionar redes, inventarios y
problemas de asignación de recursos.
Tengo una taza de 9 onzas y otra de 4 onzas. Mi madre me pidió traer a
casa exactamente 6 onzas de leche. ¿Cómo puedo cumplir lo pedido?
(tazas de leche)Ejemplo:
5. MOVIMIENTOS EN EL PROBLEMA DE LAS TAZAS Y LA LECHE
______________________________________________
Onzas en la taza onzas en la taza
De 9 onzas de 4 onzas
______________________________________________
9 0
6 4
9 1
0 1
1 0
1 4
5 0
5 4
9 0
0 0
Solución:
Al empezar cerca del final del problema, me doy cuenta
sagazmente de que el problema se puede resolver si soy
capaz de poner de alguna manera una onza de leche en
la tasa de 4 onzas.
Luego lleno la tasa de 9 onzas y vierto 3 onzas de la
leche de la tasa de 9 onzas en la taza parcialmente
llena de 4 onzas. En este momento me quedo con 6
onzas de leche.
6. El problema de las N reinas consiste en situar N reinas en un tablero de
ajedrez de NxN sin que se amenacen entre ellas. Una reina amenaza a otra si está
en la misma fila, columna o diagonal.
El problema de las N Reinas
Historia
El problema fue originalmente propuesto en 1848 por el ajedrecista Max Bezzel, y durante los
años, muchos matemáticos, incluyendo a Gauss y a Georg Cantor, han trabajado en este
problema y lo han generalizado a n-reinas. Las primeras soluciones fueron ofrecidas por Franz
Nauck en 1850. Nauck también se abocó a las n-reinas (en un tablero de nxn de tamaño
arbitrario). En 1874, S. Günther propuso un método para hallar las soluciones usando
determinantes, y J.W.L. Glaisher redefinió su aproximación.
Edsger Dijkstra usó este problema en 1972 para ilustrar el poder de la llamada programación
estructurada. Él publicó una descripción altamente detallada del desarrollo del algoritmo de
backtracking, "depth-first".
7. Soluciones al problema de las ocho reinas
Es un problema de ajedrez que consiste en
colocar 8 reinas en un tablero de 8x8 sin que se
puedan matar entre ellas. El problema se suele
utilizar mucho como ejemplo de problema
computacionalmente costoso de resolver
mediante un esquema de programación llamado
backtracking, aunque usando algoritmos de
inteligencia artificial se puede alcanzar
rápidamente una de las soluciones.