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正则用法实例讲解
Jun 21 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python简单读取json文件功能示例
Nov 30 Python
Django 实现购物车功能的示例代码
Oct 08 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
设置python3为默认python的方法
Oct 31 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
django迁移文件migrations的实现
Mar 31 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 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
附件名前加网站名
2008/03/23 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
深入php数据采集的详解
2013/06/02 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
javascript 函数参数限制说明
2010/11/19 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
javascript的BOM
2016/05/03 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
如何基于Python按行合并两个txt
2020/11/03 Python
教师实习自我鉴定
2013/12/11 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
大学生党员个人总结
2015/02/13 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
亮剑观后感500字
2015/06/05 职场文书
教师教育心得体会
2016/01/19 职场文书
信息技术课教学反思
2016/02/23 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
Python开发五子棋小游戏
2022/04/28 Python