AMPL 发行说明
20230124
在块模式下显示错误上下文(调用 “”).ampl -b ...
20221013
修复了版本 20220505 中引入的处理数据部分的错误。 例:
set A := 1..2; param p{A}; param q{A};
data;
param: p q :=
[*] 1 2.5 3 # erroneously complained about "."
2 4 5.6;
display p, q;
20221008
修复了 64 位 ARM 二进制文件中在某些情况下导致错误值的配置错误,比如某些要计算的内容。跟今天的 64 位 ARM 二进制文件“”将报告版本 20221008Normal01()ampl -vvq
20220927
修复由于变量的不当使用而导致的几条错误消息。以前的例子
var x >= 0 integer; var y >= 0 integer;
subj to con: x + y in {0,3,5};
solve;
收到令人惊讶的错误消息
presolve, constraint con:
Logical constraint is always false.
Infeasible constraints determined by presolve.
现在第二行引发错误消息
Cannot test whether a variable expression is in a set expression.
context: subj to con: x + y in >>> {0,3,5}; <<<
此示例可以重述为
var x >= 0 integer; var y >= 0 integer;
var z in {0,3,5};
s.t. con: x + y == z;
以前是小例子的第二行
var x >= 0;
subj to con: x in {0,3,5};
引发了令人惊讶的错误消息
continuous variable in tuple
context: subj to con: x in >>> {0,3,5}; <<<
不是它得到
Cannot test whether a variable is in a set expression.
context: subj to con: x in >>> {0,3,5}; <<<
该示例可以重写(无报错)为
对于 “” 声明,AMPL无声地生成二进制文件 由 SOS1 条件和定义 x 的约束var x in set_expr相关的变量。
20220812
修复20220730更改中的错误,该错误导致定义变量的某些使用出错 - 仅当20220730的更改相关时。
20220730
修复定义变量的错误:如果一个定义的变量非线性地使用了一个问题变量,另一个定义的变量线性地使用第一个问题变量,没有对问题变量进行其他使用,并且第二个定义的变量是非线性使用的,那么就不计算关于问题变量的导数。例:
set I = 1..3; var x{i in I} := i;
var v1 = x[1] + x[2]^2;
var v2 = v1 + x[3]^3;
minimize obj: v2^2;
由于 .nl 文件x[2]中的错误,未计算有关的导数。
20220703
修复版本 20220505 中引入的故障:在数据部分中,下标集的下标中未引号的“-”给出了错误消息。例:
set S; set T{S}; data;
set S := 2022-06-26_03;
set T[2022-06-26_03] := a b c;
display T;
将第三行更改为
set T['2022-06-26_03'] := a b c;
是一个变通办法。
20220621
修复控制台输入的故障:如果光标位于当前行的开头(可能是因为按了 HOME 键),则 DELETE 键不执行任何操作。
使用历史记录和向上和向下箭头键可以正确调用的最长行从 1000 个字符增加到 4000 个字符。
20220506
在数据部分中,当 x 是变量时,当 x 还没有当前值时,将 x.val 视为 x,当 c 是约束时,对于 c 和 c.dual ,同样。
在小例子中
var x; data; var x.dual := 3;
将错误消息从“dual 不是后缀”更改为“dual 不是可分配的后缀”。(当 x 是用 “” 声明的已定义变量时,x.dual 是隐含约束 “x = 表达式” 的对偶变量的值。定义的变量被替换出问题,因此求解器看不到它们,但有时希望看到它们的对偶变量值。var x = expression;
20220505
修复了 “” 命令中的一个错误,该错误未打印约束的默认值(双精度)。例:show
var x; s.t. cx default 1: x <= 4;
show cx;
允许后缀(关于变量、约束、目标、问题)出现在数据部分中。像通常的数据部分一样,约束、目标或问题的名称可以用“param”或“var”引入。例如
var x;
minimize o: (x-3)^2;
suffix foo;
data;
var o.foo 3.2; # or "var o := 3.2"; the ":=" is optional here.
# or "param o.foo 3.2", etc.
这是为了使“快照”更有效率;不会检查是否替换后缀值。
如果指定了 ,并且在预解后没有变量仍然使用,输出x[2] “# No .nl file written: no variables used.”"option show_write_files 2"
悄悄地减少 printf 格式中荒谬的大精度。例如,出错。现在它可以工作并静默减少到 ."%.410g""%.500g""%.415g"
|