Ir al contenido principal

Cálculos de optimización con lenguaje de programación

Para facilitar y automatizar el proceso de optimización, en este artículo se utilizará el programa de Python. Primero debes instalar las siguientes bibliotecas (GLPK, Swig, Pulp) en Python.

Datos del problema.

En el siguiente ejemplo se definen los datos del problema: Una empresa productora de balones requiere saber cuántos balones de fútbol y básquetbol tiene que hacer con una cantidad de caucho determinada para maximizar sus ganancias.

·         Las ganancias que se generan por las ventas de cada uno de los tipos de balones. 50 monedas por cada balón de fútbol y 40 por los de básquetbol.

·         La cantidad de materia usada para cada uno de los balones, se pueden crear máximo 500 balones de fútbol o 400 de básquetbol.

·         El tiempo que tarda en hacer cada tipo de balón, sólo se pueden hacer 400 balones de fútbol y 300 de básquetbol al mes.

Define, declara y agrega las variables y restricciones del problema del problema de la siguiente forma:

·         Inicia tu programa mandando a llamar la biblioteca pulp (from pulp import*).

·         Declara tus variables de decisión siguiendo esta sintaxis:

o   Escribe el nombre de la variable (pelotaFutbol, pelotaBasquetbol), iguálala a la función Lp Variable y como parámetros de entrada escribe el nombre de la variable y las restricciones que le correspondan.

o   pelota futbol = LpVariable(“pelotaFutbol”,0,400)#0<=x1<400

o   pelota basquetbol = LpVariable(“pelotaBasquetbol”,0,300)#0<=x1<300

·         Declara las constantes y variables que necesitas para delimitar y resolver el problema.

·         Guarda en una variable el problema y especifica de qué tipo va a ser. Maximización o Minimización siguiendo esta sintaxis:

o   problema = LpProblem(“problema”,LpMaximize)

·         Agrega las restricciones faltantes del problema:

o   problema+=(materialUnidadF*pelotaFutbol)+(materialUnidadB*pelotaBasquetbol)<=materialDisponible.

·         Por último, agrega al problema la función objetivo definida anteriormente:

o   problema+=(pelotaFutbol*gananciaF)+(pelotaBasquetbol*gananciaB)

Solución del problema.

Ya que tienes tu problema bien definido, obtén la solución del problema de la siguiente forma:

·         Utiliza el método Solve de tu variable problema, agrega como parámetro la siguiente instrucción: problema.solve(GLPK(msg=0))

·         Guarda en una variable el status de la resolución del problema: status=problema.solve (GLPK(msg=0))

·         Los status que puede arrojar el método son:

o   Optimal: Significa que tiene una solución óptima.

o   Not Solved: Significa que el problema no tiene solución óptima.

o   Undefined: Significa que el problema no tiene restricciones suficientes para ser resuelta.

Para terminar imprime en consola el status y los valores de las variables de Decisión, y así comprobar que todo se realizó de forma correcta.

print(Lpstatus)

print(valve(pelotaFutbol))

print(valve(pelotaBasquetbol))

Fuente:
Fundación Carlos Slim – Curso Analista de Datos.

 


Comentarios

Entradas más populares de este blog

Especial Pancracio Deportivo: Mundial Norteamérica 2026 ¿Un punto de quiebre?

Ofreciendo este espacio para compartir una publicación del proyecto hermano de Pancracio Deportivo , en el que se hace un análisis transversal de lo ocurrido en el recientemente concluido Mundial de Fútbol de Norteamérica 2026 . ¿El Mundial de Norteamérica 2026 ha sido mucho más que un torneo de fútbol? Durante días se documentó el recorrido de cada selección con infografías inspiradas en la identidad artística y cultural de cada país, acompañadas de análisis históricos, deportivos, económicos y sociales. Ahora todo ese trabajo y algo más se reúne en un solo documento: "Mundial Norteamérica 2026 ¿Un punto de quiebre?" Este especial de Pancracio Deportivo no busca decir únicamente quién ganó o quién perdió. Busca responder si este Mundial marcó un antes y un después en la forma de entender el deporte, la identidad nacional, la globalización, la comercialización y el papel del fútbol como reflejo de nuestras sociedades . Son 230 páginas de análisis, ilustraciones originales y ...

Cultura Romana

En esta sección dedicada a compartir aquellas láminas, textos o infografías relevantes , en esta ocasión, es turno de compartir un material en el que de forma gráfica se observan diferentes pasajes y aspectos de la cultura romana, una de las principales civilizaciones que tuvo un amplio dominio en su época de apogeo.

Cultura Olmeca

La 1° cultura (al menos de la que se tiene un registro) en aparecer en Mesoamérica, y que es conocida como la "cultura madre", es la de los olmecas , civilización de la cual, en esta lámina que se comparte, se puede ver un poquito de su historia y de los principales elementos que la caracterizaron.