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程序中自定义异常的方法
Oct 16 Python
Python字符串处理实现单词反转
Jun 14 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
python使用opencv读取图片的实例
Aug 17 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
解决PyCharm控制台输出乱码的问题
Jan 16 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
Python制作词云图代码实例
Sep 09 Python
Django实现网页分页功能
Oct 31 Python
python中 .npy文件的读写操作实例
Apr 14 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
Smarty安装配置方法
2008/04/10 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHP常用的小程序代码段
2015/11/14 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
JavaScript开发时的五个注意事项
2007/12/08 Javascript
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
AngularJS快速入门
2015/04/02 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
vue 移动端适配方案详解
2018/11/15 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
Python实现约瑟夫环问题的方法
2016/05/03 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
你常见到的runtime exception
2016/09/05 面试题
大学生求职中的自我评价
2013/10/01 职场文书
北大自主招生自荐信
2013/10/19 职场文书
日语求职信范文
2013/12/17 职场文书
授权委托书格式范文
2014/08/02 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
付款委托书范本
2014/10/05 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
python自动化测试之Selenium详解
2022/03/13 Python