Académique Documents
Professionnel Documents
Culture Documents
VILLAHERMOSA
MATERIA ASIGNADA:
INVESTIGACIÓN DE OPERACIONES I
ALUMNO:
MAESTRO:
Introducción: ................................................................................................................................... 3
Introducción y casos de aplicación: ......................................................................................... 4
Definición y modelos de programación entera: ..................................................................... 5
Método gráfico de programación entera: ................................................................................ 6
Método de ramificación y acotación: ...................................................................................... 12
Método heurístico para problemas binarios:........................................................................ 18
Uso de software:........................................................................................................................... 20
Conclusiones: ............................................................................................................................... 29
Referencias: ................................................................................................................................... 30
Introducción:
Se presenta una útil información acerca de del método grafico ya que presento
graficas e imágenes ilustrativas para que la explicación del método sea más
significativa a su vez en los subtemas de los métodos posteriores igual los ilustro
con ejemplos de problemas resueltos a través de estos métodos para que así la
información y el conocimiento sea significativo.
Uno de los métodos importantes para resolver esos problemas, se basa en parte,
en el método simplex, Otro método es de naturaleza combinatoria y consiste en
reducir el problema original a otros más pequeños, y tal vez más fáciles, y partir el
conjunto de soluciones posibles en subconjuntos más pequeños que pueden ser
analizados más fácilmente. (Facultad de Ingeniería, 2012)
Por lo general, las aplicaciones de programación lineal entera (PLE) caen dentro de
dos categorías: directa y transformada. En la categoría directa, la naturaleza de la
situación impide la asignación de valores fraccionarios a las variables del modelo.
Por ejemplo, el problema puede implicar la determinación de si se emprende o no
un proyecto (variable binaria), o la determinación del número óptimo de máquinas
necesarias para realizar una tarea (variable general entera). En la categoría
transformada se utilizan variables enteras auxiliares para convertir analíticamente
situaciones insolubles en modelos que pueden resolverse por medio de algoritmos
de optimización disponibles.
Por ejemplo, en la secuencia de dos trabajos, A y B, en una sola máquina, el trabajo
A puede preceder al trabajo B o viceversa. La naturaleza “o” de las restricciones es
lo que hace al problema analíticamente insoluble, porque todos los algoritmos de
programación matemáticos tratan con sólo restricciones “y”. (Taha, 2012)
Programas Enteros Puros: Un modelo entero puro (PLE) es, como su nombre lo
indica, un problema en el que se exige que todas las variables de decisión tengan
valores enteros.
Para hacer la explicación del método más fácil incluí un problema resuelto para ver
así los pasos que se deben de seguir para solucionarlo.
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’
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
Tercera restricción,
0,072X + 0,027y = 108
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 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 2x2, y se pueden considerar varios métodos de solución entre
ellos:
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:
(López., 2014)
Método de ramificación y acotación:
El método B&B establece inicialmente cotas inferior y superior del valor óptimo de
la función objetivo. El mecanismo de bifurcación aumenta progresivamente el valor
de la cota inferior y disminuye también progresivamente el valor de la cota superior.
La diferencia entre estas cotas es una medida de la proximidad de la solución actual
a la óptima, si ésta existe.
A continuación se enumeran los pasos del algoritmo B&B para un PPLE Mixta:
Paso 1: Iniciación1.
Se establece una cota superior (∞) y una cota inferior (−∞) de la solución óptima.
Pasó 3: Solución
3.1 Se resuelve el siguiente problema en la lista de problemas a procesar.
Pasó 4: Acotación
4.1 Si la solución del problema actual satisface las condiciones de integralidad y el
valor óptimo de su función objetivo es menor que la cota superior actual, dicha cota
se actualiza al valor óptimo de la función objetivo del problema resuelto, y el
minimizador actual se almacena como el mejor candidato a minimizador del
problema original. En caso de maximizaciones, la cota inferior actual se actualiza al
valor óptimo de la función objetivo del problema resuelto si éste es menor que dicha
cota inferior.
4.2 Si, por el contrario, la solución obtenida no satisface las restricciones de
integralidad y el valor de la correspondiente función objetivo está entre las cotas
inferior y superior, se actualiza el valor de la cota inferior al valor de la función
objetivo del problema resuelto y se procede a bifurcar de nuevo. En caso de
maximizaciones, se actualiza el valor de la cota superior al valor de la función
objetivo del problema resuelto y se procede a bifurcar de nuevo.
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de
problemas que han de resolverse.
Pasó 5: Poda
5.1 Poda por cotas: Tiene lugar si la solución no satisface las condiciones de
integralidad y además el valor de la función objetivo del problema resuelto es mayor
que la cota superior para minimizaciones o menor que la cota inferior para
maximizaciones. En este caso no es posible obtener soluciones mediante
bifurcaciones adicionales de esa rama.
5.3 Poda por integralidad: Tiene lugar si la solución del problema actual cumple las
restricciones de integralidad.
Pasó 6: Optimalidad
Luego no sería del todo necesario seguir desarrollando el algoritmo dado que si
generamos cotas para la variable X2 del P2 en ningún caso podríamos obtener una
solución entera con valor óptimo superior a 20 (valor que reporta en la función
objetivo la actual solución entera de P1) y por tanto podríamos concluir
que X1=2 y X2=2 es la solución óptima del problema entero. No obstante el
siguiente diagrama muestra los pasos adicionales en caso que quisiera agregar
cotas adicionales a partir del P2.
La idea más general del término heurística está relacionada con la tarea de resolver
inteligentemente problemas reales usando el conocimiento disponible. La palabra
heurística proviene del griego Heurískein que puede traducirse por encontrar,
descubrir, hallar (Melián et al, 2003).
Una definición intuitiva es la propuesta por Zeneckis et al. (1981): “Las heurísticas
son procedimientos simples basados en el sentido común que se supone que
obtendrán una buena solución (no necesariamente la mejor) a un problema difícil
de un modo sencillo y rápido”.
Una característica de los métodos heurísticos es que pueden encontrar una solución
de alta calidad pero que no necesariamente es la óptima, e incluso, en muchos
casos no se llega a establecer lo cerca que está una solución heurística de la
solución óptima.
Método Húngaro:
Antes que nada cabe recordar que el método húngaro trabaja en una matriz de
costos n*m (en este caso conocida como matriz m*m, dado que el número de filas
es igual al número de columnas n = m), una vez construida esta se debe encontrar
el elemento más pequeño en cada fila de la matriz.
Una vez se cumple el procedimiento anterior se debe construir una nueva matriz
n*m, en la cual se consignarán los valores resultantes de la diferencia entre cada
costo y el valor mínimo de la fila a la cual cada costo corresponde (valor mínimo
hallado en el primer paso).
Uso de software:
El PROBLEMA
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero
y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales. ¿Cuántas
bicicletas de paseo y de montaña deberá fabricar para maximizar las utilidades?
EL MODELO MATEMÁTICO
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio: x + 2y <= 80
Función Objetivo
Una vez se haya ingresado al módulo Linear and Integer Programming, se abrirá
una ventana de inicio del módulo, tal como se muestra a continuación:
En esta ventana podremos entonces crear un nuevo problema, o cargar uno que ya
hayamos desarrollado. Una vez demos clic en "Nuevo Problema (New Problem)" se
abrirá un menú emergente que nos permitirá ingresar los parámetros básicos del
problema:
El programa requiere que se definan las especificaciones del problema, que incluye
el nombre de problema, el número de variables, el número de restricciones, el
criterio de la función objetivo, los tipos de variable por defecto, y el formato de
entrada de datos, ya sea en forma de matriz o en forma de modelo normal.
Número de variables: 2 (x , y )
Una vez se registren los parámetros y al dar clic en el botón OK, se mostrará
la siguiente ventana, en aras de utilizar las mismas variables que en el modelo,
mostraremos el método de renombrar las variables:
Desde el menú EDIT, también podremos modificar el nombre de las restricciones,
tal como se aprecia en la siguiente imagen:
En ella hemos registrado los datos que controlan nuestro problema de estudio. El
siguiente paso, consiste en resolver el problema, para ello damos clic en el botón
"Solve and Analize": Este comando resuelve el problema. Si se especifica alguna
variable como un entero o binario, el programa utilizará automáticamente el método
de Branch and Bound (Rama y Cotas) para resolver el problema. El método simplex
modificado es utilizado para resolver problemas de programación lineal continua.
Interpretar cada uno de los valores del cuadro solución, es cuan o más importante
que obtener la solución óptima, dado que de dicha interpretación podremos extraer
un buen análisis de sensibilidad:
Solution value: Valor solución, es el valor que toman las variables de decisión en
nuestra solución óptima, en este caso nos indica que se deberán producir 20
bicicletas tipo paseo y 30 bicicletas tipo montaña.
Unit Cost or Profit: El costo unitario o contribución es el valor que les fue asignado
a las variables por nosotros en la función objetivo.
Left Hand Side: Del lado izquierdo, es el valor que toma la ecuación de cada
restricción luego de reemplazar las variables que la componen por los valores
solución. Por ejemplo, la ecuación de la restricción de Acero que es x + 2y <= 80, al
reemplazar los valores solución quedará: (20) + 2(30) <= 80, el valor del lado
izquierdo será entonces 80.
Right Hand Side: Del lado derecho, es el valor asignado por nosotros a las
restricciones como máximo o mínimo recurso disponible.
Tora:
Lingo:
La programación entera tiene distintos modelos y que para cada modelo hay
distintos métodos de resolución de problemas de este estilo que el campo de
aplicación de esta programación y estilo de sistemas es muy grande y de gran ayuda
para la vida cotidiana. Me quedó claro la metodología para graficar los problemas
de este estilo y como resolverlos por el método de ramificación y acotación que en
muchas fuentes leí que este método puede dar resultados enteros pero muchas
veces no óptimos para la función objetivo y que esta era una gran desventaja al
momento de emplearlo.
Referencias: