Si decidimos qué objetos llevar, qué máquinas encender o cuántas unidades fabricar, una fracción puede no tener sentido. La integridad cambia el conjunto de planes posibles. Empezaremos con tres objetos que podemos comprobar a mano y después veremos cómo una tabla o un árbol evita repetir muchas decisiones sin perder la garantía del resultado.
Si necesitas repasar:
1. Entero y binario son dominios de decisión, no maneras de redondear al final
Una variable entera puede contar unidades: x∈Z y x≥0. Una binaria vale cero o uno y suele representar no elegir o elegir un objeto concreto. No es una probabilidad en este modelo determinista. Una restricción y un objetivo se comprueban usando ese significado desde el inicio.
Un modelo mixto combina decisiones continuas y enteras. La cantidad de líquido puede ser divisible mientras encender una instalación es sí/no. Retirar integridad da una relajación, que puede servir como cota, pero no autoriza a interpretar sus fracciones como decisiones del problema original.
Cada objeto necesita su propia elección
Tres objetos A, B, C; cada uno se puede llevar como máximo una vez.
Variables
x_A, x_B, x_C∈{0,1}; uno significa llevar ese objeto completo.
Leer un plan
(1;0;1) selecciona A y C. (0;0;0) no selecciona ninguno.
Leer una fracción
x_C=1/4 no significa haber seleccionado C en el modelo binario; pertenece a una tarea fraccionaria distinta.
El dominio forma parte de la factibilidad.
Si hubiera varias copias de un tipo, habría que modelarlas o permitir un contador entero con sus límites.
Una parte del modelo puede seguir siendo continua
Producir x≥0 cuesta 2x; encender cuesta diez. Capacidad x≤6z, z∈{0,1}; se exige x≥4.
Elegir estado
z=0 obligaría x=0, incompatible con producir al menos cuatro.
Debe ser z=1.Minimizar
Con coste 10z+2x, el mínimo es x=4, z=1 y vale dieciocho.Relajar
Si permitiéramos 0≤z≤1, x=4, z=2/3 sería factible y costaría 44/3, menor, pero no es un encendido binario.
La variable de producción puede ser continua y el interruptor entero.
El valor menor de la relajación no es una decisión física válida de este modelo.
2. En la mochila se compara valor después de comprobar el peso
Para objetos de pesos positivos wᵢ, valores no negativos vᵢ y capacidad W≥0, buscamos maximizar Σvᵢxᵢ con Σwᵢxᵢ≤W y xᵢ∈{0,1}. El peso consume capacidad y el valor es lo que queremos aumentar. El plan vacío está permitido salvo que añadamos otra condición.
El mayor valor individual no siempre produce la mejor combinación. Tampoco ordenar por valor/peso garantiza la mochila binaria: puede dejar un hueco que impida añadir otro objeto. Esa regla sí resuelve la versión clásica fraccionaria, donde podemos dividir objetos; intercambiar peso de menor proporción por peso disponible de mayor proporción no empeora su valor.
Comparar lo que cabe con lo que interesa llevar
Capacidad seis. Objetos (peso; valor): A=(2;3), B=(3;4), C=(4;5).
Solos
Los tres caben individualmente; el mejor valor individual es cinco con C.
Parejas
A+B pesa cinco y vale siete; A+C pesa seis y vale ocho; B+C pesa siete y no cabe.
Tres a la vez
Pesan nueve, así tampoco caben. Las comparaciones cubren todas las opciones, incluida la vacía de valor cero.
La mejor selección es A+C, con valor ocho.
Ningún valor alto compensa exceder la capacidad de seis.
La mejor proporción puede llevar a una combinación peor
Mismos objetos; aplicamos selección entera por orden valor/peso.
Proporciones
A tiene 3/2; B, 4/3; C, 5/4. El orden es A, B, C.
Aplicar la regla
Tomamos A y B: peso cinco, valor siete. Queda un kilo, insuficiente para C completo.
Contrastar
A+C era factible y valía ocho. La regla produjo un candidato útil, pero no el óptimo binario.
Una heurística necesita un control adicional para certificar optimalidad.
La comparación se hace sin dividir el último objeto: ese es el punto donde cambia la versión del problema.
3. La relajación da una cota; un plan entero da la otra
En un máximo, el óptimo relajado es una cota superior y un plan entero factible da una inferior. En un mínimo se invierten las direcciones. Si una solución óptima relajada ya es entera, también resuelve el problema entero.
Para certificar una cota de mochila podemos usar un precio λ≥0 por unidad de peso: Σvᵢxᵢ≤λW+Σmax(0, vᵢ−λwᵢ) para 0≤xᵢ≤1. Se obtiene separando λΣwᵢxᵢ y acotando cada término restante según su signo. Esto produce una desigualdad para todos los planes relajados, no solo una predicción optimista.
Una selección fraccionaria y una cota coinciden
Mochila de seis con A=(2;3), B=(3;4), C=(4;5).
Plan relajado
Tomamos A y B completos y un cuarto de C.
Peso 2+3+1=6 y valor 3+4+5/4=33/4.Precio de peso
Con λ=5/4, λW=15/2; los extras positivos de A y B son 1/2 y 1/4, y el de C cero.
Cota global
15/2+1/2+1/4=33/4.Como el plan lo alcanza, ese es el óptimo relajado; el entero sigue siendo como máximo esa cota.
La cota relajada es 8,25; el plan entero A+C alcanza ocho.
Un cuarto de C no se entrega como solución binaria.
En minimización, la relajación queda por debajo
Minimizar x entero con x≥7/3.
Continuo
Sin integridad, el mínimo es 7/3.
Enteros
El menor entero permitido es tres; alcanza valor tres.
Cotas
7/3 es una cota inferior del mínimo entero; la decisión tres da una superior. Como el objetivo entero debe ser entero, la cota inferior puede elevarse a tres.
El óptimo entero es tres y queda certificado.
No se mantienen las direcciones de las cotas de un problema de máximo al cambiar a mínimo.
4. Redondear variables no conserva automáticamente las restricciones
Una capacidad superior puede romperse al redondear hacia arriba. Una obligación mínima o una igualdad puede romperse al hacerlo hacia abajo. Incluso si el resultado es factible, otra combinación puede tener mejor objetivo. Un candidato redondeado se verifica desde cero contra el modelo original.
La distinción es entre redondear una cota válida con información de integridad y redondear una decisión coordenada a coordenada. Lo primero puede conservar un certificado; lo segundo es una heurística y no una prueba general.
El redondeo más cercano puede superar la capacidad
Maximizar x entero con 2x≤7, x≥0.
Relajación
El máximo continuo es x=3,5.Redondear hacia arriba
x=4 exigiría ocho unidades de recurso, más de siete.
Candidato válido
x=3 usa seis y es el mayor entero permitido.La cota x≤3,5 también permite certificar x≤3 por integridad.
La decisión cuatro es infactible; tres sí es óptima.
La verificación de capacidad es independiente de lo cerca que esté el redondeo del número fraccionario.
Una igualdad puede perderse en ambos sentidos de redondeo
Maximizar x+y sujeto a x+y=1 y x, y binarios.
Relajación
(1/2;1/2) es factible y óptimo continuo, pues todos los factibles tienen objetivo uno.
Dos fallos
Redondear ambos hacia abajo da suma cero; ambos hacia arriba da suma dos. Ninguno cumple la igualdad.
Planes enteros
(1;0) y (0;1) sí cumplen y alcanzan uno.
La decisión exige coordinar variables que comparten una condición.
Un punto fraccionario óptimo no determina por redondeo independiente qué alternativa entera escoger.
5. Enumerar demuestra el óptimo si la lista cubre todas las decisiones relevantes
Con n decisiones binarias independientes hay 2ⁿ combinaciones antes de filtrar restricciones: dos opciones en cada posición. Para n pequeño podemos comprobarlas todas, descartar las infactibles y comparar objetivos. Si añadimos condiciones como elegir exactamente dos, podemos enumerar directamente las selecciones que las cumplen.
Cada nueva variable binaria duplica la lista. De diez a veinte variables se pasa de 1024 a 1048576 combinaciones; la enumeración completa puede dejar de ser práctica. Esto no significa que toda familia combinatoria sea igual de difícil: estructura, representación y cotas pueden evitar gran parte del trabajo.
Una tabla completa cierra la mochila de tres objetos
Usamos los ocho subconjuntos de A, B, C de la mochila de seis.
Tabla de decisiones
Peso y valor se suman solo para los objetos elegidos.
Selección Peso Valor ¿Cabe? Ninguna 0 0 Sí A 2 3 Sí B 3 4 Sí C 4 5 Sí A+B 5 7 Sí A+C 6 8 Sí B+C 7 9 No A+B+C 9 12 No Filtrar
Descartamos las dos últimas filas por superar seis.
Comparar
Entre los seis planes factibles, ocho es el mayor valor y corresponde a A+C.
La tabla completa certifica el valor ocho.
Hay ocho filas porque 2³=8; no se ha olvidado el plan vacío.
Una condición de tamaño reduce la lista sin perder casos
Elegir exactamente dos de A, B, C, D, con valores 1,4,2,3, sin otros límites.
Lista sin repetición
Las parejas son AB, AC, AD, BC, BD, CD: seis casos.
Valores
Suman respectivamente 5,3,4,6,7,5.
Elegir
BD alcanza siete, el máximo de la lista. El orden BD o DB no crea una selección diferente.
La selección óptima es B y D.
No usamos permutaciones cuando la decisión solo es qué objetos se llevan.
6. La programación dinámica recuerda la información suficiente para continuar
Con pesos enteros positivos y capacidad entera W≥0, V(i, w) es el mayor valor usando solo los primeros i objetos y capacidad como máximo w.
Si el objeto i cabe, comparamos V(i−1, w) con vᵢ+V(i−1, w−wᵢ); si no cabe, solo queda la primera opción. Usar i−1 en ambos casos evita reutilizarlo.
La tabla tiene (n+1)(W+1) celdas y un número constante de opciones por celda, aparte del coste aritmético de los valores; se resume como O(nW) para W≥1. Es pseudopolinómica: W escrito en binario necesita solo unas log₂W cifras, mientras la tabla depende de W. Una tabla unidimensional puede ahorrar memoria, pero el orden de actualización debe conservar la versión 0/1.
Leer la tabla como decisiones, no como números aislados
A=(2;3), B=(3;4), C=(4;5), capacidad seis.
Capacidad por columnas
Cada fila permite un objeto más; cada entrada usa como máximo la capacidad indicada.
Objetos 0 1 2 3 4 5 6 Ninguno 0 0 0 0 0 0 0 A 0 0 3 3 3 3 3 A, B 0 0 3 4 4 7 7 A, B, C 0 0 3 4 5 7 8 Última comparación
En V(3,6), no tomar C da siete.
Tomarlo da cinco más V(2,2)=3, total ocho.Recuperar selección
La mejora procede de C y del plan A en la capacidad restante dos: A+C.
La tabla confirma ocho y explica cómo reconstruir el plan.
La capacidad es un máximo permitido: no se exige llenarla exactamente en cada celda.
Actualizar capacidades en orden creciente reutilizaría el mismo objeto
Solo A, peso dos y valor tres, capacidad cuatro; tabla unidimensional inicial cero.
Orden decreciente
Al calcular capacidad cuatro primero, la capacidad dos anterior vale cero: se obtiene tres. Después se calcula la capacidad dos, también tres.
Orden creciente
Si calculamos primero capacidad dos, queda tres. Al llegar a cuatro, sumar tres a ese valor recién cambiado daría seis.
Interpretar el fallo
Ese seis cuenta dos veces el único A, prohibido en mochila 0/1. El orden creciente corresponde a otra posibilidad de reutilización.
Para esta actualización 0/1 se recorren las capacidades de mayor a menor.
La tabla bidimensional original ya separaba explícitamente i de i−1.
7. Ramificar cubre todos los enteros; acotar permite cerrar ramas
En un nodo resolvemos una relajación. Si es infactible, el nodo no contiene planes enteros. Si su solución óptima ya es entera, aporta un candidato y resuelve ese nodo. Si xⱼ=t es fraccionario, dividimos entre xⱼ≤⌊t⌋ y xⱼ≥⌈t⌉: todo entero del nodo pertenece a una de las dos ramas.
En maximización, una relajación con cota superior U≤B no puede mejorar el valor B de un plan entero conocido, así se poda. B debe venir de un plan realmente factible y U de una cota válida. Una aproximación optimista sin control no autoriza eliminar soluciones posibles.
Dos ramas cierran la mochila sin recorrer todo el árbol
Mochila de seis; partimos del candidato A+B de valor siete.
Raíz
La relajación toma A, B y un cuarto de C, con U=33/4.Ramificamos por no tomar C o tomarlo entero.
Sin C
A+B es óptimo incluso relajado, de valor siete; no mejora el candidato y se poda.
Con C
Quedan dos kilos. A cabe entero y da valor total ocho; la relajación de esa rama ya es entera.
Cerrar
Las dos ramas cubrían todas las decisiones sobre C. El nuevo mejor valor ocho queda certificado.
No hizo falta conservar abierta una brecha fraccionaria en la raíz después de cerrar todos sus descendientes.
La rama con C sigue exigiendo que los otros objetos respeten sus límites de una copia.
Una variable entera general también se divide en dos regiones
Maximizar 3x con x entero no negativo y 2x≤5.
Relajación
x=2,5 da cota 7,5; x=2 es factible y vale seis.Rama x≤2
Su objetivo continuo es como máximo seis, así no puede mejorar.
Rama x≥3
Contradice 2x≤5; es infactible.Ambos casos cubren todos los enteros, de modo que el óptimo es seis.
Las regiones entre dos enteros consecutivos no contienen una decisión entera perdida.
No se ramifica en x≤2,5 y x≥2,5 dejando la misma fracción en ambas ramas.
8. La brecha global informa de lo que todavía podría mejorar
Si el mejor plan entero de un máximo vale B y los nodos abiertos tienen cotas U₁,…, Uₖ, una cota global es max(B, U₁,…, Uₖ). No se suman: los nodos representan planes alternativos. Si todos se cierran o sus cotas quedan por debajo de B, el valor está certificado.
Con objetivo entero, una cota superior puede redondearse hacia abajo manteniendo validez.
Algunas formulaciones de redes tienen vértices integrales con datos adecuados y admiten un óptimo entero mediante su relajación. Eso no significa que todo punto factible o todo óptimo de esa relajación sea entero. Tampoco se extiende la propiedad a cualquier matriz de restricciones. Las tolerancias de un solucionador deben distinguirse de un certificado matemático exacto.
Actualizar un candidato no cierra automáticamente todas las ramas
Máximo con plan conocido B=9 y dos nodos abiertos de cotas diez y doce.
Cota global
El óptimo está entre nueve y doce, no entre nueve y veintidós.
Nuevo plan
Encontramos un plan entero factible de valor once. Se poda el nodo de cota diez.
Lo que queda
La otra cota sigue en doce: la brecha absoluta es uno y todavía no hay igualdad certificada.
Un buen plan y un plan demostrado óptimo son resultados distintos.
No se anuncia once como óptimo mientras quede una región que podría alcanzar más.
Una estructura integral puede admitir también soluciones fraccionarias óptimas
Asignación de dos agentes y dos tareas; cada coste vale uno.
Punto fraccionario
La matriz con sus cuatro entradas 1/2 tiene suma uno en cada fila y columna; su coste es dos.
Planes enteros
La identidad y la asignación cruzada también tienen coste dos.
Geometría
El punto fraccionario es el promedio de esos dos planes. Existe un óptimo entero, pero no todos los óptimos son enteros.
La garantía de un vértice entero no convierte en enteros todos los puntos de la región.
La lección de redes explicará por qué la exclusividad de filas y columnas es una estructura especial.
Ahora lo resolvemos de principio a fin.
EJEMPLO RESUELTO 1
Una mochila pequeña
Capacidad 5. Objetos (peso,valor): A=(3,5), B=(2,4), C=(4,7). Elige sin repetir.
Datos
Capacidad cinco; A pesa tres y vale cinco, B pesa dos y vale cuatro, C pesa cuatro y vale siete. Cada uno se elige como máximo una vez.
Selecciones individuales
Vacía: peso cero, valor cero. A: peso tres, valor cinco. B: peso dos, valor cuatro. C: peso cuatro, valor siete.
Parejas
A+B pesa cinco y vale nueve. A+C pesa siete y B+C seis: no caben.
Tres objetos
A+B+C pesa nueve, superior a cinco; se descarta.
Comparación completa
Las ocho selecciones están cubiertas; el mayor valor factible es nueve.
Respuesta
Seleccionar A y B llena la capacidad y alcanza el máximo nueve.
Selecciona A y B: valor máximo 9.
Se han comparado todas las combinaciones factibles de tres objetos.
EJEMPLO RESUELTO 2
Redondear puede fallar
Maximiza x entero con 2x≤3, x≥0.
Relajación
Sin integridad, 2x≤3 permite hasta x=3/2.Dominio original
x debe ser entero y no negativo.
Cota entera
x≤3/2 implica x≤1 para un entero.Alcanzar
x=1 cumple 2·1≤3.Siguiente entero
x=2 exigiría cuatro, superior a tres; es infactible.Conclusión
El óptimo entero es uno. Redondear la fracción hacia dos no habría preservado la capacidad.
El óptimo entero es x=1.
2·1≤3 y el siguiente entero 2 es infactible.
Los símbolos que hemos usado
- Variable entera
- Decisión restringida a Z, con los límites adicionales del modelo.
- Variable binaria
- Decisión que solo vale cero o uno.
- Relajación
- Problema que permite más decisiones al retirar alguna restricción.
- Incumbente B
- Valor de la mejor solución entera factible conocida en una maximización.
- Cota superior U
- Valor que ninguna solución de una región puede superar.
- Poda
- Descarte de una región que no puede aportar una mejora necesaria.
- Programación dinámica
- Resolución mediante subproblemas con estados que resumen la información relevante.
Ahora te toca a ti.
Tienes cinco ejercicios. Inténtalos; las pistas te ayudan si te atascas.
Practicar este tema →