全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1689 5
2022-10-07
[color=rgba(var(--pst-color-link),1)]2.0 Linear Programming[color=rgba(var(--pst-color-link),1)]3.0 Assignment Problems[color=rgba(var(--pst-color-link),1)]4.0 Scheduling with Disjunctive Constraints[color=rgba(var(--pst-color-link),1)]5.0 Simulation[color=rgba(var(--pst-color-link),1)]6.0 Differential-Algebraic Equations[color=rgba(var(--pst-color-link),1)]7.0 Parameter Estimation[color=rgba(var(--pst-color-link),1)]8.0 Financial Applications
附件列表

ND Pyomo Cookbook.zip

大小:66.24 MB

只需: 20 个论坛币  马上下载

每一小节一个PDF文件,每一章节讨论一个类型的问题,希望大家喜欢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2022-10-7 11:18:06
花开花落 又一个国庆快乐
点赞支持
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2022-10-8 07:36:02
jamesyujm2197 发表于 2022-10-7 10:00
2.0 Linear Programming
  • 2.1 Production Models with Linear Constraints
    [* ...
  • 谢谢老板的分享
    二维码

    扫码加我 拉你入群

    请注明:姓名-公司-职位

    以便审核进群资格,未注明则拒绝

    2022-10-22 08:29:51
    #用Pyomo解数独
    #数独
    import pyomo.environ as pe

    a = [1,2,3,4,5,6,7,8,9]
    c = [0,1,2]
    d = [1,2,3]

    m = pe.ConcreteModel()
    #定义变量,一个9*9的表,每个表元素定义9个可选值
    m.x = pe.Var(a,a,a,within=pe.Binary,initialize=0)

    #每个元素只能有一个值
    def rule_constr0(m,i,j):
        return sum([m.x[i,j,k] for k in a]) == 1
    m.constr0 = pe.Constraint(a,a,rule=rule_constr0)

    #每列元素之和为45
    def rule_constr1(m,i):
        return sum([k*m.x[i,j,k] for j in a for k in a]) == 45
    m.constr1 = pe.Constraint(a,rule=rule_constr1)

    #每列的元素不能相同
    def rule_constr11(m,i,j):
        return sum([m.x[i,k,j] for k in a]) == 1
    m.constr11 = pe.Constraint(a,a,rule=rule_constr11)

    #每行元素之和为45
    def rule_constr2(m,i):
        return sum([k*m.x[j,i,k] for j in a for k in a]) == 45
    m.constr2 = pe.Constraint(a,rule=rule_constr2)

    #每行的元素不能相同
    def rule_constr21(m,i,j):
        return sum([m.x[k,i,j] for k in a]) == 1
    m.constr21 = pe.Constraint(a,a,rule=rule_constr21)

    #每个9格小方块数字之和为45
    def rule_constr3(m,i,j):
        return sum([k*m.x[3*i+t,3*j+n,k] for t in d for n in d for k in a]) == 45
    m.constr3 = pe.Constraint(c,c,rule=rule_constr3)

    #每个9格小方块中数字不能相同
    def rule_constr31(m,i,j,k):
        return sum([m.x[3*i+t,3*j+n,k] for t in d for n in d]) == 1
    m.constr31 = pe.Constraint(c,c,a,rule=rule_constr31)

    #目标函数,在数独中,只要变量满足约束条件就行
    m.obj = pe.Objective(expr = sum([m.x[i,j,k] for i in a for j in a for k in a]),sense=pe.minimize)

    opt = pe.SolverFactory('glpk')
    result = opt.solve(m)

    jj = []

    #打印结果
    for i in a:
        for j in a:
            for k in a:
                if(pe.value(m.x[i,j,k])==1):
                    jj.append(k)
        print(jj)
        jj = []
    二维码

    扫码加我 拉你入群

    请注明:姓名-公司-职位

    以便审核进群资格,未注明则拒绝

    相关推荐
    栏目导航
    热门文章
    推荐文章

    说点什么

    分享

    扫码加好友,拉您进群
    各岗位、行业、专业交流群