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中光标变粗的问题
Aug 05 Python
pytorch 数据集图片显示方法
Jul 26 Python
windows中安装Python3.8.0的实现方法
Nov 19 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
django 多数据库及分库实现方式
Apr 01 Python
pandas中的ExcelWriter和ExcelFile的实现方法
Apr 24 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python能开发游戏吗
Jun 11 Python
Python使用socket模块实现简单tcp通信
Aug 18 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
基于mysql的论坛(1)
2006/10/09 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
php curl 上传文件代码实例
2015/04/27 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
python之Character string(实例讲解)
2017/09/25 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
pycharm远程调试openstack代码
2017/11/21 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python 动态调用函数实例解析
2019/10/21 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Django更新models数据库结构步骤
2020/04/01 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
用友笔试题目
2016/10/25 面试题
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
科研先进个人典型材料
2014/01/31 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
MySQL RC事务隔离的实现
2022/03/31 MySQL