pyomo索引集

时间:2019-05-07 18:12:44

标签: python set pyomo indexed

我对Pyomo还是很陌生,试图弄清楚索引集(一组集合)的用例是什么。据我所知,它可以代替参数并以相同的方式运行。对于在Pyomo中应如何使用索引集的任何见解或示例,将不胜感激。

在尝试创建一个“标记”我的时间集合t的集合时,我遇到了这个问题。我将model.t作为一组时间戳记,例如,想说前3个时间戳记是组A的一部分,接下来的3个时间戳记是B组的一部分,依此类推。建模并感觉到参数与索引集的作用相同

import datetime
import pyomo.environ as pe

class CreateModel:
    def __init__(self):
        self.model = pe.AbstractModel()
        self.model.t = pe.Set()
        self.model.labels = pe.Set()
        self.model.labeled_t = pe.Set(self.model.labels)

        # OR
        # self.model.labeled_t = pe.Param(self.model.labels)


def main():
    # Some dummy input data
    inputs = {
        None:{
            't':{
                None:[
                    datetime.date(2020, 1, 1), datetime.date(2020, 1, 2),
                    datetime.date(2020, 1, 3), datetime.date(2020, 1, 4)
                ]
            },
            'labels':{None:{'A', 'B'}},
            'labeled_t':{
                'A':[datetime.date(2020, 1, 1), datetime.date(2020, 1, 2)],
                'B':[datetime.date(2020, 1, 3), datetime.date(2020, 1, 4)]
            }
        }
    }
    m = CreateModel()
    m.model.create_instance(inputs)

if __name__ == '__main__':
    main()

在此示例中,行为是相同的,那么为什么我要索引集呢?

0 个答案:

没有答案