I have a program that uses pulp with HiGHS solver to solve MIP problems, and after finding the solution to the problem the solver stucks at writing the solution into file, i.e. after this message
`Writing the solution to C:\Users\MSI\AppData\Local\Temp\4104600b0a28494f9c80ae8a49cbd725-pulp.sol
` the program stucks for a very long time, and it does not move on.
The program:
model = pulp.LpProblem('Facility', pulp.LpMinimize)
setup_cost = {el.index : el.setup_cost for el in facilities}
transportation_costs = {el.index:{il.index: length(il.location, el.location) for il in customers} for el in facilities}
customer_indexes = list(range(num_customers))
facility_indexes = list(range(num_facilities))
demand = {el.index:el.demand for el in customers}
capacity = {el.index:el.capacity for el in facilities}
use = pulp.LpVariable.dicts("use", facility_indexes, 0, 1, pulp.LpBinary)
#print(use)
serve = pulp.LpVariable.dicts('serive', [(i, j) for i in customer_indexes for j in facility_indexes], 0,1, pulp.LpBinary)
#print(serve)
model += pulp.lpSum(use[i] * setup_cost[i] for i in facility_indexes) \
+ pulp.lpSum(transportation_costs[j][i] * serve[(i,j)] for i in customer_indexes for j in facility_indexes)
print("first")
for i in customer_indexes:
model += pulp.lpSum(serve[(i, j)] for j in facility_indexes) == 1
print("second")
for j in facility_indexes:
model += pulp.lpSum(serve[(i, j)]*demand[i] for i in customer_indexes) <= capacity[j]
print("third")
for j in facility_indexes:
for i in customer_indexes:
model += use[j] >= serve[(i, j)]
#for i in customer_indexes:
# for j in facility_indexes:
# model += serve[(i, j)] <= demand[i] * use[j]
print("solve")
model.solve(pulp.HiGHS_CMD(timeLimit=2000, path=r'C:\Users\MSI\Downloads\highs.exe', msg=True))