码农知识堂 - 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()

  • 相关阅读:
    d3d12龙书阅读----绘制几何体(下)
    咖啡店怎么做才能赚钱?一个公式,简单粗暴简单做到
    建立一个新的高阶数学教授模式,知其然,知其用,知其之所以然,知其所以然
    Python吴恩达深度学习作业11 -- 卷积神经网络的实现
    如何在Windows 的 WSL 上安装非桌面版的 Docker?
    冰冰学习笔记:二叉树的进阶OJ题与非递归遍历
    【vitis】 AIE basic
    SpringBoot项目实战:笔记记录分享网站-计算机毕业设计选题推荐
    redis的解决分布式锁的bug 和 redis面试题
    Java多线程(6):锁与AQS(下)
  • 原文地址: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号