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 相关文章推荐
PyCharm代码整体缩进,反向缩进的方法
Jun 25 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
Django使用模板后无法找到静态资源文件问题解决
Jul 19 Python
python 画函数曲线示例
Dec 04 Python
Python双链表原理与实现方法详解
Feb 22 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 Python
如何在mac版pycharm选择python版本
Jul 21 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
python获取命令行参数实例方法讲解
Nov 02 Python
python re.match()用法相关示例
Jan 27 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
PHP将进程作为守护进程的方法
2015/03/19 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
js实现移动端轮播图
2020/12/21 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
Python3 操作符重载方法示例
2017/11/23 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
旅游管理毕业生自荐信
2013/11/05 职场文书
工地安全生产标语
2014/06/06 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
党性分析自查总结
2014/10/14 职场文书
作文评语集锦
2014/12/25 职场文书
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技