Problema de La Mochila

Problema de la mochila El problema de la mochila es un problema de programación entera, estando ésta última dentro del c

Views 177 Downloads 62 File size 558KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Problema de la mochila El problema de la mochila es un problema de programación entera, estando ésta última dentro del campo de la programación matemática y consiste en escoger un conjunto de artículos para llenar una mochila de modo de que se cumplan ciertas restricciones. Definición Un problema típico de programación entera es el que nos ocupa, “el problema de la mochila”, que responde a la siguiente situación: imagínese hacer una excursión a la que solo podemos llevar una mochila que, lógicamente, tiene una capacidad limitada. Cada objeto que introducimos ocupa un volumen dentro de la misma y en contrapartida durante el viaje nos proporcionará un beneficio o utilidad (ejemplo: una cantimplora), el problema surge cuando debemos elegir qué objetos seleccionar para llevar en la mochila de forma que nuestro beneficio sea máximo (tengamos todo lo necesario) sin exceder su capacidad.

Esta situación se presenta con cierta frecuencia en los ámbitos económico e industrial, donde la mochila suele representar la restricción presupuestaria (cantidad máxima de recursos económicos de los que se dispone) y donde la utilidad de los objetos seleccionados se equipara a un beneficio económico por adquirir o llevar a cabo ciertas acciones. Veamos a continuación un ejemplo de la aplicación del planteamiento de la mochila al ámbito económico. Ejemplo: una empresa que fabrica lapiceros, “Escribe Bien S.A.” que en el ejercicio económico que se cierra ha obtenido un excedente de 300.000€ (su beneficio neto, una vez descontados los impuestos y retribuidos los fondos propios es de 300.000€), esto le hace replantearse una posible inversión productiva (ampliar la capacidad productiva, ampliar la fábrica, contratar más trabajadores,....) que le permita incrementar su cartera de productos (número de productos que tiene en el mercado). El gerente de la empresa, Don L, reúne a sus asesores financieros y comerciales para que determinen de forma conjunta qué productos serán los escogidos para la ampliación de cartera. Los asesores comerciales sugieren los siguientes productos, basándose en estudios de mercado que han realizado para estimar la cifra de negocios que cada nuevo producto generará: - Lápices de colores con un beneficio de 200.000 €, esta cuantía es la que relacionamos con la utilidad que mencionábamos en la definición. - Gomas de borrar con un beneficio de 100.000 € - Minas para portaminas con un beneficio de 250.000 € - Carboncillos con un beneficio de 150.000 €

Por su parte, los asesores financieros han estudiado los costes que implica reformar las instalaciones productivas para poder incrementar la cartera de productos, estos costes se podrían equiparar al volumen que ocupan los objetos dentro de la mochila, por tanto, la suma de estos costes deberá ser menor a la capacidad de la mochila, en este caso, los recursos financieros sobrantes: 300.000€. - Coste de las instalaciones para fabricar lápices de colores: 75.000 € - Coste de las instalaciones para fabricar gomas de borrar: 150.000 € - Coste de las instalaciones para fabricar minas para portaminas: 100.000 € - Coste de las instalaciones para fabricar carboncillos: 50.000 €

Intuitivamente escogerá fabricar aquel producto que mayores beneficios le dé, si con la inversión en la fabricación de ese nuevo producto no consume los 300.000 € podrá plantearse aumentar aún más su cartera y así sucesivamente mientras le resten recursos. Formulación

Para facilitar la comprensión del lector, antes de incorporar a este escrito la formulación del problema, analizaremos las partes de las que se compone la misma. Datos del problema - n: número de objetos entre los que se puede elegir. - ci: peso del objeto “i” - se refiere el objeto “i”-ésimo que no es más que una forma de hacer referencia a un objeto cualquiera que pueda ser incluido en la mochila -, es decir, ci representa el coste de escoger un objeto, en tanto en cuanto va a ocupar un “espacio de la mochila” que dejará fuera otros objetos. - bi: utilidad o beneficio que proporciona cada objeto, de nuevo se hace referencia al objeto i-ésimo. - P: capacidad de la mochila, equivale al presupuesto máximo del que se dispone. Variables a tener en cuenta

Los elementos a introducir en la mochila van a ser nuestras variables objeto de análisis, cada variable la denotaremos como xi. El rasgo más importante de nuestras xi es que se tratan de variables dicotómicas o binaria, es decir, sólo pueden tomar dos valores, en este caso, escogeremos el valor “1” (si el objeto se incluye en la mochila) ó “0” (si el objeto se excluye de la mochila) Restricciones

La restricción vendrá marcada por la capacidad máxima de la mochila, de tal forma que la suma de todos los objetos multiplicados por el espacio que ocupan en la mochila no podrá exceder dicha capacidad máxima. Su formulación matemática es la que sigue:

Función a maximizar

Tal y como se expresa en la definición, el objetivo de este problema es seleccionar aquellos objetos que introducidos en la mochila nos proporcionan una mayor utilidad. En otras palabras, lo que debemos hacer es maximizar la utilidad de nuestra mochila. Si redefinimos el problema introduciendo los elementos que mencionamos en las líneas precedentes llegaremos a la siguiente formulación: “El problema de la mochila consiste en llenar una mochila con n objetos. Cada objeto i tiene un peso determinado ci siempre positivo y una utilidad o valor asociado, también positivo, bi. Se ha de considerar además que la mochila tiene una capacidad limitada P, por tanto, se han de escoger aquellos objetos xi que maximicen la utilidad de quien llena la mochila sin exceder su capacidad”. Ahora procederemos a formular el problema de la mochila:

Nota: pueden existir otras restricciones técnicas que nada tengan que ver con las anteriormente citadas que serían comunes a cualquier problema de Programación Matemática

Métodos de resolución Este problema se ha resuelto tradicionalmente mediante programación lineal entera. El hecho de que se trate de programación lineal hace referencia a que la función a optimizar y las inecuaciones que constituyen las restricciones han de ser lineales, es decir, han de ser funciones cuyas incógnitas estén elevadas exclusivamente a la unidad. Existe otra forma de resolver este tipo de problema, a través de los denominados algoritmos voraces. Una aproximación voraz consiste en que cada elemento a considerar se evalúa una única vez, siendo descartado o seleccionado, de tal forma que si es seleccionado forma parte de la solución, y si es descartado, no forma parte de la solución ni volverá a ser considerado para la misma. Con este método no siempre es posible dar una solución a un problema. Ejemplo: si continuamos con el ejemplo de “Escribe bien S.A.” vemos que la solución intuitiva que aportamos se corresponde con el método de algoritmos voraces comentado en el párrafo anterior. Si quisiéramos resolver el problema mediante programación lineal entera tendríamos que plantear el modelo, del mismo modo que hicimos con Costuritas S.L. al comentar cómo se expresa un problema que solucionar por este método. Otro sistema para resolver el problema de la mochila es mediante algoritmos genéticos que son métodos de optimización que tratan de hallar (xi,...,xn) tales que sea máximo.

Planteamiento del problema El Club Baloncesto Unicaja de Málaga ante la lesión de Daniel Santiago y la escasa aportación del pívot brasileño Vitor Faverani se plantea reforzar el juego interior para la disputa de los play-offs por el título a partir del 17 de mayo, para ello la secretaria técnica del equipo ha sondeado el mercado y ha encontrado a 5 jugadores que pueden adaptarse a lo requerido por el entrenador. Para reforzar el equipo el Unicaja dispone de un presupuesto máximo de 50.000 $ / mes. En la siguiente tabla aparece una relación de los candidatos a ser fichados junto con su aportación esperada y el sueldo que percibirían. JUGADOR/EQUIPO SUELDO APORTACIÓN Esteban Batista (Hawks) 50000 $ 15 Jared Reiner (Sioux Falls) 25200 $ 8 Chriss Burgess (Ulsan Phoebus) 36000 $ 15 Marcus Goree (Benetton) 47000 $ 17 K.C. Walekowski (Farho Vigo) 12000 $ 7 Como puede apreciarse, en este caso, estamos aplicando el problema de la mochila a una situación de índole económico. Nuestra intención es elegir los mejores jugadores – aquellos cuya aportación es mayor, es decir, los que proporcionan una mayor utilidad – para el Unicaja optimizando también el desembolso que conlleva una nueva contratación. Sin perder en ningún momento de vista la restricción de 50.000 $.

Formulación del problema Una vez se ha planteado el problema, el siguiente paso lógico es formularlo en términos matemáticos, recuérdese que se está intentando llegar a una solución cuantitativa concreta y no simplemente intuitiva. Maximizar 15x1 + 8x2 + 15x3 + 17x4 +7x5 sujeto a: 50000x1 + 25200x2 + 36000x3 + 47000x4 + 12000x5 < 50000 x1,x2,x3,x4,x5 Є {0,1}

siendo: x1 Esteban Batista (Hawks) x2 Jared Reiner (Sioux Falls) x3 Chriss Burgess (Ulsan Phoebus) x4 Marcus Goree (Benetton) x5 K.C. Walekowski (Farho Vigo)

El conjunto de ecuaciones que aparecen en las líneas precedentes constituyen la formulación matemática del problema que estamos tratando de resolver. Para una mejor comprensión del lector, analizaremos lo que representa cada una de ellas. La primera ecuación: 15x1 + 8x2 + 15x3 + 17x4 +7x5 es la suma de las utilidades que reporta cada jugador, representa, por tanto, la utilidad que percibirá Unicaja en función de la combinación de jugadores que elija, puesto que se trata de la utilidad (en este caso, estará medida por el número de partidos que el jugador haga ganar o en los que tenga un peso importante) al club de Baloncesto le interesará que sea lo mayor posible. De ahí que el objetivo sea maximizar la función. Las otras dos inecuaciones representan el conjunto de restricciones del problema, la primera de ella: 50.000x1 + 25.200x2 + 36.000x3 + 47.000x4 + 12.000x5 < 50.000, se corresponde con la expresión [Sumatoria (ci*xi) desde i=1 hasta n] < P, donde, los ci o pesos del objeto “i”, se corresponden con los salarios de cada jugador y las xi representan a cada jugador, al igual que ocurre en la ecuación anterior. P es la restricción presupuestaria del equipo, es decir, son los 50.000 $ mensuales de los que puede disponer para remunerar a sus nuevos jugadores. La última inecuación: x1,x2,x3,x4,x5 Є {0,1}, trata de indicar que estamos ante un problema dicotómico en el que cada variable puede tomar sólo el valor 1 o el valor 0. En este caso, si x toma el valor 1 querrá decir que el jugador es contratado y si toma el valor 0, será señal de que el club prefiere prescindir de él.

Solución del problema planteado El problema de elección que afronta el Club Baloncesto Unicaja se puede resolver por distintas vías: - Por el método tradicional: a través de la maximización del problema anteriormente formulado mediante métodos de programación lineal entera. - Por algoritmos: existen tipos de algoritmos (genéticos, voraces), pero en esta ocasión mostraremos el algoritmo más intuitivo y sencillo de ver. Este algoritmo es el denominado "voraz". Dejamos a un lado el algoritmo genético ya que al ser poco intuitivo y tener cierta complejidad (no en su teoría, sino en su práctica) podría hacer que el lector tuviera cierta reticencia a continuar con su lectura y comprensión. Método tradicional (Programación Lineal Entera)

Retomemos el problema formulado e reinterpretemos dicha formulación para comprender mejor cómo vamos a resolver el problema de elección de jugadores (vamos a repetir de forma resumida el desarrollo del punto 3.2.) Maximizar 15x1 + 8x2 + 15x3 + 17x4 +7x5 sujeto a: 50000x1 + 25200x2 + 36000x3 + 47000x4 + 12000x5 < 50000 x1,x2,x3,x4,x5 Є {0,1}

Lo que pretendemos es maximizar el valor que los jugadores contratados aportarían al equipo, teniendo en cuenta que hay un presupuesto al que ajustarse (50000 $/mes). No

hemos de olvidar que la solución a este problema habrá de darse en números enteros, ya que es imposible contratar una porción de jugador. ¿Por qué las variables sólo pueden tomar los valores “0” ó “1”? - Si x =0 el jugador no debe ser contratado, ya que su aportación no maximizaría el valor aportado al equipo. - Si x =1 el jugador deberá ser contratado, ya que su aportación maximizará el valor que los jugadores dan al equipo.

Con todo esto, y comprendida la formulación planteada, procedamos a resolver el problema con los métodos tradicionales. Aquí utilizaremos el programa Mathematica 5.0, el cual nos dará una rapidísima solución sin ninguna dificultad en su obtención. Así lo introduciremos en Mathematica: P =NMaximize[{15x1+8x2+15x3+17x4+7x5, 50000x1+25200x2+36000x3+47000x4+12000x5≤50000, x1≥0, x2≥0, x3≥0, x4≥0, x5≥0, x1≤1, x2≤1, x3≤1, x4≤1, x5≤1, x1 Integers, x2 Integers, x3 Integers, x4 Integers, x5 Integers},{x1,x2,x3,x4,x5}] Y la solución que obtendremos será la siguiente: {22., {x1->0, x2->0, x3->1, x4->0, x5->1}

Esto es, contrataremos a los jugadores correspondientes a las variables 3 y 5: Chriss Burgess (del Ulsan Phoebus) y K.C. Walekowski (del Farho Vigo). Y haciendo esto obtendremos una aportación (utilidad para el equipo)de los jugadores al equipo de 22.

Algoritmos voraces

El método de algoritmo voraces es muy parecido a aquello que llaman "la cuenta de la vieja". Se trata, simplemente, de elegir la opción más lógica de acuerdo con un criterio. Para este ejemplo escogeremos como criterio el ratio "Aportación/Sueldo". Parece lógico ponderarlo así, ya que tenemos en cuenta ambos factores en la decisión. Cuanto más alto sea este ratio, preferible será contratar a este jugador. Reconsideraremos el sueldo, dividiéndolo por 1000 para hacer el ratio más operativo, lo que obtendremos será llamado *Sueldo*. Jugador (Equipo) *Sueldo* Aportación Ratio Esteban Batista (Hawks) 50 15 0,3000 Jared Reiner (Sioux Falls) 25,2 8 0,3175 Chriss Burgess (Ulsan Phoebus) 36 15 0,4167 Marcus Goree (Benetton) 47 17 0,3617

K.C. Walekowski (Farho Vigo) 12 7 0,5833

Como hemos dicho, escogeremos aquellos jugadores con mejor ratio hasta agotar el presupuesto. - K.C. Walekowski: ratio =0.58333, sueldo = 12000 $ - Chriss Burgess: ratio =0.41666, sueldo = 36000 $, total acumulado = 48000 $

Como no hay más jugadores cuyo sueldo pueda entrar en presupuesto, éste es nuestro resultado definitivo por algoritmos voraces. El resultado que nos ofrece el método de algoritmos voraces coincide con el obtenido por el método tradicional. Aquí lógica y matemáticas puras coinciden y se refrendan mutuamente, por lo que la directiva del club no deberá tener dudas en la contratación de nuestros dos nuevos fichajes: - K.C. Walekowski - Chriss Burgess

¿ QUE ES LA INVESTIGACIÓN DE OPERACIONES? A continuación se expone la definición de Investigación de Operaciones según los siguientes autores: TAHA. La Investigación de Operaciones aspira a determinar el mejor curso de acción óptimo de un problema de decisión con la restricción de recursos limitados, aplicando técnicas matemáticas para representar por medio de un modelo y analizar problemas de decisión. HILLIER - LIEBERMAN. Significa hacer investigación sobre las operaciones referentes a la conducción y coordinación de actividades dentro de una organización aplicada a una gama extraordinariamente amplia. PRAWDA. Es la aplicación por grupos interdisciplinarios de Método Científico a problemas relacionados con el control de las organizaciones o de sistemas en relación al hombre-máquina, con el fin de producir soluciones óptimas para dichas organizaciones. NAMAKFOROOSH. La investigación de Operaciones es la aplicación del Método Científico a los problemas de decisión de las empresas y otras organizaciones, incluyendo el gobierno y la milicia. MOSKOWITZ - WRIGHT. La Investigación de Operaciones toma al Método Científico aplicado a la solución de problemas y la toma de decisiones de la gerencia en función a la construcción de un modelo simbólico examinando y analizando entre relaciones que lleguen a una técnica en la toma de decisiones en base a los resultados óptimos. THIERAUF Y GROSSE. La Investigación de Operaciones utiliza el enfoque planeado (Método Científico) y un grupo interdisciplinario a fin de representar las complicadas relaciones funcionales como modelos matemáticos para suministrar una base cuantitativa en la toma de decisiones, descubrir nuevos problemas para un análisis cuantitativo. 1.- EL MÉTODO ANALÍTICO, hace el análisis matemático clásico,es utilizado para obtener soluciones en forma deductiva, (llamadas también soluciones analíticas), o sea, que parte de lo general a lo particular. 2.- EL MÉTODO NUMÉRICO, se aplica cuando la solución no es posible obtenerla de manera deductiva, se utilizará, el análisis numérico, (Iterativo) o solución numérica en forma inductiva, que va de lo particular a lo general. La solución de tipo iterativo se aproxima a la solución óptima con un margen de error permitido, basado en una serie de pruebas sobre la misma lógica de solución, en relación a resultados de una prueba anterior. 3.- Existen los MÉTODOS DE SIMULACIÓN, que son los que imitan al sistema real, es muy útil en la solución de problemas complejos, de riesgo y bajo incertidumbre. La Técnica de Montecarlo, es un método de solución que utiliza los problemas probabilísticos de simulación. Esta técnica es utilizada donde no se puede hacer uso de los métodos de solución numérica o de solución analítica, ya que se generan números aleatorios para obtener valores muestrales en base a una distribución de probabilidad. La Teoría de Juegos, es un sistema donde existen varios grupos de decisión que reaccionan entre sí. Existen Lenguajes de Programación para la Simulación, como: DYNAMO, FORTRAN, GPSS, SIMSCRIPT, etc.

IV. COMPROBACIÓN DEL MODELO Y DE LA SOLUCIÓN. El modelo debe probar su validez, antes de ser implantado, observando si los resultados predicen o no, con cierta aproximación o exactitud, los efectos en relación a las diferentes alternativas de solución. Si los resultados del modelo, se alejan bastante de los resultados reales del sistema, se debe tomar en cuenta lo siguiente: Determinar si el modelo señala el rendimiento del sistema según una o más variables que afectan a dicho rendimiento. Corroborar si el modelo no ha omitido alguna variable que tenga efecto importante en el rendimiento del sistema. Comprobar si el modelo expresa realmente la relación real existente entre la medida de rendimiento y la variables - Verificar si los parámetros incluídos en el modelo no estén siendo evaluados adecuadamente. Para comprobar la solución del modelo, deberá recopilarse la información, con el fin de hacer las pruebas necesarias y hacer la verificación según los siguientes pasos: a) Definir científicamente (incluyendo la medida de rendimiento) b) Llevar a cabo el muestreo (incluyendo el diseño de experimentos) c) Reducir el número de datos. d) Utilizar los datos en la prueba de hipótesis e) Evaluar los resultados. Si estos pasos son llevados a cabo recurrentemente cada vez que obtienen resultados del modelo y les son presentados al grupo de toma de decisiones, se empieza a ejecutar un procedimiento sistemático de control que depura y ajusta al mismo, con la realidad. V. ESTABLECIMIENTO DE LOS CONTROLES Y APLICACIÓN DE LA SOLUCIÓN. Los sistemas no suelen ser estables y su estructura está sujeta a cambios, que pueden ser cambios entre las variables que definen al propio sistema , o pueden ser cambios entre los valores de las variables del sistema. El objetivo del establecimiento de controles, es para que no se pierda la efectividad del modelo matemático debido a cambios en los parámetros y la eficacia de la solución puede verse disminuída en consecuencia a: - cambio de los valores - cambio de la relación entre ellos - cambio en ambos factores. En consecuencia, un parámetro que no era significativo puede llegar a serlo o puede dejar de serlo, o tal vez, cambiar su grado de importancia. El diseño de un sistema de control deberá tomar en cuenta lo siguiente: 1. Enumeración de las variables y la relación entre ellas, y la manera en que afecta a la solución el cambio de los valores. 2. Elaboración de un procedimiento para detectar los cambios importantes entre los parámetros (variables) y las relaciones,

3. Especificación de la acción que deberá tomarse o los ajustes que deben llevarse a cabo en el momento de ocurrir un cambio importante. Los parámetros enumerados pueden ser clasificados como: a)Valores que se conocen de antemano durante el período correspondiente a una decisión. Como por ejemplo: número de días de trabajo, precio de ventas de un artículo,... b)Medidas cuyos valores no se conocen de antemano. P. ejemplo:La cantidad de producto defectuosa, la utilidad anual de la empresa, ... La participación entre los investigadores de operaciones y el personal de operación, cuyo trabajo en conjunto, permitirá desarrollar exitosamente el plan de implantación. Ya que ninguna consideración práctica se dejará de analizar, y de esta manera podrán verificarse las modificaciones o ajustes posibles al sistema **** lleva dibujos I. 8 FORMULACIÓN DE PROBLEMAS NO LINEALES. A continuación se presenta un ejemplo de cómo elaborar un modelo matemático no lineal. Se requiere determinar ¿cuál será la cantidad de inversión inicial única, teniendo en cuenta la cantidad futura dada, después de cierto número de años, ganando cierta tasa de interés? --------------------------------------------------------------------------------------------------------------------------------------------------------------Datos de entrada Resultado -------------------------------------------------------------------------------Cantidad a invertir ? --------------------------------------------------------------------------------------------------------------------------------------------------------------Tasa de interés Cantidad futura -------------------------------------------------------------------------------Tiempo de inversión Variables controlables : Cantidad de inversión única ? Tiempo de inversión Variables no controlables : tasa de interés anual Tomando en cuenta lo anterior deducimos que la cantidad futura dada será igual a la inversión única inicial más el interés ganado. El interés ganado se obtiene del factor inversión única por el interés anual. Asignamos símbolos para plantear lo anteriormente descrito.

F: Cantidad futura obtenida P: Inversión inicial única ? P i : cantidad ganada i: Tasa de interés anual Luego entonces la cantidad futura estará expresada de la siguiente manera: F=P+Pi Para el primer año Cantidad futura para el primer año = Inversión única inicial + cantidad ganada F1 = P + Pi Factorizando P F1 = P ( 1 + i ) ....¶ Para el año 2. La cantidad de dinero acumulado F2, será igual a la cantidad acumulada al término del primer año más el interés final del año 1 hasta el final del año 2. Entonces F2 = F1 + F1 i Si F1 = P ( 1 + i ), sustituyendo tenemos F2 = P ( 1 + i ) + P ( 1 + i) i Quitamos paréntesis = P + P i + P ( i + i²) = P + P i + P i + P i² = P + 2P i + P i² Factorizando P = P ( 1 + 2 i + i²) Observamos que tenemos dentro del paréntesis el resultado de un binomio cuadrado perfecto, entonces se puede expresar de la forma F2 = P (1 + i ) ² ...· Para el año 3. La cantidad de dinero acumulada será la cantidad de dinero del año 2 más el interés ganado al final del año 2. F3 = F2 + F2 i Si observamos que F2 es igual a P(1 +i) + P ( 1+i) i y sustituímos en F3, tenemos F3 = [ P (1 + i) + P (1 + i) i] + [ P (1 + i) + P ( 1 + i) i ] i Quitamos los paréntesis rectangulares y obtenemos

F3 = P ( 1 + i ) + P (1 + i) i + P ( 1 + i) i + P ( 1 +i ) i² = P ( 1 + i) + 2P (1 + i) + P ( 1 + i) i² Factorizando P (1+i), tenemos F3 = P (1 + i) ( 1 + 2i + i²) Si 1 + 2i + i² es el resultado del binomio (1 + i)², y lo sustituímos F3 = P ( 1 + i) ( 1 + i)² Luego entonces F3 = P ( 1 + i)³ ...¸ De los valores anteriores, por inducción matemática podemos generalizar el número de años en n. Si F1 = P ( 1 + i) ...(, F2 = ( 1 + i ) ² ...(, F3 = P ( 1 + i)³ ...(, deducimos que F = P ( 1 + i) n Si despejamos P, que es el valor buscado, (inversión única), obtendremos: Ingeniería Económica la expresa de la siguiente manera: P =F ( P/F, i, n ) Esta expresión permitirá determinar el valor presente P de una cantidad futura dada f, después de n años a una tasa de interés i. Donde las variables dependientes serán la cantidad futura F, el interés anual i, y el número de años de inversión n. Mientras que la variable independiente será, la cantidad única de inversión inicial P.