码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • GROUBI


    #Gurobi建模思路
    1.Probem Instance:待优化问题
    2.Model Generator:将数据组合成模型,产生计算机模型对象
    3.Model Instance:存在于内存的一个完整数学模型
    4.Gurobi Optimizer:Gurobi 优化求解
    5.Solution Retrieval:根据需要读取优化结果
    6.Analysis:对结果进行分析
    #Gurobi建模基本概念
    Parameter:控制优化器的行为
    Attributes:控制模型(包括模型、变量、约束、目标等对象)的特征
    Environment:包含模型和全局参数的一个容器,也是许可控制的节点
    ##特有的扩展对象
    ###TupleList和TupleDict
    TupleList增加了快速筛选select功能

    from gurobipy import *
    cities = [("A","B"),("A","C"),("B","C"),("B","D"),("C","D")]
    Routes = tuplelist(cities)
    print(Routes.select("A","*"))
    
    #运行结果
    <gurobi.tuplelist (2 tuples, 2 values each):
     ( A , B )
     ( A , C )
    >
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    键值为tuple(元组),可以使用select,sum,prod,以及quicksum函数

    ###Multidict()创建tuplelist和tupledict的便捷方法

    cities,supply,demand = multidict({
        "A":[100,20],
        "B":[150,50],
        "C":[20,300],
        "D":[10,200]
        })
        运行结果
        cities
    Out[6]: ['A', 'B', 'C', 'D']
    
    supply
    Out[7]: {'A': 100, 'B': 150, 'C': 20, 'D': 10}
    
    demand
    Out[8]: {'A': 20, 'B': 50, 'C': 300, 'D': 200}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    ###sum和quicksum均可求和,quicksum效率更高
    ###prob函数,用于变量和系数相乘后累加
    以下两个表达式等效
    obj = quicksum(cost[i,j]*x[i,j] for i,j in arcs)
    obj=x.prob(cost

    ##建模尽量采用系数方式
    利用tuplelist.select()以及tupledict.select(),tupledict.sum(),tupledict.prod()对下标进行组合处理
    #Gurobi建模过程
    1,添加变量
    addVar()—单个变量进行添加
    adddVars()—批量变量进行添加
    2,创建模型
    setObjective()
    3,添加约束条件
    addConstr()—单个约束条件进行添加
    addConstrs()—批量约束条件进行添加
    4,优化求解
    optimize()

  • 相关阅读:
    springboot毕设项目社团活动网站b7rjo(java+VUE+Mybatis+Maven+Mysql)
    leetcode_171Excel表列序号
    Android finishInputEvent 流程分析
    【React-Hooks进阶】useState回调函数的参数 / useEffect发送网络请求/ useRef / useContext
    元素跟随鼠标移动
    vue-manage-system升级到vue3的开发总结
    详细解析张雪峰老师对计算机专业的评价“进可攻,退可守”--【职场篇】
    面向对象设计原则快速理解
    react实现websocket消息推送
    【Java后台】从零开始的Java后台开发(二)
  • 原文地址:https://blog.csdn.net/WMM_123456/article/details/125559166
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号