XML 文件格式:序列化模型和解法
CPLEX 提供 XML 文件格式以支持序列化模型和解法。
针对 C++ 用户的 Concert Technology 提供了一套类来通过 XML 将 CPLEX 模型(即 IloModel 的实例)和解法(即 IloSolution 的实例)序列化。 CPLEX C++ API 参考手册》在 "optim.concert.xml组中记录了 XML 序列化 API。 该组包括以下类:
IloXmlContext,通过它可将IloModel或IloSolution的实例序列化。 该类提供读写模型和/或解法的方法。 在参考手册中提供了有关如何使用该类的示例。IloXmlInfo,提供使您能够验证元素(如数字数组、整数数组、变量以及来自模型或解法的其他可抽取内容)的 XML 序列化的方法。IloXmlReader,在环境中(即IloEnv的实例中)创建阅读器。 该类提供方法以检查运行时类型信息 (RTTI),识别对象间的分层关系以及访问模型或解法中对象的属性。IloXmlWriter在环境中(即IloEnv的实例中)创建写程序。 该类提供方法以访问元素并根据需要转换其类型,以便将模型或解法的元素序列化。
注:
编写模型的 XML 文件和编写抽取的同一模型的 LP/MPS/SAV 文件之间存在根本差异。 某些更高级别的建模构造在求解器引擎中没有等效的表示法,在传递到求解器引擎时必须进行转换。 XML 文件将按此表示这些构造。 相反,LP/MPS/SAV 文件将仅表示转换的模型。 由于发生了自动转换,因此该已转换模型会将这些功能部件模糊化。