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基于windows平台锁定键盘输入的方法
Mar 05 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
python实现汽车管理系统
Nov 30 Python
Django模板语言 Tags使用详解
Sep 09 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
python super()函数的基本使用
Sep 10 Python
Django返回HTML文件的实现方法
Sep 17 Python
python绘制分布折线图的示例
Sep 24 Python
python实现人性化显示金额数字实例详解
Sep 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
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
Tensorflow简单验证码识别应用
2017/05/25 Python
Python3 处理JSON的实例详解
2017/10/29 Python
Python 实现微信防撤回功能
2019/04/29 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python求解正态分布置信区间教程
2019/11/20 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
详解python metaclass(元类)
2020/08/13 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
运动会广播稿80字
2014/01/23 职场文书
运动会邀请函范文
2014/02/06 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
小学捐书活动总结
2014/07/05 职场文书
商场消防安全责任书
2014/07/29 职场文书
农村文化建设标语
2014/10/07 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
单位实习鉴定评语
2015/01/04 职场文书
同事欢送会致辞
2015/07/31 职场文书
国家助学金受助感言
2015/08/01 职场文书
商务宴会祝酒词
2015/08/11 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python