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 相关文章推荐
Python3读取文件常用方法实例分析
May 22 Python
python实现数组插入新元素的方法
May 22 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python基础while循环及if判断的实例讲解
Aug 25 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python3利用Socket实现通信的方法示例
May 06 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
python 等差数列末项计算方式
May 03 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 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查看session内容的函数
2008/08/27 PHP
php adodb连接不同数据库
2009/03/19 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
python中反射用法实例
2015/03/27 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python for循环中的陷阱详解
2018/07/13 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
简单了解Python write writelines区别
2020/02/27 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python实现经纬度采样的示例代码
2020/12/10 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
《锄禾》教学反思
2014/04/08 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
药剂专业自荐书
2014/06/20 职场文书
学雷锋宣传标语
2014/06/25 职场文书
鲁迅故里导游词
2015/02/05 职场文书
公司表扬信格式
2015/05/04 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2016年教师节慰问信
2015/12/01 职场文书
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫