Python二次规划和线性规划使用实例


Posted in Python onDecember 09, 2019

这篇文章主要介绍了Python二次规划和线性规划使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

对于二次规划(quadratic programming)和线性规划(Linear Programming)问题

MATLAB里是有quadprog函数可以直接用来解决二次规划问题的,linprog函数来解决线性规划问题。Python中也有很多库用来解决,对于二次规划有CVXOPT, CVXPY, Gurobi, MOSEK, qpOASES 和 quadprog; 对于线性规划有Gurobi,PuLP, cvxopt。

目前发现quadprog进行pip install quadprog不成功,而cvxopt成功了,就先说cvxopt的使用。

安装

conda install -c conda-forge cvxopt

安装非常顺利

使用

cvxopt有自己的matrix格式,因此使用前得包装一下

对于二次规划:

def cvxopt_solve_qp(P, q, G=None, h=None, A=None, b=None):
  P = .5 * (P + P.T) # make sure P is symmetric
  args = [cvxopt.matrix(P), cvxopt.matrix(q)]
  if G is not None:
    args.extend([cvxopt.matrix(G), cvxopt.matrix(h)])
    if A is not None:
      args.extend([cvxopt.matrix(A), cvxopt.matrix(b)])
  sol = cvxopt.solvers.qp(*args)
  if 'optimal' not in sol['status']:
    return None
  return np.array(sol['x']).reshape((P.shape[1],))

对于线性规划:

def cvxopt_solve_lp(f, A, b):
  #args = [cvxopt.matrix(f), cvxopt.matrix(A), cvxopt.matrix(b)]
  #cvxopt.solvers.lp(*args)
  sol = cvxopt.solvers.lp(cvxopt.matrix(f), cvxopt.matrix(A), cvxopt.matrix(b))
  return np.array(sol['x']).reshape((f.shape[0],))

参考:

Quadratic Programming in Python

Linear Programming in Python with CVXOPT

cvxopt.org

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
学习python (1)
Oct 31 Python
Python从MP3文件获取id3的方法
Jun 15 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
21行Python代码实现拼写检查器
Jan 25 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
解决pycharm界面不能显示中文的问题
May 23 Python
python如何删除文件中重复的字段
Jul 16 Python
python实现抠图给证件照换背景源码
Aug 20 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 #Python
如何将 awk 脚本移植到 Python
Dec 09 #Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 #Python
基于YUV 数据格式详解及python实现方式
Dec 09 #Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 #Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 #Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 #Python
You might like
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
iframe实用操作锦集
2014/04/22 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
python实现自动登录
2018/09/17 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python虚拟环境完美部署教程
2019/08/06 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
波兰在线运动商店:YesSport
2020/07/23 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
常务副总经理岗位职责
2014/04/12 职场文书
股东合作协议书范本
2014/04/14 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
预备党员转正意见
2015/06/01 职场文书
小学记事作文之200字
2019/08/06 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android