You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mosel中声明分属不同承运商的车辆集合?

Mosel中为承运商定义独立车辆集合的实现方案

一、修正基于Record的实现方式

你原代码的错误主要来自record字段定义不合理、变量声明不匹配,以及决策变量维度引用错误,以下是修正后的实现:

错误原因解析

  • vehicle_data里的Carrier字段无需定义为array(CARRIERS) of string,每个record应对应单个承运商,直接用string类型即可
  • CARRIER声明为单个vehicle_data变量无法存储所有承运商的车辆信息,需改为array(CARRIERS) of vehicle_data
  • 决策变量不能直接引用CARRIER.Vehicles(单个实例的范围),需针对每个承运商f引用其专属的车辆范围

修正后的代码

declarations
    CUSTOMERS: range
    CARRIERS: set of string
    
    ! 重新定义record:每个实例对应单个承运商的车辆信息
    vehicle_data = public record
        Carrier: string          ! 单个承运商标识
        Vehicles: range          ! 该承运商的车辆编号范围
    end-record
    
    ! 声明存储所有承运商车辆信息的数组
    CARRIER_VEHICLES: array(CARRIERS) of vehicle_data

    DEMAND: array(CUSTOMERS) of integer
    COSTS: array(CUSTOMERS, CARRIERS) of integer

    ! 决策变量:针对每个承运商f、其车辆k、客户i定义
    x_fik: dynamic array(f in CARRIERS, k in CARRIER_VEHICLES(f).Vehicles, i in CUSTOMERS) of mpvar 
    ! 含义:承运商f的车辆k是否前往客户i(1=是,0=否)

    y_fk: dynamic array(f in CARRIERS, k in CARRIER_VEHICLES(f).Vehicles) of mpvar 
    ! 含义:承运商f的车辆k是否被使用(1=是,0=否)

    FILENAME = "Data_Model_3.dat"
end-declarations

initializations from FILENAME
    CUSTOMERS CARRIERS CARRIER_VEHICLES DEMAND COSTS
end-initializations

二、基于集合数组的实现方案(推荐)

你提出的VEHICLES: array(CARRIERS) of set of integer方案完全可行,且更简洁直观,适合这种"每个承运商对应独立车辆集合"的场景,具体实现如下:

代码示例

declarations
    CUSTOMERS: range
    CARRIERS: set of string
    ! 每个承运商对应一组车辆编号集合
    VEHICLES: array(CARRIERS) of set of integer 

    DEMAND: array(CUSTOMERS) of integer
    COSTS: array(CUSTOMERS, CARRIERS) of integer

    ! 决策变量:直接引用每个承运商的车辆集合
    x_fik: dynamic array(f in CARRIERS, k in VEHICLES(f), i in CUSTOMERS) of mpvar 
    y_fk: dynamic array(f in CARRIERS, k in VEHICLES(f)) of mpvar 

    FILENAME = "Data_Model_3.dat"
end-declarations

initializations from FILENAME
    CUSTOMERS CARRIERS VEHICLES DEMAND COSTS
end-initializations

这种方式无需额外定义record,直接通过数组关联承运商与车辆集合,代码更简洁,数据初始化也更方便。

内容的提问来源于stack exchange,提问作者Roxana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:03:18