AMPL—快速了解,秒懂它。

AMPL 的基本语法
#重制环境 ampl: reset;

选择模型文件 ampl: model transportation.mod;

选择数据文件 ampl: data transportation.dat;

求解

ampl: solve;
MINOS 5.51: optimal solution found. 13 iterations, objective 196200 ampl: option solver cplex;
ampl: sovle;
CPLEX 12.7.1.0: optimal solution; objective 196200 0 simplex iterations (0 in phase I)

显示目标函数值 ampl: display Total_Cost; Total_Cost = 196200

显示结果 ampl: display Trans; Trans [,] (tr) : CLEV GARY PITT := DET 1200 0 0 FRA 0 0 900 FRE 0 1100 0 LAF 400 300 300 LAN 600 0 0 STL 0 0 1700 WIN 400 0 0 ;

调用其他求解器 ampl: option solver gurobi;

ampl: solve;
Gurobi 7.5.0: optimal solution;
objective 196200 ampl: option solver cplex;
ampl: solve;
CPLEX 12.7.1.0: optimal solution;
objective 196200 0 simplex iterations (0 in phase I)
AMPL基本语法
区分大小写
忽略空格
每个语句以分号“;”结尾
以#开始的一行为注释部分
;=表示赋值,=表示约束 ,==表示判断
AMPL模型文件
集合,参数,变量:set,param,var
目标函数:maximize,minimize
约束:subject to

要显示
make最小值=make.lb
make本身=make
make最大值=make.ub
make差值=make.slack
ampl: reset;
ampl: option solver cplex;
ampl: model 1.mod;
ampl: data 1.dat;
ampl: option cplex_options ‘sensitivity’;
ampl: solve;

变量显示分析:
display 变量.lb, 变量, 变量.ub #(变量的范围:变量的下限,变量,变量上限)
display 变量.slack;#(变量值和下限值差)
例如:

左边值和右边值,差:XXX.body, XXX, XXX.slack;
例如:

0-1变量:

Feasible 有效解 infeasible 无效解
option omit_zero_rows 1;去零的意思

“参数矩阵(tr)”=反转的意思

参数对应的时候左边在下,右边在上。

影子价格:(supply=供应)
display supply, supply_limit.down, supply_limit.current, supply.up;

需要node,但在node里面排除start和endd;
{k in node diff {start,endd}};

线的写法,
set link within(node cross node);

你可能感兴趣的:(ampl)