View
250
Download
0
Category
Preview:
Citation preview
Dirección de Operaciones SESIÓN # 12: Programación Integral.
Segunda parte.
Contextualización
Estamos a punto de concluir todo el
camino que nos propusimos al inicio
del curso, pero ya está en cada uno
de nosotros el conocer o profundizar
más los contenidos que se han
presentado a lo largo del curso.
No dudemos de la importancia de la
dirección de operaciones dentro de la
administración pues como hemos visto
a lo largo del curso es un tema de
gran actualidad y que se aplica más
de lo que imaginamos.
¿Con esto terminamos?
Introducción
Dedicaremos esta sesión a
conocer, a grandes rasgos, cuatro
diferentes técnicas de solución a
problemas de programación lineal
integral o entera.
Es necesario conocer lo que se
refiere a este tipo de programación
para saber cuándo se trata de un
problema de programación lineal
entera o no y así poder utilizar la
técnica adecuada para una mejor
resolución del problema.
Técnicas de solución
Programación lineal con redondeo:
Consiste en resolver el problema como si fuera de
programación lineal continua y al final redondear la
solución óptima a alguno de los valores factibles
para que éste se convierta en un número entero.
El motivo por el cual no se aconseja utilizar esta
técnica, es porque no necesariamente la solución
puede llegar a satisfacer las restricciones del
planteamiento inicial.
En el fondo lo que se hace es relajar la condición de
integralidad dentro del problema.
Explicación
Enumeración total:
Este tipo de técnica tampoco es recomendable pues se puede llegar a dar el caso que las soluciones crezcan de forma exponencial.
La técnica consiste en dar solución al problema pero suprimiendo las condiciones de variables enteras. Si se llegara a dar el caso de que el óptimo si cumple con las condiciones de las variables que son enteras, entonces se trata del óptimo del problema entero.
Planos de corte:
También se le conoce como la técnica de corte fraccional de Gomory.
En este caso se pretende cambiar lo que se considera como el conjunto convexo de la región factible para así lograr que los puntos extremos adecuados sean todos enteros. Se le llama plano de corte pues se hacen cortes para crear los conjuntos convexos. Este cambio que se hace en dicho conjunto, no puede cortar en ninguna de las soluciones enteras que son consideradas como factibles dentro del problema original.
Enumeración parcial por ramificación y acotamiento:
Este algoritmo es un poco más complejo y por lo mismo más completo y la
metodología de resolución de esta técnica es:
Es necesario resolver el problema lineal relajado asociado. Si se llegara a
dar el caso que la solución es entera, entonces hemos encontrado la
solución óptima y si no es una solución entera, hay que iniciar el proceso
de ramificación y acotamiento.
Ramificación. Lo que se hace es crear dos subproblemas. La forma de
hacerlo es precisamente ramificando una variable.
Acotación. De los subproblemas que se han creado hay que
definir una cota para cada uno, ya sea superior o inferior para la
función objetivo.
Sondeo. Si la solución es entera, entonces ya no es necesario
seguir el procedimiento de ramificación y se comprueba si la
función objetivo es mejor que la cota actual, entonces se conserva
la nueva cota. Si se llegara a dar el caso que la función objetivo es
peor que la cota actual, entonces estamos ante una solución no
factible.
Si ya se ha logrado llegar al final de las diferentes ramas,
entonces es necesario definir cuál es la solución óptima, que en
esta caso sería aquella solución que tenga mejor función objetivo.
Ejemplo de ramificación y acotamiento
Max Z = 4X1 + 6X2
Sujeto a:
4X1 + 3X2 < 16
2X1 + 4X2 < 12
X1, X2 > 0
En primer lugar es necesario resolver el problema a través de
alguna de las diferentes herramientas que se estudiaron dentro
de la programación lineal. En caso de que la solución óptima
cumpla con el requisito de integralidad, es decir, que al menos un
valor sea entero, no sería necesario el aplicar ninguna técnica de
la programación lineal entera.
Como en este caso la solución es: X1 = 2.9 y X2 = 1,6 para que Z
tenga un valor de 20.8
La ramificación y acotamiento se dará en dos vertientes para una variable, puede ser cualquiera de las dos, en este caso sería X1 y la ramificación sería:
P1 es aproximar su valor de la solución óptima a su entero inferior más cercano para esta P1 sería 2.
P2 es aproximar su valor de la solución óptima a su entero superior más cercano en este caso será 3.
Resolviendo el problema de P1 con el nuevo valor nos da una solución óptima de X1=2, X2=2 y Z= 20.
En este caso vemos que la solución óptima es menor por .80 pero esto es normal dado que se ha acotado la región factible.
Para el caso del P2 la solución óptima sería: X1=3, X2=4/3 y Z=20.
Aquí la solución óptima se da en la ramificación de P1 pues los valores de las dos variables son enteros. En el caso del P2 un valor es entero y el otro no, de ahí que la P2 no es una solución óptima a un caso de programación lineal entera.
En caso de que en ninguno de los dos casos se encontrara una solución en dónde las dos variables tengan un valor entero, sería necesario seguir ramificando y acotando de la misma manera.
En este caso concreto se buscaba que la solución fuera de un modelo integral total, es decir, que todas las variables fueran enteras.
Conclusión
Hemos visto un ejemplo sencillo pero que de forma clara y práctica nos permite entender mejor el método de ramificación y acotamiento, dado que los modelos de redondeo y enumeración total en si mismos no requieren un algoritmo con varios pasos para desarrollarlo y porque el método de ramificación y acotamiento es más utilizado en la actualidad.
No olvidemos que existen herramientas computacionales que nos permiten lograr la solución a este tipo de problemas y por otra parte que no son tan recomendables estas técnicas dado que se pueden complicar los cálculos o no encontrar necesariamente la mejor solución.
Debemos tener claro y desarrollar el sentido común y sobre todo ponderar cuándo realmente es necesario aplicar estas técnicas o no dentro de la toma de decisiones.
Para aprender más
Miranda, S. (2011). Branch and Bound. Consultado el 14 de julio de 2013:
http://www.youtube.com/watch?v=jAl-XtxXVV4
Ruz, J. (s/f). Modelos lineales de optimización con variables enteras. En Universidad Complutense de Madrid. Consultado el 25 de julio de 2013:
http://www.fdi.ucm.es/profesor/jjruz/MasterUned/Documentos%20en%20aLF/Tema%202.pdf
Seebach, C. (2006). Programación entera I. En Pontificia Universidad Católica de Chile. Consultado el 25 de julio de 2013:
http://intrawww.ing.puc.cl/siding/public/ingcursos/cursos_pub/descarga.phtml?id_curso_ic=375&id_archivo=15318
Bibliografía
Hillier, F. y Lieberman, G. (2001) Introducción a la investigación de operaciones. (8ª edición). México: McGraw Hill.
Taha, H. (1995). Investigación de operaciones. México: Alfaomega.
Cibergrafía
Gestión de operaciones. (2011). Ejemplo del algoritmo de Branch and Bound. Consultado el 30 de julio de 2013:
http://www.gestiondeoperaciones.net/programacion-entera/ejemplo-del-algoritmo-de-branch-and-bound-ramificacion-y-acotamiento/
Recommended