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 28 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python3实现的反转单链表算法示例
Mar 08 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
Python笔试面试题小结
Sep 07 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
详解python中docx库的安装过程
Nov 08 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 Python
python 可视化库PyG2Plot的使用
Jan 21 Python
浅谈Python基础之列表那些事儿
May 11 Python
利用For循环遍历Python字典的三种方法实例
Mar 25 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中的cookie
2006/11/26 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP排序算法类实例
2015/06/17 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
浅析return false的正确使用
2013/11/04 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
iPython pylab模式启动方式
2020/04/24 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
庆七一主持词
2015/06/29 职场文书
幼儿园中班班级总结
2015/08/10 职场文书