AMPL——“A Mathematical Programming Language”,
是一种强大灵活的综合性数学模型语言
AMPL本身不能直接地解决那些问题,其作用只是类似编译器,它将模型.mod 转换成专门的.nl 文件。在读入模型文件和数据文件后调用其他能够求解各类数学规划问题的求解器(solver)进行求解。目前AMPL支持世界上大多数流行的求解软件(如 MINOS, IPOPT,,SNOPT ,IBM_CPLEX等等)。
AMPL解决数学规划问题的框架如下图。
运行AMPL。
model example.mod; #调用模型文件
data example.dat; #调用数据文件
option solver cplex; #选择求解器
solve; #求解
AMPL基本语法
区分大小写
忽略空格
每个语句以分号“;”结尾
以#开始的一行为注释部分
;=表示赋值,=表示约束 ,==表示判断
AMPL模型文件
集合,参数,变量:set,param,var
目标函数:maximize,minimize
约束:subject to