CPLEX 12
目 录
1. 简介 ........................................................................................................................... 3 2. 怎么用Cplex运行模型 ............................................................................................ 3 3. Cplex概览 ................................................................................................................. 3
3.1线性规划 .......................................................................................................... 3 3.2二次约束规划 .................................................................................................. 4 3.3混合整数规划 .................................................................................................. 4 3.4 可行松弛性 ..................................................................................................... 5 3.5 解池:产生和保持多解 ................................................................................. 5 4. GAMS选项 ................................................................................................................ 9 5. Cplex选项总结 ....................................................................................................... 10
5.1 预处理和一般选项 ...................................................................................... 10 5.2 单纯形法选项 .............................................................................................. 12 5.3 单纯形法的限制选项 .................................................................................. 12 5.4 单纯形法的容限选项 .................................................................................. 13 5.5 障碍特殊选项 .............................................................................................. 13 5.6 筛选特殊选项 .............................................................................................. 13 5.7 混合整数规划选项 ...................................................................................... 13 5.8 混合整数规划限制选项 .............................................................................. 15 5.9 混合整数规划解池选项 .............................................................................. 16 5.10 混合整数规划容许度选项 ........................................................................ 16 5.11输出选项 ..................................................................................................... 17 5.12 GAMS/Cplex选项文件 ................................................................................ 17 6. 特殊备注 ................................................................................................................. 18
6.1 物理内存限制 .............................................................................................. 18 6.2 使用特殊有序集 .......................................................................................... 18 6.3 使用半连续半整数变量 .............................................................................. 19 6.4为求解MIP问题耗尽内存 ........................................................................... 19 6.5 不能证明整数最优 ...................................................................................... 20 6.6 从混合整数规划的解开始 .......................................................................... 20 6.7 使用可行松弛性 .......................................................................................... 21 7. GAMS/ CPLEX日志文件 ......................................................................................... 22 8. CPLEX选项的详细说明 .......................................................................................... 25
1. 简介
GAMS/Cplex是一种用于GAMS (The General Algebraic Modeling System,通用代数建模系统)的求解器,它使得用户可以把GAMS(通用代数建模系统的)的高级建模功能跟Cplex优化器的优势结合起来。Cplex优化器是为能快速、最少用户干预地解决大型、复杂问题而设计的。求解线性、二次约束和混合整数规划问题的Cplex算法现在已提供访问(针对恰当的许可证)。尽管现存有多种求解工具,但是,GAMS/Cplex能自动地为特定问题计算最优值和设置大部分选项。
本文接下来总结了GAMS/Cplex的所有Cplex选项。
2. 怎么用Cplex运行模型
要在GAMS中指定使用Cplex,可以用一下语句:
Option LP = Cplex; { or QCP,NIP,NIQCP,RNIP or RNIQCP }
上述语句应该出现在Solve语句的前面。MIP和QCP功能是单独许可的,所以你有可能在你的系统里面不能用Cplex来解决这几类问题。如果在安装GAMS的过程中,Cplex是指定默认的求解器,那么上述语句是不必要的。
3. Cplex概览
3.1线性规划
Cplex 可以使用几种可选的算法解决线性规划问题。大部分的线性规划问题最好是使用对偶单纯算法的Cplex语句。有一些问题用原始单纯算法、网络优化器、障碍算法或者筛选算法来求解好一些。并行选项允许并行使用不同的算法。第一个结束的算法返回最终结果。
求解线性规划问题需要很大的内存。尽管Cplex能非常有效地管理内存,但是当运行大型的线性规划问题时,物理内存不足仍然是最常见的问题之一。当内存收到限制时,Cplex会自动地调整那些可能会造成消极影响的功能。如果你正在解决大规模的模型,一定要仔细研究“物理内存限制”这节。
Cplex使用默认的选项设置来解决大部分的线性规划问题。这些设置通常提供了问题的全局最优的优化速度和可靠性。然而,有的时候有某些原因导致更改选项能改善性能,避免数值难题,控制优化运行时间或控制输出选项。
有些问题用原始单纯算法求解比用对偶单纯算法快。极少的问题用这两种算法都表现不良。因此,可以在使用对偶单纯算法出现数值难题时考虑使用原始单
纯算法。
对于网络模型,Cplex有一个非常有效的算法。网络限制包括以下属性: ? 每个非零的系数不是1就是-1;
? 这些约束的每一列都有两个非零项,一个系数为1,另一个为-1。 只要他们能转化为具有这些属性,Cplex能自动提取那些不遵守上述规则的网络。
障碍算法是用单纯方法解决线性规划的另一选择。它使用了产生一系列严格正的原始解和对偶解的原——对偶障碍算法。对于大型的稀疏问题,选择障碍算法可能是有优势的。
Cplex 提供了一种筛选算法,这种算法在变量多于约束的问题中会更有效。筛选算法解决了一类线性规划问题,这类线性规划的子问题的结果被用来从原始模型选择列,以列入下一子问题。
GAMS/Cplex 还提供了访问Cplex 不可行搜索器的接口。不可行搜索器对于不可行的线性规划,产生不可简化的、不一致的约束集(IIS)。IIS是这样的集合:约束和变量范围是不可行的,但是,当丢弃其中一个条件时,就会变成可行的集合。当GAMS方程式和变量命名和包括了IIS报告并把它作为正常解列表的一部分时,GAMS和Cplex就会报告IIS。IIS只对线性规划问题有用。 3.2二次约束规划
Cplex可以求解带有二次约束的模型。它们在GAMS中用QCP模型表示。QCP模型用Cplex 障碍方法求解。
QP模型是一种特殊情形,它可转型为含有二次目标函数和线性约束。转型直接可以从GAMS QCP自动转化,并且可以用求解Cplex QP的方法(障碍算法、 单纯形法和对偶单纯形法)求解。
对于QCP模型,Cplex只返回原始解,QP模型还返回对偶解。 3.3混合整数规划
用来求解纯整数规划和混合整数规划的方法比求解同样规模的纯线性规划问题的方法需要更多的数学计算。许多相对小一点的整数规划模型都需要大量的时间来求解。
对于整数变量的问题,Cplex采用分支定界算法,解决了一系列的线性规划问题、子问题。由于一个混合整数规划问题产生了许多子问题,即使是小的混合整数问题,计算强度也是非常大的,并且需要大量的物理内存。