2021-09-06 python优化求解器gurobi学习笔记

这里写自定义目录标题

Gurobi学习笔记

近期做科研用到优化方法~奈何matlab优化求解器的精度无法达到要求,故准备转战python gurobi求解器

下载地址

  1. 官网下载工具包:www.gurobi.com
    中文官网学习资料:http://www.gurobi.cn/picexhview.asp?id=90
  2. 安装过程略

学习记录

一、 python语法复习

  1. 基础数据结构
    1)列表
    list1 = [‘physics’, ‘chemistry’, 1997, 2000]
    list2 = [1, 2, 3, 4, 5, 6, 7 ]
    print "list1[0]: ", list1[0]
    print "list2[1:5]: ", list2[1:5]
    函数
    cmp len max min list
    方法
    append count extend index insert pop remove reverse sort
    2)元组
    与列表类似,不同在于元组的元素不能修改;元组中只包含一个元素时,需要在元素后面添加逗号,语法用括号
    仅能访问、连接、(全部)删除
    3)字典
    键值不可变,所以可用数字、字符串或元组,不能用列表
    dict1 = { ‘abc’: 456 }
    dict2 = { ‘abc’: 123, 98.6: 37 }
    函数
    cmp len str type
    方法
    clear copy fromkeys get has_key items keys setdefault update
  1. python模块
    1)pyhton模块化工具包
    数组运算:Numpy
    import numpy as np
    a = np.array([1, 2, 3, 4, 5], ndmin = 2)
    print (a)
    操作表达式:numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
    定义数据类型 np.dtype([(‘age’,np.int8)])
    ndarray属性ndim shape size itemsiz flags real imag data
    创建全零数组 x = np.zeros(5)
    创建全1数组 x = np.ones(5)
    正态分布数组 创建 randn(size) 服从 X~N(0,1) 的正态分布随机数组
    a=random.randn(2,3)
    随机分布数组创建随机分布整数型数组指定范围在 [low.high] 之间
    a=random.randint(100,200,(3,3))
    顺序数组
    numpy.arange(start, stop, step, dtype)
    a = np.arange(10)
    np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
    a = np.linspace(1,10,10)
    对角矩阵 a = np.eye(5)
    从列表、元组创建数组 a = np.asarray(x)
    迭代器 np.nditer(a) numpy.ndarray.flat
    形状 numpy.reshape
    展平 numpy.ndarray.flatten/ravel
    转置 numpy.transpose(arr, axes)/ndarray.T
    数学函数三角函数 舍入函数
    算术函数 add subtract multiply divide reciprocal
    统计函数 amin amax mean/average std var
    矩阵库 numpy.matlib
    numpy.matlib.ones()
    numpy.matlib.zeros()
    numpy.matlib.eye()
    numpy.matlib.identity()
    numpy.matlib.rand()
    线性代数 dot vdot inner
    画图
    import numpy as np
    from matplotlib import pyplot as plt
    x = np.arange(1,11)
    y = 2 * x + 5
    plt.title(“Matplotlib demo”)
    plt.xlabel(“x axis caption”)
    plt.ylabel(“y axis caption”)
    plt.plot(x,y)
    plt.show()
    2)自定义python文件
    e.g.如在文件support.py中定义函数
    定义
    def 名称(关键字、默认、不定长参数):
    函数主体
    return**
    导入+调用
    import support
    support.名称(参数)

Gurobi建模过程
Gurobi建模概念
模型
添加变量 m.addVars()
添加目标函数 m.setObjective()
添加约束条件 m.addConstr()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值