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全局变量操作详解
Apr 14 Python
PyMongo安装使用笔记
Apr 27 Python
python检查指定文件是否存在的方法
Jul 06 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
python spyder中读取txt为图片的方法
Apr 27 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
python+opencv实现阈值分割
Dec 26 Python
详解Python 定时框架 Apscheduler原理及安装过程
Jun 14 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
php从字符串创建函数的方法
2015/03/16 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
社区中秋节活动方案
2014/01/29 职场文书
秸秆管理实施方案
2014/03/15 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
小学见习报告
2014/10/31 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
生日赠语
2015/06/23 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
openstack中的rpc远程调用的方法
2021/07/09 Python