CPLEX Java接口函数大全:详尽的函数参考手册

需积分: 12 3 下载量 161 浏览量 更新于2024-07-15 1 收藏 7.07MB PDF 举报
"【重要】【Cplex函数库-网页打印版】overview-summary.pdf" 是一份关于IBM ILOG CPLEX的Java接口参考手册,涵盖了各种函数、接口和类的详细信息,用于运筹优化和组合优化问题的解决。这份文档特别适合于学习如何使用Java调用CPLEX库进行优化模型构建和求解。 在CPLEX的Java接口中,有多个关键的接口和类: 1. **IloAddable**: 这是一个接口,定义了可以添加到模型中的元素,如约束或目标函数。 2. **IloAnd**: 代表逻辑与操作,用于组合多个约束或表达式。 3. **IloConstraint**: 表示优化模型中的约束条件,它可以是线性的、二次的或其他形式的表达式。 4. **IloConversion**: 用于将一个变量转换成不同类型的变量,例如从整型变量转换为连续变量。 5. **IloIntExpr** 和 **IloLinearIntExpr**: 分别表示整数表达式和线性整数表达式,它们是构建优化模型中的线性部分的基础。 6. **IloIntVar**: 定义整数变量,是优化问题中的决策变量。 7. **IloLinearNumExpr** 和 **IloLinearNumExprIterator**: 类似于IloLinearIntExpr,但用于处理数值型(浮点数)的线性表达式和迭代器。 8. **IloLPMatrix**: 用于表示线性规划问题的标准形式,即线性目标函数和线性约束的集合。 9. **IloLQIntExpr** 和 **IloLQNumExpr**: 表示包含线性和二次项的整数或数值表达式,适用于处理二次优化问题。 10. **IloModel** 和 **IloModeler**: IloModel用于构建整个优化模型,而IloModeler提供了一种更高级的接口来创建和编辑模型。 11. **IloMPModeler**: 提供了构建数学规划模型的接口,支持线性、二次和混合整数优化问题。 12. **IloNumExpr** 和 **IloNumVar**: 与IloIntExpr和IloIntVar类似,但处理的是连续(实数)表达式和变量。 13. **IloNumVarBound** 和 **IloNumVarBoundType**: 分别表示数值变量的上下界和边界类型(如等于、小于等于、大于等于等)。 14. **IloObjective**: 定义优化模型的目标函数,可以是最大化或最小化。 15. **IloOr**: 逻辑或操作,允许组合多个约束或表达式。 16. **IloQuadIntExpr** 和 **IloQuadNumExpr**: 表示包含线性和二次项的整数或数值表达式,用于处理二次优化问题。 17. **IloQuadIntExprIterator** 和 **IloQuadNumExprIterator**: 用于遍历二次表达式的各个项。 18. **IloRange**: 定义约束的范围,通常表示为“小于等于”或“大于等于”某个值。 19. **IloSemiContVar**、**IloSOS1** 和 **IloSOS2**: 分别表示半连续变量、特殊有序集1(SOS1)和特殊有序集2(SOS2),这些是优化问题中特定类型的变量集合。 20. **IloColumn** 和 **IloColumnArray**: 与线性规划问题中的列向量相关,用于表示模型的决策变量。 21. **IloNumVarBoundType**、**IloNumVarType**、**IloObjectiveSense**: 分别定义变量的边界类型、变量类型(如连续、整数等)和目标函数的优化方向(最大化或最小化)。 此外,还有异常类,如 **IloColumnArray.SizeMismatchException** 和 **IloException**,用于处理在使用CPLEX库时可能出现的错误或异常情况。 在 `ilog.cplex` 包下,有一些关键的接口,如: 1. **IloCplex.AsyncHandle**、**IloCplex.FeasOptHandle**、**IloCplex.MIPCallback.NodeData** 等,这些接口提供了异步求解、可行性优化和MIP回调节点数据等功能。 2. **IloCplex.PopulateHandle**、**IloCplex.RefineConflictHandle**、**IloCplex.RefineMIPStartConflictHandle** 用于处理MIP的填充、冲突细化和MIP起点冲突细化。 3. **IloCplex.RemoteInfoHandler** 用于处理远程求解过程中的信息传递。 4. **IloCplex.SolveFixed** 等接口则提供了固定变量后解决问题的方法。 这份文档详细地介绍了如何使用Java与CPLEX进行交互,涵盖了模型构建、求解过程、异常处理等多个方面,对于使用CPLEX进行运筹优化的开发者来说是一份非常宝贵的参考资料。