我有一个整数线性编程探针来解决。所以,我决定使用python和SciPy spcecifically。
我有以下简短的片段。
obj_function = running_instance_coeffs + new_instance_coeffs
A = [[1]*len(running_instance_coeffs) + [1]*len(new_instance_coeffs), encoding_speed_running_instances + encoding_speed_new_instances]
b = [MAX_INSTANCES, ((-1)*load/QoS)]
bounds=[]
for inst in running_instances:
bounds.append([0,1])
for inst in instances:
bounds.append([0,10])
res=linprog(obj_function, A_ub=A, b_ub=b, bounds=bounds, options={"disp": True})
print('Optimal value:', res.fun, '\nX:', res.x)
效果非常好。但是,它没有给出整数解。是否可以简单地将其更改为ILP
解决方案?我意识到还有其他类似pulp
的库允许这样做,但在这里更改它会更容易。