Está en la página 1de 14

“AÑO DEL SERVICIO AL

CIUDADANO”

Universidad
Nacional Del Santa

Facultad:
Ingeniería de Sistemas e
Informática
Alumnos:

 Jara Espinoza Jhoselyn


 Cubeños Flores Alexander
 Lopez Zapata Francisco
 Iraita Cavero José
 Huatta Grados Rosali
 Chirinos Luis
 Alfaro Randdy
Profesor:
Juan Pablo Sánchez
Curso:
Investigación de operaciones I

Tema:
Programación Entera

Ciclo:
VI
Noviembre, 2017

1
ÍNDICE

INTRODUCCIÓN ...............................................................................................................................
1. Marco Teórico ..................................................................................................................... 4
1.1 PROGRAMACION ENTERA ................................................................................... 4
2.2 TIPOS DE PROGRAMACIÓN ENTERA ............................................................... 4
2.2.1 Programación Entera Pura .................................................................................... 4
2.2.2 Programación Entera Mixta .................................................................................. 5
2.2.3 Programación Entera Binaria ................................................................................ 5
2.3 MODELOS BÁSICOS .................................................. Error! Bookmark not defined.
2.3.1 Problema de la Mochila .......................................................................................... 6
2.3.2 Problema del agente viajero ................................................................................... 9
2.4 MÉTODOS DE SOLUCIÓN ................................................................................... 11
2.4.1 Enumeración Exhaustiva...................................................................................... 11
2.4.2 Método Gráfico...................................................................................................... 11
2.4.3 Método de Ramificar y acotar.............................................................................. 11
2.4.4 Método de plano de Corte .................................................................................... 11
3. Conclusiones ...................................................................................................................... 11
BIBLIOGRAFIA .............................................................................................................................. 14

2
INTRODUCCIÓN

Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser valores
enteros como por ejemplo: números de unidades a producir por máquina, número de máquinas
necesarias, etc. Parte del problema de la programación entera radica en la diferencia esencial que
existe la programación lineal y la entera, en la programación lineal se maximiza o minimiza una
función sobre una región de factibilidad convexa, mientras que al usar los métodos de
programación entera se maximiza una función sobre una región de factibilidad que generalmente
no es convexa. De tal manera que la programación entera tiene más complicaciones que la
programación lineal. En este tema se presenta un tipo de problemas formalmente similares a los
problemas de Programación Lineal, ya que en su descripción solo se establecen expresiones
lineales. Sin embargo no responden a problemas lineales ya que algunas (o todas) las variables
del problema toman valores que no están en un conjunto continuo.

Tras introducir el tipo de problemas se dedica un importante apartado para presentar las
posibilidades de modelado que esta herramienta proporciona: problemas binarios, problemas de
carga, problemas con restricciones condicionales o con dicotomías, etc.

En algunos casos se requiere que la solución óptima se componga de valores enteros para algunas
de las variables. La resolución de este problema se obtiene analizando las posibles alternativas
de valores enteros de esas variables en un entorno alrededor de la solución obtenida
considerando las variables reales. Muchas veces la solución del programa lineal truncado está
lejos de ser el óptimo entero, por lo que se hace necesario usar algún algoritmo para hallar esta
solución de forma exacta. El más famoso es el método de “Ramificación y Acotación” o “Branch
and Bound” por su nombre en inglés. El método de Ramificación y Acotación, parte de la adición
de nuevas restricciones para cada variable de decisión (acotar) que al ser evaluado
independientemente (ramificar) lleva al óptimo entero. La programación entera se divide en 3
tipos de modelos:

 Programación Entera Pura: Todas las variables de decisión tienen valores enteros.

 Programación Entera Mixta (PEM): Algunas de las variables de decisión tienen valores enteros.
Las demás cumplen con la suposición de divisibilidad.

 Programación Entera Binaria (PEB): Utiliza variables binarias.

3
1. Marco Teórico

1.1 PROGRAMACION 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.

 Son aquellos en que todas las variables únicamente pueden tomar valores
enteros. También se distinguen dentro de estos los problemas totalmente
enteros como aquellos en que tanto las variables como todos los
coeficientes que intervienen en el problema han de ser enteros.

1.2 TIPOS DE PROGRAMACIÓN ENTERA

1.2.1 Programación Entera Pura


Son aquellos en que todas las variables de decisión únicamente pueden
tomar valores enteros. También se distinguen dentro de estos los programas
totalmente enteros como aquellos en que tanto las variables como todos los
coeficientes que intervienen en el programa han de ser enteros.

Por ejemplo:
Min z = 6x1 + 5x2 + 4x3
S.a.

108x1 + 92x2 + 58x3 ≥ 576


7x1 + 18x2 + 22x3 ≥ 83
x1, x2, x3 ≥ 0
xi ∈ Ɀ

Un ejemplo de ello son las siguientes aplicaciones:


 Problema de Asignación
 Problema de Corte de Rollos
 Selección de Invitados a una Boda
 Programación de la Explotación Forestal
 Problema de la Mochila

4
1.2.2 Programación Entera Mixta
Un modelo de programación lineal entera mixta (PLEM) es un problema en
el que solo se requieren que algunas variables tengan valores enteros
mientras que otras pueden asumir cualquier valor continuo. Por ejemplo, los
modelos de dicotomía.
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).
Por ejemplo:
Min z = 6x1 + 5x2 + 4x3
S.a.
108x1 + 92x2 + 58x3 ≥ 576
7x1 + 18x2 + 22x3 ≥ 83
x1, x2, x3 ≥ 0; x1 y x2 enteros

Un ejemplo de ello son las siguientes aplicaciones:


 Incorporación de Costos Fijos
 Problemas de Localización y Transporte
 Problema de Generación Eléctrica

1.2.3 Programación Entera Binaria


En estos se restringe el valor de las variables a 0 y 1. Son de particular interés
debido a que se pueden usar las variables 0 – 1 para representar decisiones
dicotómicas (si o no). Diversos problemas de asignación, ubicación de
plantas, planes de producción y elaboración de cartera, etc. son de
programación lineal entera 0 – 1.

Por ejemplo:

Max z = 40x1 + 70x2 + 80x3 + 100x4


S.a.
10x1 + 30x2 + 10x3 + 20x4 ≤ 50
5x1 + 20x2 + 20x3 + 10x4 ≤ 45
20x1 + 10x2 + 27x3 + 40x4 ≤ 70
10x1 + 10x2 + 20x3 + 20x4 ≤ 40
10x2 + 10x3 + 20x4 ≤ 30
xi = 0 o 1 ; i = 1, …, 4

5
1.3 Criterio del tipo del problema
En general, un problema de Programación Lineal Entera puede surgir por varios
motivos:
Directos:
 Las variables que se utilizan son cuantitativas y enteras. Si el problema de
decisión involucra variables enteras.
Codificados:
 Se utilizan variables enteras para representar el cumplimiento o no de
ciertas condiciones (normalmente son variables 0− 1). Cuando se trata de
un problema que contiene además de aspectos cuantitativos, alguna
consideración de tipo cualitativos, y por ello para tratar este tipo de aspectos
se requiere el uso de variable entera o binaria.

Transformados:
 Las variables enteras aparecen para facilitar la modelización de algunas
condiciones (implicaciones, disyunciones, etc.). Cuando el problema no
incluye variables enteras, pero para ser tratado analíticamente requiere el
uso de variable enteras “artificiales”.

1.4 Aplicaciones

1.4.1 Problema de la Mochila


Este es un problema clásico de optimización matemática que puede resolverse usando
programación binaria. Su enunciado es simple: existe un conjunto de n productos
diferentes y cada producto tiene un costo cj y un volumen aj . Se desea colocar algunos
de los productos en una mochila de volumen b de tal forma que el costo asociado a los
productos colocados en la mochila sea máximo. El estudio de este problema es interesante
porque está relacionado con los modelos matemáticos de otros problemas como por
ejemplo el problema de inversión de capital y el de carga de vehículos. Otro aspecto
importante es que otros problemas de programación lineal entera (con variables enteras y
limitadas) pueden transformarse en un problema binario similar al de la mochila con una
sola restricción y variables binarias. En consecuencia, cualquier problema que pueda ser
transformado a una formulación similar a la del problema de la mochila, puede
aprovechar todo el conocimiento y todos los desarrollos que existen alrededor de este
problema. El modelo matemático del problema de la mochila es fácil de entender y de

6
formular, aunque puede ser difícil de resolver cuando n asume valores muy grandes. Sean
los xj = {0, 1} las variables de decisión en donde xj = 1 significa que el producto j es
colocado en la mochila y xj = 0 que el producto j no es colocado. En función de estas
variables de decisión, el modelo matemático asume la siguiente forma:

s.a.

Si el problema de la mochila tiene n = 3 variables (3 productos para seleccionar cuales se


colocan en la mochila), entonces se define xj ∈ {0, 1} para j = 1, 2 y 3. Aparecen entonces
2 3 = 8 soluciones candidatas (algunas factibles y otras infactibles). Estas soluciones son
las siguientes:

En el ejemplo anterior, la solución [0, 1, 1] se interpreta de la siguiente forma: deben


colocarse en la mochila los productos 2 y 3 y no debe colocarse el producto 1. A
continuación se presenta un ejemplo numérico para este problema con n = 6 y se muestra
un procedimiento que combina algunas ideas como relajación y adición de cortes
especializados.

Utilizamos una heurística inicial para encontrar una solución factible entera de buena
calidad. Esta solución se convierte en una limitante inferior del problema PLE, es decir,
la solución ´optima entera debe ser mayor o igual a este resultado. Para este ejemplo
vamos a utilizar uno de los algoritmos heurísticos constructivos más populares: el
algoritmo goloso. Este algoritmo, también denominado paso a paso, consiste en ir

7
adicionando, generalmente uno a uno, componentes individuales de la solución hasta
encontrar una solución (configuración) factible, a través de un proceso que agrega
iterativamente elementos a una estructura, inicialmente vacía, que representa a la
solución. La estrategia del algoritmo goloso consiste en seleccionar, en cada paso, aquella
propuesta que produce el máximo beneficio en dicho paso. El algoritmo goloso finaliza
cuando al adicionar un nuevo elemento, la solución empeora o se vuelve infactible. En el
caso del problema de la mochila se aplica la segunda opción. Se presenta un algoritmo
goloso elemental que permite mostrar la lógica de este algoritmo constructivo. La
estrategia del algoritmo goloso propuesto es la siguiente: colocar en la mochila los
productos en cierto orden de prioridad, colocando primero aquellos que tienen la mayor
relación costo/volumen. Este factor se denomina indicador de sensibilidad. Por lo tanto,
en cada paso damos el valor de 1 a aquella variable xj que tiene la mayor relación: cj ai ,
es decir, preferimos los productos que tienen alto valor de venta y pequeño volumen. Para
este ejemplo, el orden de prioridad es que aparece en la tercera columna de la siguiente
tabla:

En cada paso del algoritmo goloso una variable xj asume el valor de 1 y el proceso termina
cuando no existe más recurso disponible (no existe espacio en la mochila). Para este
ejemplo, el producto x2 es el que produce el mayor beneficio y por lo tanto es el primer
producto que se agrega a la mochila. Al agregarlo ocupa 4 unidades de volumen y deja
disponible 14 - 4 = 10 unidades de volumen (recurso).

Para este ejemplo, la secuencia de trabajo del algoritmo seria la siguiente:

• Paso 1. Se agrega el producto 2: x2 = 1 =⇒ z(x) = 14 y recurso disponible = 10. 31

• Paso 2. Se agrega el producto 4: x4 = 1 =⇒ z(x) = 20 y recurso disponible = 8.

• Paso 3. Se agrega el producto 1: x1 = 1 =⇒ z(x) = 32 y recurso disponible = 2.

8
El algoritmo termina porque el recurso disponible es insuficiente para que otra variable
pueda asumir el valor 1. Por lo tanto, el algoritmo goloso elemental encuentra la siguiente
solución:

En el problema de la mochila pueden usarse otros indicadores de sensibilidad para definir


el orden de prioridad. Por ejemplo, colocar primero los productos de mayor costo o
colocar primero los productos de menor volumen. Estas opciones pueden conducir al
problema a soluciones iniciales diferentes.

1.4.2 Problema del agente viajero


Este es otro de los problemas tradicionales del área de la investigación de operaciones y
que pertenece a la categoría de la programación lineal entera con variables binarias. Este
problema puede ser enunciado de la siguiente forma: Un agente viajero debe realizar un
recorrido en el que debe visitar un número predeterminado de ciudades.
El agente comienza el recorrido en su ciudad de origen, debe visitar todas las ciudades,
una sola vez, y debe regresar de nuevo a su ciudad de origen. Se asume que existen
caminos entre cada ciudad y cada una de las demás ciudades, y que la distancia entre dos
ciudades es diferente en las dos direcciones.
Para representar matemáticamente el problema se define inicialmente el conjunto de
ciudades (que también denominaremos nodos): V = {1, 2, 3, . . . , n}, donde n es el número
de ciudades. Definimos A como el conjunto de caminos (arcos o aristas) que unen cada
par de ciudades, con elementos (i, j) ∈ A. Al conjunto de caminos se le asocia el vector
cij , cuyos elementos representan la distancia de cada camino.
De acuerdo con el enunciado, el esfuerzo necesario para ir de la ciudad i a la ciudad j: cij
no necesariamente es igual a cji. El modelo matemático que permite encontrar el recorrido
de distancia mínima es el siguiente: Representamos las variables de decisión como xij ,
donde:

9
De acuerdo con el enunciado del problema, podemos definir los siguientes tipos de
restricciones:
1. A cada ciudad solo se llega desde una ´única ciudad anterior. Esto porque cada ciudad
es visitada una sola vez.

2. Desde la ciudad i se puede pasar a una única ciudad (de la ciudad i podemos salir por
un único camino):

Por lo tanto, se deben incorporar restricciones que eviten subtours. Observe que un
subtour puede existir solamente si se cumplen las siguientes dos condiciones:

a) Existen subconjuntos U de ciudades que contienen entre 2 o el número total menos 2


ciudades, es decir, existe U ⊆ V con la condición: 2 ≤ |U| ≤ |V | − 2.

b) No existen conexiones entre el subconjunto de ciudades U y el subconjunto de ciudades


{V − U}, es decir:

10
1.5 MÉTODOS DE SOLUCIÓN

1.5.1 Enumeración Exhaustiva


1.5.2 Método Gráfico
1.5.3 Método de Ramificar y acotar
1.5.4 Método de plano de Corte

2. Conclusiones

Los problemas de programación entera surgen con frecuencia cuando los valores de
algunas o todas las variables de decisión deben restringirse a valores enteros. Existen
también muchas aplicaciones que necesitan decisiones de sí o no - incluyendo las
relaciones combinatorias que se puedan expresar en términos de tales decisiones - que se
pueden representar por variables binarias (0-1). Estos problemas son más difíciles de lo
que serían sin la restricción de valores enteros, de manera que los algoritmos disponibles
para programación entera, en general, son mucho menos eficientes que el método
simplex. Los factores que determinan el tiempo de cálculo son el número de variables
enteras y la estructura del problema. Para un número fijo de variables enteras, casi
siempre es más fácil resolver problemas de PEB que problemas con variables enteras
generales, pero agregar variables continuas (PEM) puede no significar un incremento en
el tiempo de cálculo. Para problemas especiales de PEB que contienen alguna estructura
especial que se puede aprovechar mediante un algoritmo especial, es posible resolver
problemas muy grandes (muy por encima de mil variables binarias) en forma rutinaria.
Puede ser que otros problemas mucho más pequeños sin estructura especial no e puedan
resolver.

11
En la actualidad es común que se disponga de paquetes de computadora para algoritmos
de programación entera en el software de programación matemática. EStos algoritmos
casi siempre se basan en la técnica de ramificación y acotamiento o en alguna variación
de ésta.

12
3. Recomendaciones

13
BIBLIOGRAFIA

Resumen de la Programación Entera, http://jhanichavez.blogspot.pe/2011/04/resumen-


programacion-entera.html
Conclusiones acerca de la Programación Entera,
http://lainvestigaciondeoperaciones.blogspot.pe/
Definición Programación Entera,
http://www.est.uc3m.es/esp/nueva_docencia/comp_col_leg/ing_info/io/doc_generica/ar
chivos/pe.pdf
Definición Programación Entera,
http://datateca.unad.edu.co/contenidos/102016/CONTENIDOS/Exe_nuevo/leccin_6_pr
ogramacin_entera_pura.html
Definición Programación Entera Binaria,
http://datateca.unad.edu.co/contenidos/102016/CONTENIDOS/Exe_nuevo/leccin_8_pr
ogramacin_entera_binaria.html
Definición Problema de la mochila, http://www.utp.edu.co/~aescobar/cap1PLE

14

También podría gustarte