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 08 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
python中执行shell的两种方法总结
Jan 10 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
Python魔法方法详解
Feb 13 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
python flask几分钟实现web服务的例子
Jul 26 Python
面向对象学习之pygame坦克大战
Sep 11 Python
python实现在线翻译功能
Mar 03 Python
Python telnet登陆功能实现代码
Apr 16 Python
python办公自动化之excel的操作
May 23 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 引用文件技巧
2010/03/02 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
jquery下checked取值问题的解决方法
2012/08/09 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
JS的get和set使用示例
2014/02/20 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
Python中itertools模块用法详解
2014/09/25 Python
python并发编程之线程实例解析
2017/12/27 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
python中二分查找法的实现方法
2020/12/06 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
工会主席岗位责任制
2014/02/11 职场文书
技能比赛获奖感言
2014/02/14 职场文书
团委竞选演讲稿
2014/04/24 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
服务员岗位职责范本
2015/04/09 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
浅析Django接口版本控制
2021/06/26 Python
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL