Sei sulla pagina 1di 16

1

Índice

Introducción ................................................................................ 2
Unidad 3. Programación entera ................................................. 3
3.1 Introducción y casos de aplicación. ................................. 3
3.2. Definición y modelos de programación entera............... 3
Principales Modelos.................................................................... 4
Problema entero (PE). ............................................................. 4
Problema entero mixto (PEM). ................................................. 5
Problema entero cero uno o binario (PECU). .......................... 5
3.3. Método gráfico de programación entera. ........................ 6
Solución mediante método gráfico ........................................... 6
3.4. Método de ramificación y acotación. ............................... 9
3.5. Método heurístico para problemas binarios ................. 12
Conclusión ................................................................................. 14
Bibliografía ................................................................................ 15
Introducción

Toda organización, ya sea pública o privada, de manufacturas o servicios, cuenta con


una función de operaciones la cual la lleva a la necesidad de plantear algoritmos que
permitan la resolución de problemas. Un problema de Programación Lineal se presenta
en entornos económicos por tanto es necesario gestionar una serie de recursos para
realizar distintas actividades, utilizando para ello un criterio que puede ser de tipo
económico. Existen diferentes soluciones y criterios con los cuales discriminar el objetivo,
por lo cual a este proceso de búsqueda se le conoce como Optimización.

Por tanto Optimizar significa poco más que mejorar, aunque también es conocido como
un proceso con el propósito de encontrar la mejor solución posible a un problema.

Muchas aplicaciones de la programación lineal no se pueden abordar con este tipo de


solución puesto que hay problemas donde las variables de decisión no pueden tomar
valores fraccionarios y redondear el resultado no es un solución óptima por ello se utiliza
el método de Programación Entera con el fin de resolver modelos para asignar
personas, máquinas o vehículos a las actividades, en cantidades enteras.

El método “Ramificar y Acotar” o también conocido como Branch y Bound es uno de los
métodos de programación entera más famoso el cual parte de la adición de nuevas
restricciones para cada variable de decisión (acotar) que al ser evaluado
independientemente (ramificar) lleva al óptimo entera.

Por ello si el problema exige valores enteros, entonces se trata de un problema de


Programación Lineal Entera. Así que el Modelo de Programación Lineal Entera es
simplemente de igual forma un modelo matemático con la condición que las variables
deben tener resultados enteros. A continuación se muestran ciertos aspectos de
Programación entera los cuales pueden resultar muy útiles para la resolución de
problemas administrativos.
Unidad 3. Programación entera
3.1 Introducción y casos de aplicación.

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. (Lyeberman, 1993)

Un enfoque práctico:

Una empresa que fabrica costales para alimento de ganado y una solución lineal
requiere que se fabriquen 3000,472 costales, carecerá de sentido. En tales situaciones,
a menudo se adopta la solución no entera al requerimiento de enteros simplemente
redondeando los resultados al entero más próximo. Esto produce lo que se llama la
“solución redondeada”. Mediante ese recurso se obtienen soluciones aceptables para el
administrador en aquellas situaciones en las que, con sentido práctico, sencillamente no
importa el redondeo. Por ejemplo, no hay diferencia significativa, ya sea en la función
objetivo o en las restricciones, entre producir 19.283,64 y 19.283 costales de alimento
para ganado, En realidad, probablemente baste para el ajuste de los datos del modelo
que satisfaga al administrador una producción cercana a los 19.000 costales. (Thierauf,
1993)

3.2. Definición y modelos de programación entera.

¿Qué Es La Programación Entera?

(Abril, 2010) Afirma:


3
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. (p.73)

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

=> Algoritmo de Land-Doig.

4
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 analogía 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. (Abril, 2010)

5
3.3. Método gráfico de programación entera.
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).

Solución mediante método gráfico


VARIABLES

XT: Cantidad de metros diarios de tejido tipo T a fabricar

XT’: Cantidad de metros diarios de tejido tipo T’ a fabricar

RESTRICCIONES

0,12XT + 0,2XT’ <= 500 Hilo “a”

0,15XT + 0,1XT’ <= 300 Hilo “b”

0,072XT + 0,027XT’ <= 108 Hilo “c”

Las restricciones de no negatividad no son necesarias en este ejemplo dado que se trata
de un ejercicio de maximización, cuando el ejercicio sea de minimización lo más
recomendado es incluirlas.

FUNCIÓN OBJETIVO

ZMAX = 4000XT + 5000XT’

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

6
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 Figura 1.1 Primera restricción del problema

x = 4167

Seguimos con la segunda


restricción,

0,15X + 0,1y = 300

Figura 1.2 Segunda restricción del problema

7
Tercera restricción,

0,072X + 0,027y = 108

Figura 1.3 Tercera restricción del problema

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.
(López, 2017)

Figura 1.4 Polígono de Solución

8
3.4. Método de ramificación y acotación.
(Branch and Bound).

Pasos:

Ramificación: Variables

Acotación: Valor de la función objetivo

A partir de la solución del PLA:

La ramificación consiste en dividir cada problema en dos nuevos subproblemas,


obtenidos mediante la imposición de restricciones excluyentes que dividen el conjunto
de oportunidades del problema original en dos partes, pero eliminando en ambas partes
la solución no entera del problema original.

Si xbi no entero, entonces se generan a partir de dicho valor dos restricciones xi [xbi
y xi [xbi +1 (siendo [xbi la parte entera por defecto de xbi), que añadidas cada uno
por separado al problema original, da lugar a dos nuevos subproblemas.

Por ejemplo la variable x1 tiene que ser entera, pero en la solución anterior (PLA u otro),
el variable vale: x1 = 6.8. Esta solución no es válida, ya que no es admisible un valor
fraccional, por tanto se introducirán las siguientes restricciones: x1 6 y x1 7, de forma
que se ha eliminado una porción del conjunto donde no hay soluciones enteras, pero se
mantienen las enteras:

Así se prosigue con todas las variables hasta que sean enteras.

Si al proceso de ramificación no se mejora de alguna forma, llegaríamos a analizar


TODAS las soluciones enteras (Enumeración Total). Por eso, se añade la fase de
Acotación, esta tiene que ver con el valor de la función objetivo.

A medida que se va ramificando se obtienen soluciones enteras y otras que no lo son.

No podemos asegurar que la primera solución entera obtenida sea la solución óptima,
sino que es necesario comprobar si existen otras soluciones enteras o no. El análisis del
PLA: Ramificación se realiza siempre a partir de aquel problema que tiene el mejor valor

9
de la función objetivo, y siempre que exista alguna solución (no entera) con un valor de
la función objetivo

Ejemplo: (Maximización)

Solución del PLA: FO: 5487,33 (Solución no entera)

Primera Ramificación:

Problema 1: FO: 5340, 75 (solución no entera)

Problema 2: FO: 5425.10 (solución no entera).

Segunda Ramificación:

A partir del problema 2, por tener un mejor valor de la función objetivo:

Problema 11: FO: 5405, 30 (solución no entera)

Problema 22: FO: Infactible.

Como no hay solución entera hemos de seguir ramificando: ¿Por dónde?. Problema 22
tiene mejor valor que problema 1.

Tercera ramificación:

A partir del problema 2

Problema 211:FO = 5350 (solución entera)

Problema 212 F= = 5385.25 (solución no entera).

La solución del problema 211 (5350) ¿Es la óptima?

NO, ya que ramificando por el problema 212 se podrían encontrar mejores soluciones.
Pero lo que es seguro que a partir del Problema 1: FO: 5340, 75 no vamos a encontrar
ninguna solución entera mejor que la que hemos encontrado, por tanto ese valor de 5350
es la COTA a partir de la cual no analizaremos ningún problema que tenga un valor de
FO menor o igual.

10
Cuarta Ramificación:

Problema 2121: FO = 2360 (solución entera)

Problema 2122 FO = 2366.25 (solución no entera).

Que hacer: a) La cota ha mejorado, ahora no analizaremos ninguna solución con un valor
de FO menor o igual que 2360. Pero aun no podemos afirmar que la solución del
problema 2121 sea la óptima, hemos de seguir ramificando:

Quinta Ramificación:

Problema 21221: FO = 2355 (solución entera)

Problema 21222 FO = 2358.75 (solución no entera).

¿Hemos de ramificar el problema 21222?: NO, ya que tenemos una solución entera 2360
mejor que cualquier valor de una función objetivo de un problema no ramificado. (Ware,
2012)

11
3.5. Método heurístico para problemas binarios
La heurística está diseñada para encontrar buenas soluciones aproximadas de
problemas combinatorios difíciles que de lo contrario no pueden resolverse mediante los
algoritmos de optimización disponibles. Una heurística es una técnica de búsqueda
directa que utiliza reglas favorables prácticas para localizar soluciones mejoradas. La
ventaja de la heurística es que en general determina (buenas) soluciones con rapidez,
utilizando reglas de solución simples. La desventaja es que la calidad de la solución (con
respecto a la óptima) suele desconocerse.

Las primeras generaciones de heurística se basan en la regla de búsqueda codiciosa


que dicta que se mejore el valor de la función objetivo con cada movimiento de búsqueda.
La búsqueda termina en un óptimo local donde ya no son posibles más mejoras.

En la década de 1980, una nueva generación de meta heurística buscó mejorar la calidad
de las soluciones heurísticas al permitir la búsqueda de una trampa de escape en óptimos
locales. La ventaja obtenida se logra a expensas de los cálculos incrementados.

Consiste en recurrir iterativamente al concepto de ruta más corta o de mínimo costo de


la siguiente forma:
1. Se define como camino por donde se trataría de enviar un cierto número de unidades
a la ruta de mínimo costo.

2. Una vez se tiene una ruta de mínimo costo, se examina el mayor número de unidades
que se puede enviar por esta ruta.

3. Saturada esta ruta, se busca otra ruta de mínimo costo (la segunda mejor), a través
de la cual se enviará correspondientemente el mayor número de unidades posibles.

4. El procedimiento del punto anterior se repetirá hasta realizar el programa completo de


envíos.

Heurística Codiciosa (Búsqueda Local)

Las ideas principales de la heurística codiciosa se explican por medio de un problema de


una sola variable. Defina el problema de optimización con espacio de soluciones S como

12
El proceso iterativo de una heurística codiciosa se inicia en un punto factible (aleatorio)
luego intenta moverse a un punto de mejor solución en las inmediaciones (vecindad) del
punto de solución actual. Específicamente, en la iteración k, dado el punto de solución
xk, la heurística examina todos los puntos factibles en las inmediaciones N(xk) en busca
de una mejor solución. La búsqueda finaliza cuando ya no son posibles más mejoras.
(Taha, 2012)

Tabla 1

Solución Heurística

Fábrica Mayor número Unidades en la Ruta de Almacén


de unidades Fábrica después mínimo Costo
para enviar del envío
2 40 0 2→3→5 5
1 20 30 1→3→5 5
1 20 10 1→3→5→4 4
1 0 10 1→2→3→5→4 4
1 10 0 1→4 4

Tabla de solución heurística para ejemplos de la red de distribución

13
Conclusión

La resolución de problemas siempre ha sido uno de los principales objetivos del ser
humano puesto que con este se obtienen mejores comodidades y por ello la satisfacción
de ciertas necesidades.

La Programación Entera fue creada con el propósito de dar solución a problemas de


administración en donde es necesario asignar a las variables de decisión valores enteros,
es por ello que basta razonar el motivo de este requisito, y es que hay problemas donde
la lógica juega un papel muy importante puesto que imaginemos que contamos con una
variable de decisión en donde intervenga la asignación de personas a una tarea, si una
variable de decisión nos arroja un valor de 1.5 personas , sería imposible asignar 1.5
personas a una actividad, es por este motivo que se buscan valores entonces es decir
analizar si sería más óptimo utilizar 1 o 2 personas.

Con la realización de este trabajo se obtuvieron ciertos conocimientos los cuales pueden
ser aplicados para obtener soluciones óptimas y factibles, con el fin de resolver modelos
para asignar personas, máquinas o vehículos a las actividades, en cantidades enteras.

Para la resolución de este tipos de problemas se reconocen principalmente 3 métodos


los cuales son:

 Método Gráfico
 Método de ramificación y acotación
 Método Heurístico para problemas binarios

Del cual Principalmente destaca el de ramificación y acotación el cual parte de la adición


de nuevas restricciones para cada variable de decisión (acotar) que al ser evaluado
independientemente (ramificar) lleva al óptimo entera. Aunque de una perspectiva
diferente, si se desea ver los resultados de manera gráfica, el método Gráfico es una
excelente opción, puesto que permitirá el análisis estratégico de una solución óptima.

14
Bibliografía

Abril, L. A. (2010). Programación Entera. Obtenido de


http://bdigital.unal.edu.co/46196/3/9588095093_Part02.PDF

López, B. S. (2017). Método Gráfico . Obtenido de


https://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-
industrial/investigaci%C3%B3n-de-operaciones/m%C3%A9todo-gr%C3%A1fico/

Lyeberman, H. y. (1993). Programación Entera. (M. Graw-Hill, Ed.) Obtenido de


http://www.geocities.ws/mdmoli/archivos/ioi2/unidad2ioi

Taha, H. A. (2012). Investigacion de Operaciones. México : PEARSON EDUCACIÓN. Obtenido de


https://drive.google.com/file/d/1sOFr7BTAQj-dy-
BLbtKNefXslG7gBg96/view?fbclid=IwAR25GUJcCfCVO52I1PtbakwAgIGWJTQBT3m_CL-
xEpYAQVCG9BaYLd1mgg8

Thierauf, R. (1993). Toma de decisiones por medio de investigación de operaciones. (L. Noriega, Ed.)
Obtenido de http://www.geocities.ws/mdmoli/archivos/ioi2/unidad2ioi

Ware, O. C. (2012). Programación Entera. Obtenido de https://ocw.ehu.eus/file.php/19/5._entera.pdf

15