Hi,
I use pulp module to solve my some optimization problems. With integer numbers, it works like a charm. I wonder if it is possible for pulp to work with real numbers.
Here is a sample optimization problem I build for my project.
prob = pulp.LpProblem("example", pulp.LpMinimize)
# Variable represent number of times device i is used
n1 = pulp.LpVariable("n1", 1, 5, pulp.LpInteger)
n2 = pulp.LpVariable("n2", 0, max_exp, pulp.LpInteger)
n3 = pulp.LpVariable("n3", 0, max_exp, pulp.LpInteger)
n4 = pulp.LpVariable("n4", 0, max_exp, pulp.LpInteger)
n5 = pulp.LpVariable("n5", 0, max_exp, pulp.LpInteger)
# The objective function that we want to minimize: the total cost
prob += n1 * Device1[-1] + n2 * Device2[-1] + n3 * Device3[-1] + n4 * Device4[-1] + n5 * Device5[-1], "Minimize total cost"
# Constraint that we use no more than max. devices per controller device
prob += n2 + n3 + n4 + n5 <= n1*max_exp
#Constraint (total_UI >= (target_AI + target_BI))
prob += n1 * Device1[0] + n2 * Device2[0] + n3 * Device3[0] + n4 * Device4[0] + n5 * Device5[0] >= (Target[0]+Target[2])
#Constraint ((total_UO + total_BO) >= target_BO)
prob += n1 * Device1[1] + n2 * Device2[1] + n3 * Device3[1] + n4 * Device4[1] + n5 * Device5[1] + n1 * Device1[3] + n2 * Device2[3] + n3 * Device3[3] + n4 * Device4[3] + n5 * Device5[3]>= (Target[3])
#Constraint [total_UO + total_AO + total_BO - target_BO] >= target_AO
prob += n1 * Device1[1] + n2 * Device2[1] + n3 * Device3[1] + n4 * Device4[1] + n5 * Device5[1] + n1 * Device1[2] + n2 * Device2[2] + n3 * Device3[2] + n4 * Device4[2] + n5 * Device5[2] + n1 * Device1[3] + n2 * Device2[3] + n3 * Device3[3] + n4 * Device4[3] + n5 * Device5[3] >= (Target[1]+Target[3])
# Actually solve the problem, this calls GLPK so you need it installed
prob.solve()
Lets assume DeviceX[-1] be a real number. Could you make the required changes?
Thanks in advance.