SummedObjectivesLpSolver
Info
Example dummy solver that sums multiple objectives.
Source code in examples/summing/SummedObjectivesLpSolver.py
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Code examples:
Warehouse cost example
from model.multi_objective_lp import MultiObjectiveLpProblem
from pulp import LpVariable, lpSum
from examples.summing.SummedObjectivesLpSolver import SummedObjectivesLpSolver
# we are building only one warehouse
warehouses_to_build = 1
# define the costs for the warehouse choices
warehouse_fixed_costs = [100, 120, 80]
cost_per_km = [3, 3, 3]
distances = [20, 30, 45]
transport_costs = [cost * dist for cost, dist in zip(cost_per_km, distances)]
warehouses = ['1', '2', '3']
model = MultiObjectiveLpProblem(name='warehouse')
build_warehouse_flag = LpVariable.matrix("build", warehouses, cat="Binary", lowBound=0)
model += lpSum(build_warehouse_flag) == warehouses_to_build
# cost to be minimized
transport_obj = lpSum([trans_cost * flag for trans_cost, flag in zip(transport_costs, build_warehouse_flag)])
fix_obj = lpSum([fix_cost * flag for fix_cost, flag in zip(warehouse_fixed_costs, build_warehouse_flag)])
model.setObjectives([transport_obj, fix_obj])
model.solve(solver=SummedObjectivesLpSolver())