cplex翻译完全版 下载本文

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采用分支定界算法,解决了一系列的线性规划问题、子问题。由于一个混合整数规划问题产生了许多子问题,即使是小的混合整数问题,计算强度也是非常大的,并且需要大量的物理内存。

GAMS和GAMS/Cplex支持类型1、类型2和半连续半离散的变量的特殊命令集。

Cplex也可以求解MIQCP(混合整数二次规划)型的GAMS模型问题。正如连续型的情形,如果基本模型是个二次规划(QP),那么在求解中,单纯形法和对偶单纯刑法均可用。如果基本模型是二次约束规划问题(QCP),那么在求解中只有障碍算法可用并且只能得到原始值。 3.4 可行松弛性

不可行的寻找者找到通过约束不一致的集合(IIS)的方法找到不可行的原因。然而,你可能没有诊断就对你的模型进行自动校正,然后继续提交答案。这样做的另一个方法就是建立带有明确松弛变量和其它建模结构的模型,以使得不可能出现不可行解。GAMS/Cplex提供的一种自动的方法就是可行优化方法(For Feasible Optimization),它由Cplex 选项文件中的feasopt参数打开。详情见章节——可行松弛性的使用(Using the Feasibility Relaxation)。 3.5 解池:产生和保持多解

本章介绍了存储混合整数规划问题(MIP和MIQCP)的多个解的解池。本章同时还讲解了产生和管理这些解的技术。

解池存储了混合整数规划(MIP和MIQCP)的多个解。有了这个特征,你就可以引导算法产生除了最优解的多个解。例如,有些约束很难有效地表达成线性表达式,或者目标可能很难精确量化。在这种情况下,获取多个解会帮助你选择其中一个最符合你所有准则的解。这些准则包括那些不能简单用常规的混合整数规划或混合二次约束规划模型表达的准则。例如,

? 你可以在最优解的一定比例内收集解。为了这样做,要应用解池间隙参

数solnpoolagap和solnpoolgap。

? 你可以收集不同解的集合。为了这样做,要使用解池的替代参数

SolnPoolReplace来设置解池的替代战略为2。为了控制解的多样性,使用多样性过滤器。

? 在这个特征的高级应用里面,你可以收集具有某些特殊属性的解。为了

这样做,请见现任过滤器(incumbent filter)的使用方法。

? 你可以收集模型的所有解和最优解。为了这样做,把解池的强度参数