【问题标题】:Ordering the Display in AMPL在 AMPL 中订购显示器
【发布时间】:2022-01-18 14:04:22
【问题描述】:

我正在为调度问题做一个模型,我已经解决了,但我想按新月数排序输出。这是我的输出,其中 X[i] 是作业 i 开始的时间。

x [*] :=
NM2646FX-1024  109.5
 NM2646FX-107  138.3
NM2646FX-1115  120.3
 NM2646FX-176  213.3
 NM2646FX-220  180.3
  NM2646FX-81  220.8
 NM2646FX-999  285.9
RD1060FX-2144   68.1
RD1060FX-3854   34.5
 RD720FX-1515    0
  RD720FX-878  237.9
;

【问题讨论】:

    标签: ampl


    【解决方案1】:

    不幸的是,唯一可以在 AMPL 中轻松排序的模型实体类型是 set。对参数进行排序比较棘手。您可以创建一个有序的 set 并将您的 x 变量的值分配给它:

    set xOrderedSet ordered by Reals;
    let xOrderedSet := setof {i in S} x[i].val;
    display xOrderedSet;
    

    我相信这只有在所有 x 都是唯一的情况下才有效。然后您可以创建一个参数xOrdered 来将值与其各自的集合条目映射:

    param xOrdered{xOrderedSet} symbolic;
    
    for {i in xOrderedSet} {
        let {s in S : i = x[s].val} xOrdered[i] := s;
    }
    
    display xOrdered;
    

    有关let 命令here 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      相关资源
      最近更新 更多