CPLEX & OPL建模语言从入门到放弃(一)
![日知](https://picx.zhimg.com/v2-a6fdc921e7eae933db65eee9e9f3e0d7_l.jpg?source=172ae18b)
![](https://pic1.zhimg.com/v2-4812630bc27d642f7cafcd6cdeca3d7a.jpg?source=88ceefae)
OPL是ILOG团队为运筹学研究者定制的一种优化建模语言,语法相对简单,接近运筹学研究者习惯的数学表达。
导航地址
OPL建模语言从入门到放弃(一) 基本组成
OPL建模语言从入门到放弃(二) 数据结构
OPL建模语言从入门到放弃(三) 数据源
OPL建模语言从入门到放弃(四) 决策变量
OPL建模语言从入门到放弃(五) 表达式
OPL建模语言从入门到放弃(六) 约束条件
OPL建模语言从入门到放弃(八) 预处理语句
下文描述了OPL建模语言的基本组成,以及用OPL语言建模的方法。
注释
多行注释
/*
This is a
multiline comment
*/
单行注释
dvar int cost in 0..maxCost; // decision variable
模型
一个模型应当包括以下几个部分:
变量声明(必须)
// dvar 表示决策变量
dvar float+ x;
dvar float+ y;
// dexpr 表示决策表达式
dexpr float cost = 0.12*x + 0.15*y;
预处理指令(可选)
execute {
writeln('start reducing')
}
问题描述(必须)
// 最小化
minimize cost;
subject to {
60*x + 60*y >= 300;
12*x + 6*y >= 36;
10*x + 30*y >= 90;
}
后处理指令(可选)
execute {
if (cplex.getCplexStatus() == 1) {
writeln('reduced cost of x= ', x.reducedCost)
writeln('reduced cost of y= ', y.reducedCost)
}
在CPlex中使用OPL
右键文件窗口,新建 - OPL项目,新建一个项目文件夹。
右键运行配置文件夹,新建 - 运行配置,新建一个运行配置。
右键项目文件夹,新建 - 模型,新建一个模型,并编写代码。
// 变量
dvar float+ x;
dvar float+ y;
execute {
writeln('start reducing')
// 声明
dexpr float cost = 0.12*x + 0.15*y;
// 模型
minimize cost;
subject to {
60*x + 60*y >= 300;
12*x + 6*y >= 36;
10*x + 30*y >= 90;