栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

FCAM分配(gurobi)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FCAM分配(gurobi)

gurobi安装学术版
第一步

import gurobipy
import pandas as pd
from gurobipy import quicksum
class FACM(object):
    def __init__(self,input_var,output_var,epsilon,Fa,DMUs,data):
        self.q = len(data[DMUs])
        self.m= len(input_var)
        self.s=len(output_var)
        self.result = []
        self.Y = pd.Dataframe(data[output_var])
        self.X = pd.Dataframe(data[input_var])
        self.epsilon = epsilon
        self.Fa=Fa
    def run(self):
        MODEL = gurobipy.Model()
        alpha = MODEL.addVars(self.s,name = 'alpha')
        beta = MODEL.addVars(self.m,name = 'beta')
        e_q = MODEL.addVars(self.q,name = 'efficiency')
        f = MODEL.addVars(self.q,name = 'carbon_distr')
        MODEL.update()
        MODEL.setObjective(1/self.q * (quicksum(e_q[i] for i in range(self.q))),sense=gurobipy.GRB.MAXIMIZE )
        MODEL.addConstrs(quicksum(alpha[i] * self.Y.iloc[j,i] for i in range(self.s)) == (f[j]  + quicksum(beta[i] * self.X.iloc[j,i] for i in range(self.m))) *  e_q[j] for j in range(self.q))
        MODEL.addConstrs(0<=e_q[i] for i in range(self.q))
        MODEL.addConstrs(e_q[i]<=1 for i in range(self.q))
        MODEL.addConstrs(alpha[i] >= self.epsilon for i in range(self.s))
        MODEL.addConstrs(beta[i] >= self.epsilon for i in range(self.m))
        MODEL.addConstrs(quicksum(f[i] for i in range(self.q)) == self.Fa for i in range(self.q))
        MODEL.setParam('OutputFlag', 1) #1代表动态汇报结果
        MODEL.setParam("NonConvex", 2)  #2代表非线性
        MODEL.optimize()
  #      print(gurobipy.GRB.attr.BatchErrorCode)#    var.getAttr()
        print(MODEL.objVal)
        for i in MODEL.getVars():
            print(i.varName, i.x)
        return self.result
FACM = FACM(input_var = [],output_var = [],epsilon = 0.000001,Fa = 1000,DMUs = [],data = data)
result = FACM.run()

第二步,那篇文章有质量问题,换思路吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号