gpt4 book ai didi

algorithm - 使用 Lingo 进行加权目标编程

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:30 24 4
gpt4 key购买 nike

我有一个关于分配问题的优化问题。我用加权目标编程算法编写了它(我引入了一些偏差等)。我尝试用 Lingo 解决这个算法。不幸的是,每次我尝试解决它时,Lingo 都会返回一些错误代码,例如 属性名称的不当使用。这很奇怪,因为我很难定义算法中使用的所有参数。我的行话文件与电子表格通信。此电子表格用作数据库。

行话代码:

Blockquote

SETS:
PLAGESHORAIRES:;
PATIENTS:zp;
AFFECTATION(PATIENTS,PLAGESHORAIRES):Yph,dph,qph,Aph;
DEVIATION_SET / 1 / : G;
ENDSETS

DATA:
PLAGESHORAIRES=@OLE();
PATIENTS=@OLE();
dph=@OLE();
qph=@OLE();
dmax=@OLE();
dmin=@OLE();
nb=@OLE();
wa=@OLE();
wb=@OLE();

@OLE()=Yph;
@OLE()=G;
@OLE()=Aph;
ENDDATA

!OBJECTIF FUNCTION;
[OBJECTIF] MIN = wa*(1/6)*G + wb*(1/12)*@SUM(AFFECTATION(p,h):Aph(p,h));

!SUBJECT TO;

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!AFFECTATION;
!HARD CONSTRAINTS;

@FOR(PLAGESHORAIRES(h):
@SUM(PATIENTS(p):Yph(p,h))<=1
);

@FOR(PATIENTS(p):
@SUM(PLAGESHORAIRES(h):Yph(p,h))<=1
);

!SOFT CONSTRAINTS;

@SUM(AFFECTATION(p,h):Yph(p,h))-G = nb;

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DISTANCES ;
!HARD CONSTRAINTS;

@FOR(PATIENTS(p):
@FOR(PLAGESHORAIRES(h):
dph(p,h)*Yph(p,h)<=dmax
)
);

!SOFT CONSTRAINTS;

@FOR(PATIENTS(p):
@FOR(PLAGESHORAIRES(h):
dph(p,h)*Yph(p,h)-Aph(p,h)=dmin
)
);

@FOR(PATIENTS(p):
@FOR(PLAGESHORAIRES(h):
@BIN(Yph(p,h))
)
);

@FOR(PATIENTS(p):
@FOR(PLAGESHORAIRES(h):
@BIN(qph(p,h))
)
);

@FOR(PATIENTS(p):
@FOR(PLAGESHORAIRES(h):
@GIN(Aph(p,h))
)
);

!RENVOI DANS EXCEL;
DATA :
@OLE()=OBJECTIF;
ENDDATA

非常感谢您的帮助。文森特

最佳答案

变量 G 已声明为集合的属性,即,G 是一个下标变量,但是,在

[OBJECTIF] MIN = wa*(1/6)*G + ...

它没有下标,所以你必须这样做:

[OBJECTIF] MIN = wa*(1/6)*G(1) + ...

如需进一步帮助,请联系供应商,www.lindo.com

关于algorithm - 使用 Lingo 进行加权目标编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44933543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com