<jupyter_start><jupyter_text>Assignment 6 - Exercise 2c<NAME> - 201805995<jupyter_code>prob_statement = """A empresa Schwabe utiliza ouro e prata para produzir dois tipos de colares. O colar 1 requer 2g de
ouro, 3g de prata e 1 hora de trabalho para confec¸c˜ao. O colar 2 requer 3g de ouro, 2g de prata e 2 horas
de trabalho. Cada colar 1 vende por $400, e cada colar 2 vende por $500. Todos os colares produzidos
s˜ao vendidos. Em estoque a empresa tem 100g de ouro e 120g de prata, e disp˜oe de 70 horas de m˜ao de
obra. Ouro extra pode ser comprado por um custo de $100/g. Encomendas j´a realizadas requerem que
sejam produzidos pelo menos 20 colares 1 e 25 colares 2. Formule um modelo de programa¸c˜ao linear
para maximizar o lucro da empresa.
.
"""
def fix_statement(str_statement):
    list_replacements = [("¸c", "ç"), 
                         ("´a", "á"),
                         ("´e", "é"),
                         ("´ı", "í"),
                         ("´o", "ó"),
                         ("´u", "ú"),
                         ("˜a", "ã"),
                         ("˜o", "õ"),
                         ("$", "\\\$")]
    for replacement in list_replacements:
        str_statement = str_statement.replace(replacement[0], replacement[1])
    return str_statement
prob_statement = fix_statement(prob_statement)
print(prob_statement)<jupyter_output>A empresa Schwabe utiliza ouro e prata para produzir dois tipos de colares. O colar 1 requer 2g de
ouro, 3g de prata e 1 hora de trabalho para confecção. O colar 2 requer 3g de ouro, 2g de prata e 2 horas
de trabalho. Cada colar 1 vende por \\$400, e cada colar 2 vende por \\$500. Todos os colares produzidos
são vendidos. Em estoque a empresa tem 100g de ouro e 120g de prata, e dispõe de 70 horas de mão de
obra. Ouro extra pode ser comprado por um custo de \\$100/g. Encomendas já realizadas requerem que
sejam produzidos pelo menos 20 colares 1 e 25 colares 2. Formule um modelo de programação linear
para maximizar o lucro da empresa.
.<jupyter_text>A empresa Schwabe utiliza ouro e prata para produzir dois tipos de colares. O colar 1 requer 2g deouro, 3g de prata e 1 hora de trabalho para confecção. O colar 2 requer 3g de ouro, 2g de prata e 2 horasde trabalho. Cada colar 1 vende por \\$400, e cada colar 2 vende por \\$500. Todos os colares produzidossão vendidos. Em estoque a empresa tem 100g de ouro e 120g de prata, e dispõe de 70 horas de mão deobra. Ouro extra pode ser comprado por um custo de \\$100/g. Encomendas já realizadas requerem quesejam produzidos pelo menos 20 colares 1 e 23 colares 2. Formule um modelo de programação linearpara maximizar o lucro da empresa..<jupyter_code>import gurobipy as gp
from gurobipy import GRB, Model
# Create a new model
m = Model("Schwabe")
# Create variables
x1 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="no. collars type 1")
x2 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="no. collars type 2")
g = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="grams of purchased gold")
m.setObjective(x1 * 400 + x2 * 500 - g * 100,
               GRB.MAXIMIZE)
# Add constraints
m.addConstr(x1 * 2 + x2 * 3 <= 100 + g, 'Gold constraint')
m.addConstr(x1 * 3 + x2 * 2  <= 120, 'Silver constraint')
m.addConstr(x1 * 1 + x2 * 2 <= 70, 'MH constraint')
m.addConstr(x1 >= 20, 'Min production of collar type 1')
m.addConstr(x2 >= 23, 'Min production of collar type 2')

m.optimize()
for v in m.getVars():
    print(f'{v.varName}, {v.x}')

print(f'Obj: {m.objVal}')<jupyter_output>no. collars type 1, 24.0
no. collars type 2, 23.0
grams of purchased gold, 17.0
Obj: 19400.0
StarcoderdataJupyterStructuredCleanDedup