#!/usr/bin/python3 # ==================================================================== # Bus Capacity Problem # ---- x = number of small buses # ---- number of buses is 8 # ---- bus capacity is 40 # ---- cost per bus 600 # ---- y = number of large buses # ---- number of buses is 10 # ---- bus capacity is 50 # ---- cost per bus 800 # ---- # ---- number of students 400 # ---- number of drivers 9 # minimize cost # -------------------------------------------------------------------- # Problem From : www.superprof.co.uk/resources/academic/maths/ # linear-algebra/linear-programming/ # linear-programming-problems-and-solutions.html # ==================================================================== import pulp as pl ##print('PuLp installers:') ##print(pl.listSolvers()) ##print('PuLp installers currently available:') ##print(pl.listSolvers(onlyAvailable=True)) ##print() # define variables # ---- x = number of small busses # ---- y = number of large busses x = pl.LpVariable('x',0,8,cat='integer') y = pl.LpVariable('y',0,10,cat='integer') # ---- define problem prob = pl.LpProblem('BusCapacityProblem', pl.LpMinimize) # ---- add objective function (minimize cost) prob += 600*x + 800*y # ---- add constraints prob += 40*x + 50*y >= 401 prob += x + y <= 9 # ---- solve problem (using default solver) status = prob.solve() print(f'status = {pl.LpStatus[status]}') # ---- describe solution x = pl.value(x) y = pl.value(y) print(f'{x} small buses') print(f'{y} large buses') print(f'total cost = {600*x + 800*y}')