950 likes | 2.27k Views
Programación Lineal Entera Binaria. Programación Lineal Entera Binaria. Programación Lineal Entera Binaria Estudiamos el problema de Programación Lineal en números enteros en el que las variables solo puedan tomar los valores «0» y «1». . Programación Lineal Entera Binaria.
E N D
Programación Lineal Entera Binaria • Programación Lineal Entera Binaria • Estudiamos el problema de Programación Lineal en números enteros en el que las variables solo puedan tomar los valores «0» y «1».
Programación Lineal Entera Binaria • Programación Lineal Entera Binaria • Estudiamos el problema de Programación Lineal en números enteros en el que las variables solo puedan tomar los valores «0» y «1». • Su resolución no se hará mediante algoritmos sino mediante las funciones Maximize[ ]/Minimize[ ] ó Nmaximize[ ]/Nminimize[ ].
Programación Lineal Entera Binaria • Programación Lineal Entera Binaria • Estudiamos el problema de Programación Lineal en números enteros en el que las variables solo puedan tomar los valores «0» y «1». • Su resolución no se hará mediante algoritmos sino mediante las funciones Maximize[ ]/Minimize[ ] ó Nmaximize[ ]/Nminimize[ ]. • Como ejemplo damos el Problema de la Mochila de interesantes aplicaciones a la Economía.
Programación Lineal Entera Binaria Introducción Consideremos el problema: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z en el que todas o algunas variables tomen valores enteros.
Programación Lineal Entera Binaria Introducción Consideremos el problema: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z en el que todas o algunas variables tomen valores enteros. Si las variables de decisión solo pueden tomar los valores 0 ó 1, entonces se llamarán binarias y el problema será de P.L. Entera Binaria:
Programación Lineal Entera Binaria Introducción Consideremos el problema: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z en el que todas o algunas variables tomen valores enteros. Si las variables de decisión solo pueden tomar los valores 0 ó 1, entonces se llamarán binarias y el problema será de P.L. Entera Binaria: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z xj = 0 ó 1
Programación Lineal Entera Binaria Ejemplo: Una empresa está estudiando la posibilidad de expansión mediante la construcción de una nueva fábrica ya sea en Ciudad 1 ó en Ciudad 2 ó en ambas ciudades. Si construye una fábrica en la Ciudad x, se puede construir un almacén en dicha Ciudad, pero solo se construiría uno. La siguiente tabla muestra el beneficio aportado por la inversión y los costes. El capital total disponible es de 10 um. Se pide encontrar la solución que maximiza el beneficio total.
Programación Lineal Entera Binaria En este ejemplo, al ser sencillo, podemos estudiar exhaustivamente todas las combinaciones posibles (n=número de variables, en nuestro caso = 16 casos posibles) y elegir la que sea más conveniente:
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4:
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0)
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4 • - Restricciones: • - Limitaciones de capital: 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4 • - Restricciones: • - Limitaciones de capital: 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4 • - Restricciones: • - Limitaciones de capital: 6x1 + 3x2 + 5x3 + 2x4 ≤ 10 • - Solo se construye un almacén: x3 + x4 ≤ 1
Programación Lineal Entera Binaria • Este problema puede ponerse en P.L. Entera: • Variables de decisión: x1,x2,x3,x4: • x1=construir fábrica en ciudad 1, x2=construir fábrica en ciudad 2 • x3=construir almacén en ciudad 1, x4=construir almacén en ciudad 2 • Son variables binarias (0 ó 1) según que la decisión sea afirmativa (xi=1) ó negativa (xi=0) • - Función objetivo: Maximizar 9x1 + 5x2 + 6x3 + 4x4 • - Restricciones: • - Limitaciones de capital: 6x1 + 3x2 + 5x3 + 2x4 ≤ 10 • - Solo se construye un almacén: x3 + x4 ≤ 1 • - Se construye el almacén solo si se construye la fábrica : • x3 ≤ x1 , x4 ≤ x2
Programación Lineal Entera Binaria Luego el modelo es: Maximizar 9x1+ 5x2+ 6x3+ 4x4 Sujeta a: 6x1+ 3x2+ 5x3+ 2x4 ≤ 10 x3+ x4≤ 1 x3≤ x1 x4≤ x2
Programación Lineal Entera Binaria Luego el modelo es: Maximizar 9x1+ 5x2+ 6x3+ 4x4 Sujeta a: 6x1+ 3x2+ 5x3+ 2x4 ≤ 10 x3+ x4≤ 1 x3≤ x1 x4≤ x2 Hemos de añadir las siguientes restricciones: Las variables son enteras: x1, x2, x3, x4 Z
Programación Lineal Entera Binaria Luego el modelo es: Maximizar 9x1+ 5x2+ 6x3+ 4x4 Sujeta a: 6x1+ 3x2+ 5x3+ 2x4 ≤ 10 x3+ x4≤ 1 x3≤ x1 x4≤ x2 Hemos de añadir las siguientes restricciones: Las variables son enteras: x1, x2, x3, x4 Z Las variables solo pueden tomar loa valores 0 ó 1: x1, x2, x3, x4 [0,1]
Programación Lineal Entera Binaria Lo resolvemos con Mathematica: Que nos indica que el beneficio se maximiza construyendo solo las fábricas 1 y 2 y ningún almacén. Hemos obtenido el mismo resultado que por el método extensivo.
Programación Lineal Entera Binaria Cambiemos ahora algunos datos:
Programación Lineal Entera Binaria Cambiemos ahora algunos datos:
Programación Lineal Entera Binaria El capital total disponible es de 10 um. El capital total disponible es de 11um
Programación Lineal Entera Binaria El capital total disponible es de 10 um. El capital total disponible es de 11um
Programación Lineal Entera Binaria En el siguiente mini-video veremos El Problema de la Mochila
Programación Lineal Entera Binaria Mini-video 2 de 2
Programación Lineal Entera Binaria Introducción Consideremos el problema: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z en el que todas o algunas variables tomen valores enteros. Si las variables de decisión solo pueden tomar los valores 0 ó 1, entonces se llamarán binarias y el problema será de P.L. Entera Binaria: Maximizar F(x) = ctx Sujeta a: A x ≤ b x ≥ 0, xi Z xj = 0 ó 1
Programación Lineal Entera Binaria El Problema de la Mochila http://es.wikipedia.org/wiki/Problema_de_la_mochila
Programación Lineal Entera Binaria • Ejemplo 1 • Sea una empresa que fabrica objetos de papelería, que en el ejercicio económico que se cierra ha obtenido un excedente de 10.000 €; se plantea invertir esta cantidad (o parte de ella) en algunos productos, teniendo en cuenta que los beneficios son: • Lápices de colores con un beneficio de 11.000 € • Gomas de borrar con un beneficio de 9.000 € • Carboncillos con un beneficio de 1.000 € • Por otra parte, los costes son: • Coste de las instalaciones para fabricar lápices de colores: 10.000 € • Coste de las instalaciones para fabricar gomas de borrar: 6.000 € • Coste de las instalaciones para fabricar carboncillos: 4.000 €
Programación Lineal Entera Binaria • Queremos elegir alguno (o varios) de los productos anteriores. Parece lógico tener en cuenta la relación bi/ci en el que consideramos los beneficios y los costes a la vez (algoritmos voraces): • En nuestro ejemplo, si calculamos este ratio, obtenemos: • Lápices de colores: 11.000/10.000 = 1.1 • Gomas de borrar: 9.000/6.000 = 1.5 • Carboncillos: 1.000/4.000 = 0.25 • De forma que elegiríamos primero “Gomas de borrar” pues su ratio es el mayor (con un coste de 6.000 €); el siguiente ratio (1.1) sobrepasa el peso de la mochila máximo, por lo que elegimos “carboncillos” (con un coste de 4.000 €), no pudiendo elegir más, ya que nuestro presupuesto era de 10.000 €.
Programación Lineal Entera Binaria Con esta solución, el beneficio obtenido es de 9.000+ 1.000= 10.000 €. Como veremos más adelante, si este problema se resuelve por técnicas de Programación Lineal, la solución obtenida no es la misma, resulta que elegimos “Lápices de colores”, el cual nos proporciona un beneficio mayor, 11.000 €. En este ejemplo, al ser sencillo, podemos estudiar exhaustivamente todas las combinaciones posibles (n=número de variables, en nuestro caso = 8 casos posibles) y elegir la que sea más conveniente:
Programación Lineal Entera Binaria • Formulación mediante Programación Lineal • Llamaremos: • n : número de objetos entre los que se puede elegir. • ci: peso del objeto “i”; cirepresenta el coste de escoger un objeto, pues va a ocupar “espacio de la mochila” y dejará fuera otros objetos. • bi: utilidad o beneficio que proporciona cada objeto. • P: capacidad de la mochila, lo que equivale al presupuesto máximo del que se dispone. • Las variables del problema, xi, son binarias, es decir, sólo pueden tomar dos valores: • El valor “1” si el objeto se incluye en la mochila • El valor “0” si el objeto se excluye de la mochila
Programación Lineal Entera Binaria Hemos de maximizar el beneficio total: b1x1+…+bnxn Pero estamos sujetos a la restricción de la capacidad de la mochila, es decir: c1x1+…+cnxn P Luego el problema le formulamos como:
Programación Lineal Entera Binaria Ejemplo 1 mediante Programación Lineal: x1: lápices de colores, x2: gomas de borrar, x3: carboncillos Objetivo: Maximizar 11000 x1+9000 x2+1000 x3 Restricciones: 10000 x1+6000 x2 + 4000 x310000 x1,x2,x3 [0,1] x1,x2,x3 Z
Programación Lineal Entera Binaria Ejemplo 1 mediante Programación Lineal: x1: lápices de colores, x2: gomas de borrar, x3: carboncillos Objetivo: Maximizar 11000 x1+9000 x2+1000 x3 Restricciones: 10000 x1+6000 x2 + 4000 x310000 x1,x2,x3 [0,1] x1,x2,x3 Z
Programación Lineal Entera Binaria Ejemplo 1 mediante Programación Lineal: x1: lápices de colores, x2: gomas de borrar, x3: carboncillos Objetivo: Maximizar 11000 x1+9000 x2+1000 x3 Restricciones: 10000 x1+6000 x2 + 4000 x310000 x1,x2,x3 [0,1] x1,x2,x3 Z