scipy.optimize.minimize 解决实际问题
接上博客问题http://www.cnblogs.com/shizhenqiang/p/8274806.html
# coding=utf-8 from scipy import optimize
import numpy as np def get(): ar = [160, 130, 220, 170, 140, 130, 190, 150, 190, 200, 230]
fun = lambda x:(x[0]*ar[0]+x[1]*ar[1]+x[2]*ar[2]+x[3]*ar[3]+x[4]*ar[4]+ x[5]*ar[5]+x[6]*ar[6]+ x[7]*ar[7]+ x[8]*ar[8]+x[9]*ar[9]+x[10]*ar[10]) return fun def con():
# Equality constraint means that the constraint function result is to be zero whereas inequality means that it is to be non-negative
x1min, x2min, x3min, x4min,x5min ,x6min,x7min,x8min,x9min,x10min,x11min = [50, 60, 50, 30, 70, 10, 10, 80, 140,30,50]
cons = ({'type': 'eq', 'fun': lambda x: x[0] + x[1] + x[2] + x[3] - x1min},\
{'type': 'eq', 'fun': lambda x: x[4] + x[5] + x[6] + x[7] - x2min},\
{'type': 'eq', 'fun': lambda x: x[8] + x[9] + x[10] - x3min},\
{'type': 'ineq', 'fun': lambda x: x[0]+x[4]+x[8] - x4min},\
{'type': 'ineq', 'fun': lambda x: x[1] + x[5] + x[9] - x5min},\
{'type': 'ineq', 'fun': lambda x: x[2] + x[6] + x[10] - x6min}, \
{'type': 'ineq', 'fun': lambda x: x[3] + x[7] - x7min}, \
{'type': 'ineq', 'fun': lambda x: -(x[0] + x[4] + x[8] - x8min)}, \
{'type': 'ineq', 'fun': lambda x: -(x[1] + x[5] + x[9] - x9min)}, \
{'type': 'ineq', 'fun': lambda x: -(x[2] + x[6] + x[10] - x10min)}, \
{'type': 'ineq', 'fun': lambda x: -(x[3] + x[7] - x11min)}, \
)
return cons if __name__ == "__main__":
#args = (2, 3, 7, 8, 9, 10, 2, 2) #a, b, c, d, e, f,g,h #args = (0, 0,0, 0,0, 0, 0, 0) #a, b, c, d, e, f,g,h
#args1 = (-1000, 1000, -1000, 1000) #x1min, x1max, x2min, x2max
x0 = np.asarray((0, 0,0,0,0,0,0,0,0,0,0))
fun = get()
cons = con()
bnds = ((0, None), (0, None),(0, None), (0, None),(0, None), (0, None),(0, None), (0, None),(0, None), (0, None),(0, None))
res = optimize.minimize(fun, x0, method='CG', bounds=bnds,constraints=cons)
#print(res)
print(res.fun)
print(res.success)
print(res.x)
scipy.optimize.minimize 解决实际问题的更多相关文章
- 非线性规划带约束-scipy.optimize.minimize
# coding=utf-8 from scipy import optimize import numpy as np def get(args): a, b, c, d, e, f, g, h = ...
- Scipy优化算法--scipy.optimize.fmin_tnc()/minimize()
scipy中的optimize子包中提供了常用的最优化算法函数实现,我们可以直接调用这些函数完成我们的优化问题. scipy.optimize包提供了几种常用的优化算法. 该模块包含以下几个方面 使用 ...
- Scipy教程 - 优化和拟合库scipy.optimize
http://blog.csdn.net/pipisorry/article/details/51106570 最优化函数库Optimization 优化是找到最小值或等式的数值解的问题.scipy. ...
- 探索Windows命令行系列(6):活用批处理解决实际问题
1.批量修改文件名 2.批量重启服务 3.全盘搜索指定文件 3.1.全盘搜索名称为 mm.jpg 的文件,获取其全路径 3.2.查找系统中所有名称以 .docx 结尾的文件 4.调用可执行程序 4.1 ...
- 使用python scipy.optimize linprog和lingo线性规划求解最大值,最小值(运筹学学习笔记)
1.线性规划模型: 2.使用python scipy.optimize linprog求解模型最优解: 在这里我们用到scipy中的linprog进行求解,linprog的用法见https://doc ...
- 运用《深入理解Java虚拟机》书中知识解决实际问题
前言 以前看别人博客说看完<深入理解Java虚拟机>这本书并没有让自己的编程水平提高多少,不过却大大提高了自己的装逼水平.其实,我倒不这么认为,至少在我看完一遍这本书后,有一种醍醐灌顶的感 ...
- iOS正则表达式解决实际问题
问题:上海市徐汇区桂林路158号1202室 字符串长度不固定,数字长度也不固定.截取第二组数字. 方法一:[正则表达式] NSString * str = @"上海市徐汇区桂林路158号12 ...
- Matlib’s lsqnonlin 和 scipy.optimize’s least_square
matlib's lsqnonlin 和 scipy.optimize's least_square 问题 有三个点 $A,B,C$ , 经过一个线性变换 $T$ , 变为了 $A',B',C'$ 三 ...
- 安装Scipy出错的解决方法
lapack_opt_info: lapack_mkl_info: libraries mkl_rt not found in ['c:\\python27\\lib', 'C:\\', 'c:\\p ...
随机推荐
- 骗子网站,X毛都没有,骗我九十九
前言 这几天在A市和B市奔波着,眼瞅着自己就要毕业了,必须得出来找份工作了. 和小伙伴在A市兜兜转转了几天,要不就是不合适没下文,要不就是给了offer,工资是在太低.心很累,然后就下B市了,看看B市 ...
- 垃圾回收(GC) 的基本算法
GC 作为一个长久的话题,从诞生[1]至今也算是经历了六七十年了,对于很多习惯于使用 Java/Python 的同学来说,对于内存的管理可能会稍微更陌生一些,因为这些语言在语言层面就屏蔽了内存的分配和 ...
- Yii2.0源码阅读-一次请求的完整过程
Yii2.0框架源码阅读,从请求发起,到结束的运行步骤 其实最初阅读是从yii\web\UrlManager这个类开始看起,不断的寻找这个类中方法的调用者,最终回到了yii\web\Applicati ...
- 集合 (set) 的增删改查及 copy()方法
一.集合 1.集合的创建 set1 = set({1,2,'barry'}) set2 = {1,2,'barry'} print(set1,type(set1)) print(set2,type(s ...
- python抢火车票的脚本
起因: 想着那么多人,抢不到火车票.感觉到一丝感慨 所以有了抢火车票这个脚本. 0x01 思路:自动打开浏览器,自动输入账号密码 知道查看.自动预定. 0x02 要用到的模块 splinter模块: ...
- 常见 Java 异常解释(恶搞版)
常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题 ...
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有"同属于一个集合"的关系 线性结构:数据元素之间存在一个对一个的关系 树形结构:数据元素之间存在一个对多个关 ...
- Codeforces Round #301 (Div. 2)(A,【模拟】B,【贪心构造】C,【DFS】)
A. Combination Lock time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...
- [51nod1297]管理二叉树
一个初始为空的二叉搜索树T,以及1到N的一个排列P: {a1, a2, ..., aN}.我们向这个二叉搜索树T添加这些数,从a1开始, 接下来是 a2, ..., 以aN结束.在每一个添加操作后,输 ...
- Frame Stacking(拓扑排序)
题目链接:http://acm.tju.edu.cn/toj/showp1076.html1076. Frame Stacking Time Limit: 1.0 Seconds Memory ...