a
b
c
d
x
y
z
AC
i
Randomize
Acerca de la calculadora de programación dinámica
Resuelva problemas de asignación de inversiones usando programación dinámica en línea con la tabla F*/K* y solución detallada paso a paso. con descripción completa y detallada paso a paso de las soluciones, que resuelve problemas de programación lineal de hasta 20×20 con coeficientes de tipo: números decimales y fracciones.
Para iniciar el cálculo, primero hay que introducir las dimensiones del problema en los campos de entrada en la parte superior de la pantalla y elegir la operación deseada en el menú lateral.
Un poco más abajo encontrará una ventana de entrada donde se deben ingresar los coeficientes, las restricciones y los valores del lado derecho usando el teclado. Aquí también se encuentra el panel de control de entrada, que simplifica el trabajo con los problemas de PL y contiene los siguientes elementos de control:
- El primer elemento permite expandir la ventana de entrada. Esto puede ser especialmente útil cuando la tabla no cabe completamente en la pantalla. Si la tabla aún no es totalmente visible después de expandir la ventana, puede cambiar la escala con los botones + / -;
- El segundo elemento copia los datos de entrada del problema actual al búfer de memoria. Esto puede ser útil cuando se resuelve con frecuencia el mismo problema de PL o se necesita transferir datos entre operaciones;
- Y el último elemento pega los datos de entrada copiados anteriormente, lo que permite restaurar los datos del problema en pocos clics en lugar de volver a ingresarlos manualmente;
Y más abajo encontrará una barra de herramientas que permite personalizar la calculadora y facilitar su uso. Está dividida visualmente en tres partes, cada una de las cuales se encarga de la siguiente funcionalidad:
- La primera parte permite seleccionar el formato numérico utilizado al mostrar el resultado de la solución. También puede desactivar los comentarios paso a paso si ya conoce el método y solo necesita verificar sus propios cálculos, u ocultar la solución paso a paso por completo si solo necesita la respuesta final;
- La segunda parte contiene botones que permiten modificar las dimensiones de la tabla de entrada, borrar coeficientes individuales o toda la entrada, y el botón principal con el signo igual que lleva a la pantalla de solución. Todos estos botones tienen atajos de teclado. Pase el cursor sobre un botón para ver la tecla correspondiente en un tooltip. También puede usar las teclas de flecha para mover el cursor entre los campos de entrada;
- Y la última parte permite elegir el número de dígitos después del punto decimal para redondear resultados no enteros. Una vista previa en tiempo real muestra cómo aparecerán los valores redondeados;
¿Qué es la programación dinámica?
La programación dinámica es una técnica de optimización que resuelve problemas complejos descomponiéndolos en subproblemas más simples y superpuestos, almacenando los resultados intermedios para evitar cálculos redundantes. En el problema de asignación de inversiones aquí soportado, el objetivo es distribuir un presupuesto fijo entre varias empresas para maximizar el beneficio total, aprovechando el principio de subestructura óptima: la asignación óptima para las etapas 1 a k puede construirse a partir de la asignación óptima para las etapas 1 a k-1.
¿Cómo resolver un problema de asignación de inversiones con programación dinámica?
Configure la tabla F*/K* etapa por etapa, donde cada celda F*(q, x) registra el beneficio máximo alcanzable invirtiendo x unidades en las primeras q empresas. Comience desde la última empresa y trabaje hacia atrás: para cada etapa q y cada nivel de inversión total posible x, enumere todas las distribuciones válidas entre la empresa q y las etapas restantes, y registre la mejor. El beneficio total óptimo se lee en F*(n, presupuesto_total), y la asignación óptima se recupera rastreando las decisiones K* de vuelta en la tabla.
Ejemplo de resolución de un problema de asignación de inversiones con programación dinámica
| x3 | x3 = 0 | x3 = 1 | x3 = 2 | x3 = 3 | x3 = 4 | F*3 | K*3 | F*4 |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | ||||
| 1 | 0 | 3 | 3 | 1 | 0 | |||
| 2 | 0 | 3 | 4 | 4 | 2 | 0 | ||
| 3 | 0 | 3 | 4 | 7 | 7 | 3 | 0 | |
| 4 | 0 | 3 | 4 | 7 | 11 | 11 | 4 | 0 |
| x2 | x2 = 0 | x2 = 1 | x2 = 2 | x2 = 3 | x2 = 4 | F*2 | K*2 | F*3 |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | ||||
| 1 | 3 | 6 | 6 | 1 | 3 | |||
| 2 | 4 | 9 | 9 | 9 | 1 | 4 | ||
| 3 | 7 | 10 | 12 | 11 | 12 | 2 | 7 | |
| 4 | 11 | 13 | 13 | 14 | 13 | 14 | 3 | 11 |
| x1 | x1 = 0 | x1 = 1 | x1 = 2 | x1 = 3 | x1 = 4 | F*1 | K*1 | F*2 |
|---|---|---|---|---|---|---|---|---|
| 4 | 14 | 20 | 19 | 17 | 12 | 20 | 1 | 0 |
| 1 | 6 | |||||||
| 2 | 9 | |||||||
| 3 | 12 | |||||||
| 4 | 14 |
Preguntas frecuentes
¿Qué problema resuelve esta calculadora de programación dinámica?
Encuentra la asignación óptima de un recurso limitado, como el capital de inversión, entre varias empresas para maximizar el rendimiento total, utilizando programación dinámica por etapas.
¿Cómo encuentra el óptimo la programación dinámica?
Divide la asignación en etapas, una empresa cada vez, y aplica el principio de optimalidad de Bellman: calcula el mejor rendimiento para cada nivel de presupuesto restante y combina los resultados de las etapas en un óptimo global.
¿Por qué la primera fila representa inversión cero?
La fila 0 es la línea base de no asignar nada, que siempre rinde cero. Mantenerla explícita permite que la recurrencia compare «invertir aquí» frente a «no invertir aquí» en cada etapa.
¿Cómo interpreto la distribución óptima?
La tabla final muestra, para el presupuesto completo, cuánto asignar a cada empresa y el rendimiento total resultante: la asignación que ninguna otra distribución puede superar.