BAS 文件格式:高级基

BAS 文件格式支持高级基。

MPS 基文件(称为 BAS 文件)包含 CPLEX 定义高级基所需的信息。 与 MPS 文件一样,BAS 文件以 NAME 指示符记录开头,并以 ENDATA 记录结尾。

提示:

BAS 文件是一种基于文本的格式,该格式需要各变量和各约束具有名称。 如果希望读写 BAS 文件,那么在创建模型时必须向各变量(列)和各约束(行)指定唯一名称。 另请参阅CPXERR_BAD_NAME

一个基定义了基本结构变量和行变量的列表。 结构变量是 MPS 问题文件中定义的其中一个变量(列)。 行变量实际是与行关联的松弛变量、剩余变量或人工变量。

对于线性程序,基本变量(结构变量和行变量)的总数等于约束矩阵中的行数。 此外,基本结构变量的数量等于非基本行变量的数量。 按照约定,MPS 基文件基于以下假设:所有行变量都是基本变量,并且所有结构变量都是值处于其下限的非基本变量。 BAS 文件中的数据记录列出了违反此假设的结构变量和行变量。 此约定将尽可能减小 BAS 文件的大小。

对于二次程序,由于基对应于涉及凸面 QP 的最优性条件的扩增线性系统,基本变量的总数可以超过行数,因此并非所有基本变量都可与非基本行变量配对。

表 1. BAS 文件中变量的状态指示符
状态
XU 变量 1 是基本变量;变量 2 是处于其上限的非基本变量
XL 变量 1 是基本变量;变量 2 是处于其下限的非基本变量
UL 变量 1 是非基本变量并处于其上限
LL 变量 1 是非基本变量并处于其下限
BS 变量 1 是基本变量。
字段 1:指明字段 2 和 3 中已命名变量状态的指标。 表 1 列出了可接受的数值。

字段 2:变量 1 标识

字段 3:变量 2 标识(在字段 1 为 ULLLBS 时忽略)

变量 1 指定入基结构变量标识。 按照约定,此结构变量必须替换其中一个行变量。 变量 2 是出基行变量。 BAS 文件中未默示入基结构变量和出基行变量之间的任何关系。

MPS 文件格式示例中,变量 "x2和 "x3为基本变量,两个约束条件(行变量)为非 基本变量。 此外,x1 强制为其上限 40。 该示例的最佳基出现在以下样本中。 CPLEX 将迭代数添加到 NAME 记录中。 如果在先前异常中止的运行期间自动生成了基文件,那么迭代计数会有所帮助。 前两个数据记录中的 XL 指示符指示 x3x2 是基本变量,并且 c1c2 的行变量是处于其下限的非基本变量。 第三个记录显示结构变量 x1 是非基本变量并处于其上限。


NAME          example2.bas  Iterations 3  Rows 2  Cols 3
 XL x3        c1
 XL x2        c2
 UL x1
ENDATA