当前位置: 首页>>代码示例>>Python>>正文


Python Model.addSOS方法代码示例

本文整理汇总了Python中pyscipopt.Model.addSOS方法的典型用法代码示例。如果您正苦于以下问题:Python Model.addSOS方法的具体用法?Python Model.addSOS怎么用?Python Model.addSOS使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pyscipopt.Model的用法示例。


在下文中一共展示了Model.addSOS方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: eld_complete

# 需要导入模块: from pyscipopt import Model [as 别名]
# 或者: from pyscipopt.Model import addSOS [as 别名]
def eld_complete(U,p_min,p_max,d,brk):
    """eld -- economic load dispatching in electricity generation
    Parameters:
        - U: set of generators (units)
        - p_min[u]: minimum operating power for unit u
        - p_max[u]: maximum operating power for unit u
        - d: demand
        - brk[k]: (x,y) coordinates of breakpoint k, k=0,...,K
    Returns a model, ready to be solved.
    """

    model = Model("Economic load dispatching")

    p,F = {},{}
    for u in U:
        p[u] = model.addVar(lb=p_min[u], ub=p_max[u], name="p(%s)"%u)    # capacity
        F[u] = model.addVar(lb=0,name="fuel(%s)"%u)

    # set fuel costs based on piecewise linear approximation
    for u in U:
        abrk = [X for (X,Y) in brk[u]]
        bbrk = [Y for (X,Y) in brk[u]]

        # convex combination part:
        K = len(brk[u])-1
        z = {}
        for k in range(K+1):
            z[k] = model.addVar(ub=1) # do not name variables for avoiding clash

        model.addCons(p[u] == quicksum(abrk[k]*z[k] for k in range(K+1)))
        model.addCons(F[u] == quicksum(bbrk[k]*z[k] for k in range(K+1)))
        model.addCons(quicksum(z[k] for k in range(K+1)) == 1)
        model.addSOS(GRB.SOS_TYPE2, [z[k] for k in range(K+1)])

    # demand satisfaction
    model.addCons(quicksum(p[u] for u in U) == d, "demand")

    # objective
    model.setObjective(quicksum(F[u] for u in U), "minimize")

    model.data = p
    return model
开发者ID:fserra,项目名称:PySCIPOpt,代码行数:44,代码来源:eld.py


注:本文中的pyscipopt.Model.addSOS方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。