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基础教程之字典操作详解
Mar 25 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
python连接数据库的方法
Oct 19 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
python版微信跳一跳游戏辅助
Jan 11 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Python设计模式之外观模式实例详解
Jan 17 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
Python Unittest原理及基本使用方法
Nov 06 Python
python index() 与 rindex() 方法的使用示例详解
Dec 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python类的动态修改的实例方法
2017/03/24 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
造价工程师个人求职信
2013/09/21 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
家长写给老师的建议书
2014/03/13 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
预备党员转正材料
2014/12/19 职场文书
单位实习鉴定评语
2015/01/04 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
基于flask实现五子棋小游戏
2021/05/25 Python
浅谈MySQL user权限表
2021/06/18 MySQL