使用Julia运用JuMP和Clp求解Lp和ILP问题(分支定界法)

#张文硕编写-2022年运筹作业,西交的同学请勿抄袭,会查重
using JuMP
using Clp
#=导入Clp和JuMP,其中Clp为求解器,JuMP是一个类似于接口的东西=#

model = Model(Clp.Optimizer)
#=使用JuMP和求解器Clp创建模型=#

@variable(model, 0 <= x2 <= 3)
@variable(model, 0 <= x1 )#定义两个变量x1和x2
@objective(model, Min, -4*x1 + 5 * x2)#创建目标函数
@constraint(model, c1, 7x1 - x2 <= 14)
@constraint(model, c2, 2x1 - 2x2 <= 3)#创建约束条件
@constraint(model, c3, x1 >= 2)#创建约束条件
@constraint(model, c4, x2 <= 0)#创建约束条件
optimize!(model)
#JuMP求解模型

println(termination_status(model)) #输出模型是否成共
println("the best solve of the model:")
println(objective_value(model))#输出模型最优解
println("the value of x1:")
println(value(x1))#输出x1的值
println("the value of x2:")
println(value(x2))#输出x2的值

#以上为一段代码
#所有代码的截图在png文件中
#最终结果为如果为Lp问题,解为:(1.5,0)值为-6
#最终结果为如果为ILP问题,解为:(1,0)值为-4
#本问题对于ILP问题的求解使用分支定界法求解

 


版权声明:本文为m0_55952025原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。