BAS 文件格式:高级基
BAS 文件格式支持高级基。
MPS 基文件(称为 BAS 文件)包含 CPLEX 定义高级基所需的信息。 与 MPS 文件一样,BAS 文件以 NAME 指示符记录开头,并以 ENDATA 记录结尾。
BAS 文件是一种基于文本的格式,该格式需要各变量和各约束具有名称。 如果希望读写 BAS 文件,那么在创建模型时必须向各变量(列)和各约束(行)指定唯一名称。 另请参阅CPXERR_BAD_NAME。
一个基定义了基本结构变量和行变量的列表。 结构变量是 MPS 问题文件中定义的其中一个变量(列)。 行变量实际是与行关联的松弛变量、剩余变量或人工变量。
对于线性程序,基本变量(结构变量和行变量)的总数等于约束矩阵中的行数。 此外,基本结构变量的数量等于非基本行变量的数量。 按照约定,MPS 基文件基于以下假设:所有行变量都是基本变量,并且所有结构变量都是值处于其下限的非基本变量。 BAS 文件中的数据记录列出了违反此假设的结构变量和行变量。 此约定将尽可能减小 BAS 文件的大小。
对于二次程序,由于基对应于涉及凸面 QP 的最优性条件的扩增线性系统,基本变量的总数可以超过行数,因此并非所有基本变量都可与非基本行变量配对。
| 值 | 状态 |
|---|---|
XU |
变量 1 是基本变量;变量 2 是处于其上限的非基本变量 |
XL |
变量 1 是基本变量;变量 2 是处于其下限的非基本变量 |
UL |
变量 1 是非基本变量并处于其上限 |
LL |
变量 1 是非基本变量并处于其下限 |
BS |
变量 1 是基本变量。 |
字段 2:变量 1 标识
字段 3:变量 2 标识(在字段 1 为 UL、LL 或 BS 时忽略)
变量 1 指定入基结构变量标识。 按照约定,此结构变量必须替换其中一个行变量。 变量 2 是出基行变量。 BAS 文件中未默示入基结构变量和出基行变量之间的任何关系。
在MPS 文件格式示例中,变量 "x2和 "x3为基本变量,两个约束条件(行变量)为非 基本变量。 此外,x1 强制为其上限 40。 该示例的最佳基出现在以下样本中。 CPLEX 将迭代数添加到 NAME 记录中。 如果在先前异常中止的运行期间自动生成了基文件,那么迭代计数会有所帮助。 前两个数据记录中的 XL 指示符指示 x3 和 x2 是基本变量,并且 c1 和 c2 的行变量是处于其下限的非基本变量。 第三个记录显示结构变量 x1 是非基本变量并处于其上限。
NAME example2.bas Iterations 3 Rows 2 Cols 3
XL x3 c1
XL x2 c2
UL x1
ENDATA