AMPL代码编译问题:已经定义

我在AMPL中的任务很短。

有类似的问题,但是并没有给我带来解决方案

这是我的.mod文件:


set MOTORS;
set FABRICS;

param work {FABRICS,MOTORS}>= 0;
param power {FABRICS}>= 0;
param price {MOTORS}>= 0;

var prod {MOTORS}>= 0;
var use {o in FABRICS} = sum {k in MOTORS} work [o,k] * prod[k];
var free {o in FABRICS} >= 0;

var income = sum {k in MOTORS} price[k]*prod[k];

maximize income;

s.t. Ogrfreepower {o in FABRICS}:  free[o]= power[o]- use[o];

这是我的.dat文件:

set MOTORS:= GL SL ;
set FABRICS:= montage paintshop;

    param work:  GL  SL:=
    montage   2   5 
    paintshop   3   3
        ;

    param:  power :=
    montage   150
    paintshop   180
    ;

    param:  price :=
    GL  2
    SL  3
    ;

这是我的.run文件:

#RESET THE AMPL ENVIROMENT

reset;

model example1.mod;

data example1.dat;

#LOAD THE MODEL

option solver './cplex';

#SOLVE
solve;

#SHOW RESULTS
display income;

当我尝试使用控制台时

ampl: include example1.run;

它带给我:

example1.mod,line 19 (offset 314):
    income is already defined
context:  maximize  >>> income; <<< 

我应该更改什么才能正确编译?

Huffmanhuang 回答:AMPL代码编译问题:已经定义

尝试更改

maximize income;

收件人:

maximize objective_function: income;

AFAIK,这里的问题是AMPL将变量和目标函数视为单独的实体。 maximize income被解释为在您已经有一个名为“收入”的目标函数的情况下声明该函数,因此会出现“已定义”错误。

,

更改为以下内容时也可以使用

props.match.params.idList

代替:

maximize zysk2: sum {k in SKUTERY} cena[k]*prod[k];
本文链接:https://www.f2er.com/3132114.html

大家都在问