#!/usr/bin/python3
# ====================================================================
# Ski manufacturing problem
# --------------------------------------------------------------------
# problem description
#
# ---- x = number of parabolic skis per day
# ---- $40 profit
# ---- 6 hours fabricating
# ---- 1 hours finishing
# ---- y = number of conventional skis per day
# ---- $30 profit
# ---- 4 hours fabricating
# ---- 1 hours finishing
# ----
# ---- 108 fabricating department labor hours available per day
# ---- 24 finishing department labor hours available per day
#
# maximize daily profit
# --------------------------------------------------------------------
# To see information on Pulp classes go to
# https://www.coin-or.org/PuLP/pulp.html
# ====================================================================
import pulp as pl
# ---- define LP variables
x = pl.LpVariable('x',0,None,cat='integer')
y = pl.LpVariable('y',0,None,cat='integer')
# ---- define LP problem
prob = pl.LpProblem('SkiManufacturingProblem',pl.LpMaximize)
# ---- add objective function (maximum profit)
prob += 40*x + 30*y
# ---- add constraints
prob += ......
prob += ......
# ---- solve the problem
status = prob.solve()
print(f'status = {pl.LpStatus[status]}')
# ---- describe solution
x = pl.value(x)
y = pl.value(y)
print(f'{x} parabolic skis per day')
print(f'{y} conventional skis per day')
print(f'profit = ${40*x + 30*y} per day')