cplex 中的提前期建模(生产计划问题)

问题描述 投票:0回答:1

Constraint

对于这个问题,我想在 cplex 中建模这个约束。但是我不确定我放置的索引是否正确。谁能帮我解释一下我是否做错了。这是我的一些代码:

Data:
Products = {P1 P2 P3};
NbOperations = 10;
NbPeriods = 3;
LeadTime = [1,1,3,5,0,0,3,0,0,0];

{string} Products = ...;
int NbOperations = ...; range Operations = 1..NbOperations;
int NbPeriods = ...; range Periods = 1..NbPeriods;
int LeadTime[Operations]= ...;

dvar int+ Y[Products][0..NbOperations][Periods];
dvar int+ Xin[Products][-4..NbPeriods];
  forall(p in Products,l in Operations,t in Periods)
  ct3:
    Xin[p][t-LeadTime[l]] == Y[p][l][t];

LeadTime 是产品 p 的 l 操作的预计提前期。就我而言,我假设所有产品的交货时间都是相同的。

我觉得-4 是错误的。但是,我不知道如何改变它。 预先感谢。

indexing cplex
1个回答
0
投票

你也可以切片然后就不用写-4

{string} Products = ...;
int NbOperations = ...; range Operations = 1..NbOperations;
int NbPeriods = ...; range Periods = 1..NbPeriods;
int LeadTime[Operations]= ...;

dvar int+ Y[Products][0..NbOperations][Periods];
dvar int+ Xin[Products][1..NbPeriods];

subject to
{
  forall(p in Products,l in Operations,t in Periods:(t-LeadTime[l]) in 1..NbPeriods)
  ct3:
    Xin[p][t-LeadTime[l]] == Y[p][l][t];
  }    
© www.soinside.com 2019 - 2024. All rights reserved.