{ "cells": [ { "cell_type": "code", "execution_count": 3, "id": "e922309a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "status:1,Optimal\n", "objective:55000.0011\n", "A:0.0\n", "B:16.666667\n", "B1:13.333333\n", "B2:3.3333333\n", "C:16.666667\n", "Balance_B:-7.000000010748408e-07\n", "Maq_1:-1.9999999949504854e-06\n", "Maq_2:1.1999999998124622e-06\n", "Materia_Prima_M:4.000000011217253e-07\n", "Materia_Prima_N:-5.9999994\n", "Compromiso_de_Venta:6.666667\n" ] } ], "source": [ "#EJERCICIO 2.4\n", "#importo librerias \n", "from pulp import LpMaximize, LpProblem, LpStatus, lpSum, LpVariable, LpMinimize\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from scipy.optimize import linprog\n", "import numpy as np\n", "\n", "#Creo el modelo\n", "model= LpProblem (name=\"Pullovers\", sense=LpMaximize)\n", "\n", "#Inicializo las variables\n", "A=LpVariable(name=\"A\", \n", " lowBound=0)#Siendo A: cantidad de pullovers A\n", "B=LpVariable(name=\"B\", \n", " lowBound=0)#Siendo B: cantidad de pullovers B\n", "B1=LpVariable(name=\"B1\", \n", " lowBound=0)#Siendo B1: cantidad de pullovers B aproducirse en la maquina 1\n", "B2=LpVariable(name=\"B2\", \n", " lowBound=0)#Siendo B2: cantidad de pullovers B aproducirse en la maquina 2\n", "C=LpVariable(name=\"C\", \n", " lowBound=0)#Siendo B1: cantidad de pullovers C\n", "\n", "\n", "#Determino las restricciones\n", "model+= (B1 + B2 == B, \"Balance B\")\n", "model+= (5*A+ 6*B1 <= 80, \"Maq 1\")\n", "model+= (4*B2+ 4*C <=80, \"Maq 2\")\n", "model+= (1.6*A+1.2*C <=20, \"Materia Prima M\")\n", "model+= (1.8*B <=36, \"Materia Prima N\")\n", "model+= (B >=10, \"Compromiso de Venta\")\n", "\n", "#Definimos la funcion objetivo la cual queremos maximizar\n", "model+=1000*A+1500*B+1800*C\n", "\n", "#Resolvemos el problema de programacion lineal\n", "status = model.solve()\n", "\n", "#Imprimo la solucion\n", "print(f\"status:{model.status},{LpStatus[model.status]}\")#tipo de solucion\n", "print(f\"objective:{model.objective.value()}\")#Beneficio maximo sujeto a las restricciones\n", "for var in model.variables():\n", " print(f\"{var.name}:{var.value()}\")#Valores de solucion de las variables\n", "for name, constraint in model.constraints.items():\n", " print(f\"{name}:{constraint.value()}\") \n", " " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 5 }