Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CIUDADANO”
Universidad
Nacional Del Santa
Facultad:
Ingeniería de Sistemas e
Informática
Alumnos:
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.
3
1. Marco Teórico
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.
Por ejemplo:
Min z = 6x1 + 5x2 + 4x3
S.a.
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
Por ejemplo:
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
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.
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).
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:
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:
10
1.5 MÉTODOS DE SOLUCIÓN
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
14