执行AMPL模型时如何解决“未声明变量”错误

时间:2019-07-09 11:59:11

标签: linear-programming ampl

我是一名学习AMPL的学生,并且正在研究线性问题。当我尝试用一​​些数据解决它时,我收到以下消息:

文件存在 您正在使用求解器cplexamp。 正在检查ampl.mod中的cplex_options ... 正在检查ampl.com中的cplex_options ... 执行AMPL。 处理数据。 处理命令。 在prod-exec-3.neos-server.org上执行 没有声明任何变量。

我不知道“文件存在”指的是什么。应该在这里吗?但是我担心“没有声明变量”。这是什么意思?我已经搜索了很多有关如何正确声明变量的信息,但是找不到任何有用的信息。

我尝试过多种声明变量P的方法,但我认为这是正确的(过去它在另一个问题上对我有用)。

这是我的模型的副本。

param n_persones;
param n_unitats;
param max_caps;
param min_caps;

set caps := 1..n_persones;
set unitats := 1..n_unitats;
param si_unitats{caps,unitats};
param no_unitats{caps,unitats};
param si_cocaps{caps,caps};
param no_cocaps{caps,caps};
param pes{caps};

var P{i in caps, k in unitats} binary;

maximize f :
sum {i in caps} (pes[i] * (sum {k in unitats} (sum {j in caps} (si_cocaps[i,j] * P[i,k] * P[j,k] - no_cocaps[i,j] * P[i,k] * P[j,k])))
 + ((1 - pes[i]) * (sum {k in unitats} (si_unitats[i,k] * P[i,k] - no_unitats[i,k] * P[i,k]))));

subject to fitasup {k in unitats}: 
(sum {j in caps} P[j,k]) <= max_caps;
subject to fitainf {k in unitats}:
(sum {j in caps} P[j,k]) >= min_caps; 
subject to una_unitat_per_cap {i in caps}:
(sum {k in unitats} P[i,k]) == 1;

0 个答案:

没有答案