Sei sulla pagina 1di 10

GUIA PRACTICA2: Programación Lineal Entera BINARIA

¿Qué es la Programación Entera?: Un modelo de Programación Entera es aquel


cuya solución óptima tiene sentido solamente si una parte o todas las variables de
decisión toman valores restringidos a números enteros, permitiendo incorporar en el
modelamiento matemático algunos aspectos que quedan fuera del alcance de los modelos
de Programación Lineal.

En este sentido los algoritmos de resolución de los modelos de Programación Entera difieren
a los utilizados en los modelos de Programación Lineal, destacándose entre ellos
el Algoritmo de Ramificación y Acotamiento (o Branch & Bound), Branch & Cut, Planos
Cortantes, Relajación Lagrangeana, entre otros.

Los modelos de Programación Entera se pueden clasificar en 2 grandes


áreas: Programación Entera Mixta (PEM) y Programación Entera Pura (PEP).

Programación Entera Mixta (PEM)


A esta categoría pertenecen aquellos problemas de optimización que consideran variables de
decisión enteras o binarias pero no de forma exclusiva. De esta forma un problema de PEM
puede considerarse como un híbrido entre distintas categorías de modelamiento, siendo un
caso típico aquel que considera la mezcla de variables enteras y variables continuas (estas
últimas características de los modelos de Programación Lineal). A modo de ejemplo los
siguientes artículos que hemos abordado en el Blog dan cuenta de modelos de Programación
Entera Mixta:
1. Incorporación de Costos Fijos
2. Problemas de Localización y Transporte
3. Problema de Generación Eléctrica
Programación Entera Pura - Binaria(PEP)
En esta categoría encontramos aquellos modelos de Programación Entera que consideran
exclusivamente variables de decisión que adoptan valores enteros o binarios. Un ejemplo de
ello son las siguientes aplicaciones:
1. Problema de Asignación
2. Problema de Corte de Rollos
3. Selección de Invitados a una Boda
4. Programación de la Explotación Forestal
5. Problema de la Mochila

Notar que en los problemas anteriores (PEP) el conjunto de las soluciones factibles (o
dominio de soluciones factibles) es finito. Esto ocurrirá generalmente con los problemas de
Programación Entera (puros).

Adicionalmente resulta interesante hacer un contrastes entre las propiedades de un modelo


de Programación Lineal (PL) y uno de Programación Entera (PE). A continuación se presentan
2 modelos de optimización que se diferencian únicamente en que al segundo de ellos (PE) se
le exige que las variables de decisión adopten valores enteros.

Para los problemas propuestos realizamos una representación gráfica haciendo uso del
software Geogebra. El dominio de soluciones factibles del Problema Lineal
(PL) corresponde al área achurada de color verde. Por otro lado el dominio de soluciones
factibles del Problema Entero (PE) es enumerable y corresponde a las coordenadas
denotadas por A, E, F, B, G, H, I, J, K, C, L, M, D (que es un subconjunto del dominio de
factibilidad del PL). En este caso en particular la solución óptima de ambos problemas
coincide (en el vértice C), no obstante, perfectamente podrían ser distintas (bastaría con
modificar los parámetros del problema).
En este contexto y dada la naturaleza de los problemas propuestos, el valor óptimo del
Problema Lineal (PL) será una cota superior del valor óptimo del Problema Entero
(PE). También se concluye que el dominio de soluciones factibles de un modelo de
Programación Lineal (cuando existe) representa un conjunto convexo (los problemas de
Programación Lineal son convexos) y en el caso del problema de Programación Entera Pura
su conjunto de soluciones factibles es discreto.

Por qué no aparece el Informe de Confidencialidad (o Informe de Sensibilidad) en


Solver de Excel se debe tener en cuenta que en la utilización de software para la resolución
computacional del modelos de Programación Entera no tendremos acceso a los reportes de
sensibilidad como en el caso de la implementación de modelos de Programación Lineal. De
esta forma ante la necesidad de analizar el impacto en los resultados ante la modificación de
los parámetros del problema será necesario reoptimizar ante la información que brinde el o
los nuevos escenarios.

Es importante destacar que las aplicaciones de la Programación Entera no reemplazan la


versatilidad que ofrece el disponer de modelos de Programación Lineal. Más aún, se
pueden considerar estas categorías de modelamiento matemático
como complementarias en el ámbito de la Investigación de Operaciones.

En este sentido en términos abstractos los modelos de Programación Entera imponen un


desafío mayor al momento de la resolución en comparación a las propiedades simplificadoras
que están asociadas a los problemas de Programación Lineal. De esta forma se espera que
el tomador de decisiones sea capaz de evaluar la relación rigurosidad del modelado con el
costo (complejidad) de la resolución del mismo.
EJERCICIOS DE PROGRAMACION LINEAL Y PROGRAMACION ENTERA

PROGRAMACION LINEAL:

1. Una compañía fabrica y venden dos modelos de lámpara L1 y L2. Para su fabricación
se necesita un trabajo manual de 20 minutos para el modelo L1 y de 30 minutos para
el L2; y un trabajo de máquina de 20 minutos para el modelo L1 y de 10 minutos para
L2. Se dispone para el trabajo manual de 100 horas al mes y para la máquina 80 horas
al mes. Sabiendo que el beneficio por unidad es de 15 y 10 euros para L1 y L2,
respectivamente, planificar la producción para obtener el máximo beneficio.
2. En una granja de pollos se da una dieta, para engordar, con una composición mínima
de 15 unidades de una sustancia A y otras 15 de una sustancia B. En el mercado sólo
se encuentra dos clases de compuestos: el tipo X con una composición de una unidad
de A y 5 de B, y el otro tipo, Y, con una composición de cinco unidades de A y una de
B. El precio del tipo X es de 10 euros y del tipo Y es de 30 €. ¿Qué cantidades se han
de comprar de cada tipo para cubrir las necesidades con un coste mínimo?
3. Se dispone de 600 g de un determinado fármaco para elaborar pastillas grandes y
pequeñas. Las grandes pesan 40 g y las pequeñas 30 g. Se necesitan al menos tres
pastillas grandes, y al menos el doble de pequeñas que de las grandes. Cada pastilla
grande proporciona un beneficio de 2 € y la pequeña de 1 €. ¿Cuántas pastillas se
han de elaborar de cada clase para que el beneficio sea máximo?
PROGRAMACION ENTERA

Ejercicio1

Ejercicio2: Problemas de asignación

Problema de Asignación en Programación Entera


resuelto con Solver
Cuando necesitamos asignar recursos escasos a determinadas funciones y dichos
recursos no son fraccionables, la utilización de modelos de Programación
Entera resultan ser de utilidad para la toma de decisiones. En este contexto los
problemas de asignación de personal a determinadas tareas es una aplicación típica de la
Programación Entera que a continuación desarrollaremos a través de un ejemplo.
Problema de Asignación
Consideremos una empresa que dispone de 5 ingenieros que deben desarrollar 7
proyectos. La tabla a continuación resume el tiempo que demora cada ingeniero (en
horas) en completar un determinado proyecto. El problema consiste en determinar una
asignación óptima que permita realizar cada uno de los proyectos con la limitante que
por motivos estratégicos cada ingeniero debe desarrollar al menos un proyecto y en
ningún caso hacer más de 2 proyectos. Por supuesto se busca que el tiempo requerido
para realizar los 7 proyectos sea el menor posible.
Una alternativa sería buscar intuitivamente una asignación que cumpla con los requisitos
de la empresa y tenga un bajo tiempo asociado. Sin embargo, este tipo de estrategias de
resolución queda claramente acotada a problemas de tamaño menor y ni siquiera en ese
tipo de situaciones nos asegura la mejor solución posible. Por ello definiremos el
siguiente modelo de optimización de Programación Entera:

1. Variables de Decisión: Utilizamos las siguientes variables de decisión binarias

2. Función Objetivo: Minimizar el tiempo total requerido para completar los proyectos

Donde Tij (parámetros) es el tiempo (en horas) requerido por el ingeniero i en realizar el
proyecto j. Por ejemplo T(A,P5)=7.

3. Restricciones:
Cada proyecto debe ser realizado por un solo ingeniero:

Cada ingeniero debe ser al menos un proyecto y no puede hacer más de 2:

El siguiente tutorial muestra cómo resolver este problema de asignación con Solver de
Excel:
Se puede observar que para efectos de Solver, las variables de decisión binarias se
deben definir como una restricción adicional. También puede resultar que luego de
resolver Solver no encuentre inmediatamente la mejor solución posible. Para enfrentar
esta situación se puede “volver a resolver” sobre la solución que el programa nos haya
proporcionado hasta el momento para verificar si se puede lograr algo mejor. Esta
situación es la que sucedió en el tutorial y a continuación se muestra la solución óptima
(final) encontrada por Solver.

En total se requieren 56 horas para realizar los 7 proyectos. El ingeniero A realiza el P7,
el ingeniero B el P3 y P5, el ingeniero C el P6, el ingeniero D el P2 y P4 y el ingeniero E el
P1. Notar que cada proyecto es realizado por un ingeniero y cada ingeniero al menos
realiza un proyecto, pero no más de 2 proyectos.

w.youtube.com/watch?v=m-kxVx_jdmY

Ejercicio2
Ejercicio3

PESO DE LA MOCHILA: 20KG

OBJETOS PESO UTILIDAD ($)


A 20 2600
B 50 500
C 30 3900

Ejercicio4

Problema de la Mochila en Programación Entera


resuelto con OpenSolver
El Problema de la Mochila (conocido también como Knapsack Problem o simplemente
KP) es un problema clásico de la Investigación de Operaciones y en particular de la
Programación Entera. Consiste en un excursionista que debe preparar su mochila, la cual
tiene una capacidad limitada y por tanto no le permite llevar todos los artículos que
quisiera tener en la excursión. Cada artículo que el excursionista puede incluir en la
mochila le reporta una determinada utilidad. Luego el problema consiste en seleccionar
un subconjunto de objetos de forma tal que se maximice la utilidad que el excursionista
obtiene, pero sin sobrepasar la capacidad de acarrear objetos.

En este contexto existen varias aplicaciones que guardan una similitud conceptual con el
Problema de la Mochila y en consecuencia nos podemos beneficiar de la formulación y
resolución de un modelo de optimización matemática para dicho propósito.
Consideremos el siguiente ejemplo:
Problema de la Mochila
Un armador tiene un carguero con capacidad de hasta 700 toneladas. El carguero
transporta contenedores de diferentes pesos para una determinada ruta. En la ruta
actual el carguero puede transportar algunos de los siguientes contenedores:

El analista de la empresa del armador desea determinar el envío (conjunto de


contenedores) que maximiza la carga transportada. Para ello se propone el siguiente
modelo de Programación Entera:
Variables de Decisión:

Función Objetivo: Consiste en maximizar la carga que transportará el carguero.

Restricciones: El peso de la carga transportada no puede exceder la capacidad máxima


del carguero.

Al implementar computacionalmente el problema anterior haciendo uso


de OpenSolver se alcanzan los siguientes resultados:

La solución óptima consiste en transportar los contenedores C1, C2, C3, C4, C8, C9 y
C10, con un valor óptimo de 700 (toneladas), es decir, se utiliza la capacidad completa
del carguero. Notar que otra solución óptima consiste en transportar los contenedores
C1, C3, C4, C5, C6, C7, C8 y C9 lo que reporta un similar valor en la función objetivo.
Ejercicio4.-

Problema Asignación: Una universidad está programando las clases para el próximo semestre
académico y requiere buscar la mejor asignación posible de profesores a los distintos cursos que se
deben dictar. Considere que existen 5 profesores: A, B, C, D, E y 5 cursos (asignaturas): C1, C2, C3,
C4, C5. Adicionalmente, los profesores han manifestado sus preferencias por dictar los distintos cursos
en una escala de 1 a 10, donde 10 es la máxima puntuación y 1 la mínima puntuación o preferencia. Se
asume que cada profesor es apto para dictar cualquier curso, independiente del puntaje de su
preferencia. La siguiente tabla resume las puntuaciones que asigna cada profesor a cada curso:

PROFESORES
CURSOS A B C D E
C1 5 8 5 9 7
C2 7 2 3 6 8
C3 9 10 8 9 8
C4 8 7 9 7 8
C5 6 9 9 10 5
Se ha establecido como criterio que cada profesor debe dictar sólo un curso y a la vez que cada curso
obviamente debe tener un profesor. En base a lo anterior se desea encontrar la asignación de
profesores que maximize el total de las preferencias.

Potrebbero piacerti anche