#!/usr/bin/python3 # ==================================================================== # Truck transportation problem # ---- x = number of type A trucks # ---- refrigerated capacity of 20 cubic meters # ---- non-refrigerated capacity of 40 cubic meters # ---- cost per kilometer is 30 # ---- y = number of type B trucks # ---- refrigerated capacity of 30 cubic meters # ---- non-refrigerated capacity of 30 cubic meters # ---- cost per kilometer is 40 # ---- # ---- ship refrigerated 3000 cubic meters # ---- ship non-refrigerated 4000 cubic meters # 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 # ---- define variables x = pl.LpVariable('x',0,None,cat='integer') y = pl.LpVariable('y',0,None,cat='integer') # ---- define problem prob = pl.LpProblem('TransportationCompanyProblem', pl.LpMinimize) # ---- add objective function (minimum cost per kilometer) prob += 30*x + 40*y # ---- add constraint refrigerated capacity required prob += 20*x + 30*y >= 3000 # ---- add constraint non-refrigerated capacity required prob += 40*x + 30*y >= 4000 # ---- 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('solution from web site:') print(' type A = 51 trucks') print(' type B = 66 trucks') print(' min cost = 4170 per kilometer') print(f'{x} type A trucks') print(f'{y} type B trucks') print(f'min cost = {30*x + 40*y} per kilometer')