Está en la página 1de 22

3.1 DEFINICION Y MODELOS DE PROGRAMACIÓN ENTERA.

Muchas aplicaciones no se pueden abordar con los métodos de solución de la


Programación Lineal porque tienen el principio de la "no divisibilidad", esto es,
algunas o todas las variables deben tomar valores enteros. Con frecuencia deben
construirse modelos para asignar personas, máquinas o vehículos a las
actividades, en cantidades enteras. Si el problema de exigir valores enteros es la
única diferencia que tiene un problema con su formulación en términos de
Programación Lineal, entonces se trata de un problema de Programación Lineal
Entera o simplemente de Programación Entera. Así que el modelo de
Programación Entera es simplemente un modelo matemático de Programación
Lineal que agrega la condición de que algunas o todas las variables deben ser
enteras.
QUÉ ES LA PROGRAMACIÓN ENTERA.
La Programación Entera es un conjunto de técnicas de la Investigación Operativa
que permiten solución a una variante para el Programa Lineal cuando las variables
de decisión no pueden tomar valores fraccionarios. Para el modelo de
Programación Lineal se optimiza una función sobre una región convexa, mientras
que en la Programación Entera se optimiza sobre una región de factibilidad que
generalmente no es convexa. Por lo tanto, la solución de problemas enteros;
resulta más complicada que la Programación Lineal. Es importante anotar que las
técnicas desarrolladas hasta ahora, dentro de la Programación Entera, distan
mucho de resolver el 100% de los problemas de decisión de variable entera.
PRINCIPALES MODELOS.
Las variantes del modelo de Programación Lineal, tienen que ver con las
condiciones de valores enteros que tienen que tomar algunas de las variables de
decisión. Los casos son los siguientes.
Problema entero (PE).
Es una variante del Programa Lineal, para el cual todas las variables de decisión
además de cumplir la condición de no negatividad deben ser todas enteras. Por
consiguiente, el modelo matemático generalizado es:
Los métodos de solución desarrollados para este modelo son los siguientes.
=> Método de plano de corte.
=> Algoritmo fraccional de Gomory
=> Algoritmo entero puro de Gomory
=> Método de bifurcación y acotación
Problema entero mixto (PEM).
En esta variante del Programa Lineal, todas las variables de decisión son positivas
y solamente algunas de ellas deben ser enteras. Por lo tanto el modelo
matemático generalizado es: "
Los métodos de solución desarrollados para este modelo son los siguientes .
=> Algoritmo entero-mixto de Gomory
=> Algoritmo de Land-Doig.
Problema entero cero uno o binario (PECU).
Esta variante del Programa Lineal, suele utilizarse para modelar problemas con
actividades que deben o no ejecutarse. Por analogia con el sistema de los
números binarios, las variables de decisión toman un único valor entero entre O y
1. Esto es, si la actividad no se ejecuta la variable correspondiente toma el valor
O, de lo contrario el valor 1. Por consiguiente el modelo matemático generalizado
es:

Los métodos de solución desarrollados para este modelo son los siguientes.
~ Método de bifurcación y Acotación .
~ Método aditivo de Balas.
3.2.- METODO GRAFICO
El método gráfico es un procedimiento de solución de problemas
de programación lineal, muy limitado en cuanto al número de variables (2 si es
un gráfico 2D y 3 si es 3D) pero muy rico en materia de interpretación de
resultados e incluso análisis de sensibilidad. Este consiste en representar cada
una de las restricciones y encontrar en la medida de lo posible el polígono
(poliedro) factible, comúnmente llamado el conjunto solución o región factible, en
el cual por razones trigonométricas en uno de sus vértices se encuentra la mejor
respuesta (solución óptima).
EJEMPLO

La fábrica de Hilados y Tejidos «SALAZAR» requiere fabricar dos tejidos de


calidad diferente T y T’; se dispone de 500 Kg de hilo a, 300 Kg de hilo b y 108 Kg
de hilo c. Para obtener un metro de T diariamente se necesitan 125 gr de a, 150 gr
de b y 72 gr de c; para producir un metro de T’ por día se necesitan 200 gr de a,
100 gr de b y 27 gr de c. El T se vende a $4000 el metro y el T’ se vende a $5000
el metro. Si se debe obtener el máximo beneficio, ¿cuántos metros de T y T’ se
deben fabricar?

Paso 1: Graficar las restricciones

Para iniciar con el trazado de las restricciones es indispensable igualar las


restricciones a 0, de esta manera podemos mediante despeje de ecuaciones
iniciar con la tabulación que nos otorgará las coordenadas para esbozar cada una
de las gráficas. Además dado que se trabajará en el plano cartesiano sería
prudente renombrar las variables
XT = x

XT’ = y

Igualamos las restricciones,


0,12X + 0,2y = 500

0,15X + 0,1y = 300


0,072X + 0,027y = 108

Acto seguido iniciamos con la primera restricción, hallamos las primeras dos
coordenadas. Para hallar las coordenadas regularmente llevamos una de las
variables a cero, para de esta manera despejar más fácilmente la segunda.
Por ejemplo, para un x = 0
0,12(0) + 0,2y = 500

0,2y =  500

500/0,2 = y

2500 = y

y para un y = 0
0,12x + 0,2(0) = 500

0,12x = 500

x = 500/0,12

x = 4167
Seguimos con la segunda restricción
Pasamos a la tercera restricción

En el siguiente gráfico se muestra el polígono solución de color gris, en este


conjunto es donde cada coordenada cumple con todas las restricciones, las cuales
se caracterizan por ser restricciones de menor o igual y esta característica se
representa con una flecha hacía abajo.
Una vez se llega a este punto es indispensable saber que las soluciones óptimas
se alojan en los vértices del polígono solución (color gris) y que identificar a la
solución óptima es cuestión de elegir la mejor alternativa dependiendo de las
herramientas disponibles (tecnológicas y conocimientos matemáticos).

La primera opción es la geométrica, esta depende de trazar la ecuación que


representa a la función objetivo (este paso consiste en realizar el mismo
procedimiento de las restricciones).

Función objetivo,
ZMAX = 4000x + 5000y

luego igualamos a 0.
4000x + 5000y = 0

Luego tabulamos para obtener las coordenadas necesarias para esbozar la gráfica
correspondientes a la ecuación (en esta ocasión es recomendable más de dos
coordenadas, incluyendo la coordenada (x = 0, y = 0).
Una vez se ha esbozado la función objetivo (línea negra) sacamos replicas
paralelas a esta que se encuentren con cada vértice, y solo en el caso en que la
línea imaginaria paralela a la función objetivo no corte el polígono solución
se ha encontrado la solución óptima. En otras palabras trasladamos la función
objetivo por todo el polígono conservando su forma paralela con la original, la
detenemos en los vértices y evaluamos si esta corta o no el conjunto solución.
Claramente solo en el punto «B», es decir en el vértice formado por la intersección
de las ecuaciones 1 y 2, la línea imaginaria no corta el polígono solución, entonces
es este punto el correspondiente a la coordenada óptima.

Para hallar el valor de esta coordenada es indispensable recurrir a la resolución de


ecuaciones lineales 2×2, y se pueden considerar varios métodos de solución entre
ellos:

 Método por sustitución


 Método por igualación
 Método por reducción o Eliminación
 Método por eliminación Gauss
 Método por eliminación Gauss – Jordán
 Método por determinantes
Así entonces, se dispone de gran cantidad de métodos, uno de los más utilizados
es el método de reducción o eliminación, el cual es muy sencillo de aplicar.
El método por reducción o eliminación consiste en igualar los coeficientes de una
de las variables multiplicando una o las dos ecuaciones, teniendo en cuenta que
estos coeficientes queden iguales pero con signos contrarios.

Ecuación 1                        0,12x + 0,2y = 500

Ecuación 2                        0,15x + 0,1y = 300  multiplicamos por (-2)

Ecuación 3 (2*(-2))          -0,30x –  0,2y = -600

Sumamos 1 y 3               -0,18x = -100

Despejamos «x»               x = -100 / (-0,18)

x = 555,55
luego reemplazamos x = 555,55 en cualquiera de las dos ecuaciones originales
con el objetivo de despejar «y».

Ecuación 1                     0,12x + 0,2y = 500

Reemplazamos «x»        0,12(555,55) + 0,2y = 500

Despejamos «y»             66,666 + 0,2y = 500

0,2y = 500 – 66,666

0,2y = 433,334

y = 433,334 / 0,2

y = 2166,67
De esta forma hemos obtenido los valores para «x» y «y».
Recordemos que x y y fueron los nombres que recibieron las variables originales
XT y XT’
x = XT

y = XT’

XT = 555,55

XT’ = 2166,67

y la contribución obtenida (reemplazando las variables en la función objetivo) es


de:

Zmax = 4000XT + 5000XT’

Zmax = 4000(555,55) + 5000(2166,67)

Zmax = 13.055.550

3.3 RAMIFICACION Y ACOTAMIENTO

El método de Branch and Bound (en español Ramificación y Acotamiento)


aborda la resolución de modelos de programación entera a través de la resolución
de una secuencia de modelos de programación lineal que consituirán los nodos o
subproblemas del problema entero. Si bien el procedimiento es extendible a un
número mayor de variables, para efectos prácticos ilustraremos su aplicación para
modelos de programación entera en 2 variables.

Ejemplo Branch and Bound

Resuelva el siguiente modelo de programación entera a través del algoritmo de


ramificación y acotamiento (Branch and Bound)
El primer paso consiste en resolver el problema sin considerar las condiciones de
integralidad, es decir, asumiendo que es un modelo de Programación Lineal. El
siguiente gráfico muestra la resolución gráfica donde el área en verde corresponde
al dominio de soluciones factibles asociado al problema lineal lo que se denomina
la relajación continua del problema entero. Adicionalmente, sólo con el objetivo de
ilustrar se han marcado con azul las posibles soluciones enteras para este
problema. En este sentido resulta evidente que el dominio de soluciones factibles
del problema entero es un subconjunto del dominio del problema lineal y esto en el
caso de un problema de maximización determina que el valor óptimo del problema
lineal será una cota superior del valor óptimo del problema entero.

La relajación continua (Problema P0) nos da como solución


óptima X1=20/9 y X2=14/9 con valor óptimo V(P0)=319,1. Dado que al menos una
variable de decisión toma valor fraccionario se debe buscar una aproximación a
valor entero. En este caso en particular con 2 soluciones fraccionarias como
criterio se puede seleccionar aquella con un mayor impacto (coeficiente) en la
función objetivo, sin embargo, no importando cuál de ellas se seleccione en un
inicio los resultados serán los mismos.

En consecuencia, seleccionaremos X1 y aproximaremos los resultados


(20/9=2,222) al entero superior e inferior más cercano. Esto genera 2
subproblemas que llamaremos P1 y P2 respectivamente. El problema P1 es
similar a P0 pero considera como restricción adicional X1<=2. Al resolver dicho
problema se obtiene X1=2 y X2=7/4 con V(P1)=380. El problema P2 es similar a
P0 pero adicionalmente tiene la restricción X1>=3, con solución óptima X1=3 y
X2=0 y V(P2)=360. Este nodo (P2) se agota y sólo el P1 puede generar nuevos
nodos.
Cabe destacar que un nodo o subproblema se agota en las siguientes
situaciones: 1) Se alcanza una solución entera, 2) El problema es infactible, 3)
Se obtiene una solución fraccionaria pero no es necesario continuar dado
que ésta no es mejor (en términos de valor de la función objetivo) que una
solución entera que se ha alcanzado previamente.

Continuando con el procedimiento el P1 genera 2 nuevos nodos. P11 (similar a P1


con la restricción adicional X2<=1) con solución X1=2 y X2=1 y V(P11)=320. El
problema P12 (similar a P1 con la restricción adicional X2>=2) con solución
X1=12/7 y X2=2 y V(P12)=365,7.

Sólo P12 genera nuevos nodos: P121 (similar a P12 con la restricción adicional
X1<=1) con solución X1=1 y X2=21/8 y V(P121)=330. Adicionalmente el problema
P122 (similar a P12 con la restricción adicional X1>=2) resulta ser infactible al no
existir solución.

Finalmente, si bien se puede continuar ramificando (generando nodos) a contar


del problema P121 esto no es necesario dado que el valor óptimo sólo podrá ir
disminuyendo (dado que cada vez se resuelve un problema sobre un dominio de
soluciones factibles menor) y por tanto en ningún caso se podrá obtener una
solución entera mejor que la que ya se dispone (P2). Por tanto X1=3 y X2=0 es
solución óptima del problema entero con valor óptimo V(PE)=360. Se recomienda
verificar que se obtienen los mismos resultados ramificando inicialmente por
X2 en vez de X1.

3.4.- Método de Planos Cortantes o Método de Planos de Corte (o


simplemente Planos Cortantes).
Este algoritmo también se conoce con el nombre de Cortes basados en
Descomposición de Benders, y esto es principalmente debido a que este
procedimiento utiliza inecuaciones muy similares a las que se ocupan en el
método propuesto por J.F. Benders.

Ejemplo Método de Planos Cortantes

Supongamos el siguiente problema de optimización, en donde las primeras cuatro


inecuaciones serán las que permanecen en el problema relajado, y las ultimas 4
son las inecuaciones “complicadas” que serán incorporadas a la función objetivo.
Sin embargo, antes de ello presentaremos una representación gráfica del
problema propuesto. El área achurada de color verde corresponde al dominio de
soluciones factibles de la relajación continua del problema, es decir, omitiendo
las condiciones de integralidad para las variables de decisión.
En este contexto la solución óptima de la relajación continua es el vértice
B donde x=30/11 e y=42/11, con valor óptimo V(PL)=186/11=16,909 (aprox).
De forma análoga, la solución óptima del problema entero se encuentra
identificado con la letra F con x=3 e y=3, siendo el valor óptimo V(PE)=15.
Notar que la representación gráfica anterior y la obtención de la solución óptima
de la relajación continua y del modelo de Programación Entera propuesto
tiene un fin sólo ilustrativo, de modo que favorezca la comprensión de los
conceptos que presentamos más adelante.
A continuación retomamos el procedimiento del Algoritmo de Planos Cortantes.
Para ello escribiremos el problema relajado (no confundir con la relajación
continua!) de la siguiente forma:
Al escribir este problema, los puntos pertenecientes a la envoltura convexa de
las soluciones enteras del problema relajado son los siguientes:

Una representación gráfica de la envoltura convexa del problema relajado se


muestra a continuación:

A pesar de que el método sugiere una cantidad de cortes iniciales, como se puede
ver en este ejemplo son sólo 8 puntos (denotados por E, F, G, H, I, J más las
coordenadas (2,3) y (3,2)), por lo que no seguiremos esta sugerencia. Para iniciar,
hacemos k=1 y utilizaremos el punto (1,4) para crear el siguiente corte:

Por lo que el Problema Maestro en la iteración k=1 es:


Al resolver este problema, la solución óptima
es:  .

Con estos valores para los Multiplicadores de Lagrange, resolvemos el


problema relajado:

El cual, entrega como resultado los valores x=5 e y=1, con un valor objetivo


de 58,5.
Luego verificamos el criterio de parada ( ) por lo que el nuevo punto que
nos permite generar un nuevo corte:

Hacemos k=2 y el nuevo Problema Maestro es:

Al resolver este problema, la solución óptima


es:  .

Con estos valores para los Multiplicadores de Lagrange, resolvemos el


problema relajado:
El cual, entrega como resultado los valores x=2 e y=4, con un valor objetivo
de 15,882.
Verificamos el criterio de parada ( ) por lo que el nuevo punto que
nos permite generar un nuevo corte:

Hacemos k=3 y el nuevo Problema Maestro es:

Al resolver este problema, la solución óptima


es:  .

Con estos valores para los Multiplicadores de Lagrange, resolvemos el


problema relajado:
El cual, entrega como resultado los valores x=5 e y=1, con un valor objetivo
de 15,6, verificamos el criterio de parada (15,6=15,6), por lo que como se cumple
el criterio de parada y el algoritmo se detiene.
Al estar optimizando los valores para una Relajación Lagrangeana, hemos
encontrado un valor que cumple con lo siguiente:

Particularmente para este problema se cumple que:

3.5. MÉTODO HEURÍSTICO PARA PROBLEMAS BINARIOS.


En los planteamientos metodológicos sobre el aprendizaje de las matemáticas
hay dos enfoques el heurístico y el deductivo, que, aunque no podemos
considerar opuestos porque tienen procesos comunes, como la lógica y la
deducción, están absolutamente diferenciados.
En este tema se pretende destacar las ventajas del método heurístico frente al
deductivo, analizando y reflexionando sobre procesos generales del
razonamiento matemático que intervienen en él y favorecen la creatividad.
El contexto adecuado para ejercitar el método heurístico es la resolución de
problemas, ya que permite múltiples formas de ejercitar y reflexionar sobre
procesos, como son la inducción, la deducción, la generalización y la
particularización, que son las claves del pensamiento heurístico y aunque están
presentes en otros campos de la actividad humana y de las matemáticas, la
resolución de problemas los dotan de un significado muy preciso.

El enfoque heurístico consiste en formular conjeturas(apoyándonos en el


comportamiento de casos particulares), que intentamos refutar mediante
contraejemplos concretos, que nos permiten rechazarla o nos dan la clave para
justificarla. En el extremo opuesto de los planteamientos metodológicos está el
que Lakatos denomina "estilo deductivista", de uso habitual en las clases de
matemáticas, basado en la metodología euclídea.
Consiste en enunciar una lista de definiciones y axiomas, impuestas de forma
autoritaria, que suelen ser artificiales y complicadas, y que nos permiten
establecer una serie de teoremas matemáticos mediante la deducción formal.
Así las matemáticas se presentan como un conjunto de verdades eternas que
no podemos refutar ni criticar. Se oculta la historia de cualquier descubrimiento
matemático, que está llena de sucesivas formulaciones y pruebas aproximadas,
para sólo destacar la infalibilidad del resultado final.
PARTICULARIZAR Y GENERALIZAR
Los procesos de generalización y particularización son especialmente
importantes en la resolución de problemas.
A pesar de que parecen conceptos opuestos cada uno interviene decisivamente
en el otro. Además si particularizar es una de las bases cuando empezamos a
enfrentarnos al problema, generalizar es imprescindible en el momento de hacer
conjeturas y cuando después de encontrar la solución, intentamos establecerla
en contextos más amplios.
Particularizar consiste en concentrar la atención en ejemplos concretos, para
entender mejor el significado del problema. Es además una sugerencia muy útil
para salir de una situación en la que nos encontramos atascados, porque
proporciona seguridad en momentos clave en los que hay peligro de abandonar
la tarea, también se utiliza para verificar una solución.
En este caso es conveniente, que aunque pensemos que una hipótesis es
cierta, tengamos la habilidad suficiente de encontrar, si existen, las excepciones
para refutar la regla.
Generalizar significa pasar de un conjunto de objetos a otro conjunto más
amplio que contenga al primero. Es también descubrir una ley general que
permita justificar una conjetura, así como buscar un planteamiento más
amplio del problema, cambiando el contexto, los datos o la solución. La
generalización permite hacer conjeturas a partir de unos pocos ejemplos. Ser
sistemático y ordenado a la hora de particularizar ayuda mucho para
generalizar, aunque es fácil engañarse y es preciso conseguir el equilibrio entre
el crédulo que acepta toda generalización y el demasiado escéptico que no es
capaz de dar un salto en el vacío.

EJEMPLO
En un papel cuadriculado trazamos rectángulos que tengan un número entero
de cuadraditos en cada lado. Una diagonal del rectángulo puede cortar o no a
los cuadraditos por los que atraviesa, se considera que no corta si sólo contiene
a un vértice. Se trata de encontrar una regla para poder calcular (sin necesidad
de contarlos) el número de cortes de la diagonal de un rectángulo cualquiera.
El primer paso es comprender bien el enunciado. Lo normal cuando se plantea
este problema en clase, es que comiencen a dibujar casos particulares.
Trazan distintos rectángulos y cuentan el número de cortes, a veces hay que
aconsejarles que realicen una tabla con los datos obtenidos.
Es importante que elijan una buena notación para los datos y la incógnita
llamando, por ejemplo, a y b a los lados del rectángulo y c al número de cortes.
Otra forma de particularizar más sistemática, que aparece usualmente cuando
se propone este problema en clase es confeccionar una tabla considerando
primero el caso de un cuadrado y continuación dejando un lado fijo.
En esa tabla la primera regularidad que observan es que al aumentar una
unidad uno de los lados, el corte va también aumentando en una unidad. Y
después de esta observación lo normal es lanzarse a formular hipótesis.

La primera conjetura que establecen es que el número de cortes c es igual a+b-


1 (ya que al añadir una unidad a un lado, tenemos un corte más) salvo en el
caso específico de un cuadrado que entonces no se verifica. Aunque parece
correcta la solución encontrada, no resulta satisfactorio que no se verifique para
un cuadrado, es decir, que no se cumpla para "un caso límite".
Una vez que han formulado esta conjetura se les aconseja volver a leer el
enunciado y a particularizar más con otros datos por ejemplo cambiando a=5
por a=4.

Después de considerar a=4 con b=5, b=6, b=7, b=8, llegan a la conclusión de
que si a+b es impar c es igual a a+b-1, si es par c vale a+b-2 y si uno es
múltiplo del otro c es igual al mayor.
Cuando preguntas ¿Qué pasa cuando dos números verificandos de las
condiciones? o ¿Cuál de ellas hay que aplicar primero? observas que el objetivo
que tienen es encontrar rápidamente una fórmula general, sin la menor
intención de justificarla, haciendo gala del principio de que si una fórmula se
verifica para cinco casos se verifica para todos.

Ante este bloqueo y con la suerte de tener quien les dirija, cosa que a todos nos
gustaría tener cuando nos enfrentamos a un problema, se les propone que
consideren a=12 b=9 c=18.
Aún así les cuesta mucho aceptar que cualquier hipótesis ha de estar
justificada. En este caso lo importante es considerar los casos en los que la
diagonal pase exactamente por el punto que es vértice común de dos de los
cuadraditos y esto ocurre precisamente cuando los lados tienen divisores
comunes. Por ejemplo en el caso a=4 y b=8 el número de cortes es 8, y cada
dos cuadrados consecutivos, el corte es el mismo que los dos cuadrados
siguientes. Luego la solución es cuatro veces lo que ocurre en el rectángulo a=2
y b=1, luego c=4.(2+1-1). Por tanto la hipótesis c = a + b - 1 es válida cuando a
y b son primos entre sí. En caso contrario como a/mcd(a,b) y b/mcd(a,b) son
primos entre sí, tenemos que el valor de c es igual a mcd(a,b).(a/mcd(a,b)
+b/mcd(a,b)-1), luego c vale a+b-mcd(a,b). De esta manera, al intentar justificar
la conjetura, encontramos la solución.

También podría gustarte