线性规划

数据仓库学习

半腔热情 提交于 2020-04-06 05:47:28
第一部分 导论 第1章 商业数据挖掘简介  1.1 介绍  1.2 进行数据挖掘需要什么  1.3 数据挖掘  1.4 集聚营销  1.5 商业数据挖掘  1.6 数据挖掘工具 第2章 数据挖掘过程与知识发  2.1 CRISP-DM  2.2 知识发现过程 第3章 数据挖掘的数据库支持  3.1 数据仓库  3.2 数据集市  3.3 联机分析处理  3.4 数据仓库的实现  3.5 元数据  3.6 系统示范  3.7 数据质量  3.8 软件产品  3.9 实例 第二部分 数据挖掘工具 第4章 数据挖掘方法概述  4.1 数据挖掘方法  4.2 数据挖掘视野  4.3 数据挖掘的作用  4.4 实证数据集 附录4A 第5章 聚类分析  5.1 聚类分析  5.2 聚类分析的描述  5.3 类数量的变动  5.4 聚类分析的运用  5.5 在软件中使用聚类分析  5.6 大数据集的方法运用  5.7 软件产品 附录5A 第6章 数据挖掘中的回归算法  6.1 回归模型  6.2 逻辑回归  6.3 线性判别分析  6.4 数据挖掘中回归的实际应用  6.5 大样本数据集的模型应用 第7章 数据挖掘中的神经网络  7.1 神经网络  7.2 数据挖掘中的神经网络  7.3 神经网络的商业应用  7.4 神经网络应用于大样本数据集  7.5 神经网络产品 第8章 决策树算法  8

思考:线性规划对偶与拉格朗日乘数法

喜欢而已 提交于 2020-04-04 02:49:15
拉格朗日乘数法和对偶线性规划问题的联系 拉格朗日乘数法解题的基本思想 下面以一个二元函数为例子解释拉格朗日乘数法用于求解条件极值问题的思想。 我们给定一个二元函数 \(z\) : \[z=f(x,y) \] 和一个约束条件: \[\varphi(x,y)=0 \] 为了求解 \(z=f(x,y)\) 在附加条件下的极值,我们先作出 拉格朗日函数 \(L(x,y,\lambda)\) ,其定义如下: \[L(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y) \] 然后令 \(L(x,y,\lambda)\) 关于 \(x,y,\lambda\) 的 一阶偏导数分别等于0: \[\begin{aligned} \frac{\partial L}{\partial x}&=\frac{\partial f}{\partial x}+\lambda \frac{\partial \varphi}{\partial x}=0\\ \frac{\partial L}{\partial y}&=\frac{\partial f}{\partial y}+\lambda \frac{\partial \varphi}{\partial y}=0\\ \frac{\partial L}{\partial \lambda}&=\varphi (x,y)=0 \end

最优化——线性规划之单纯形法

与世无争的帅哥 提交于 2020-03-11 02:52:48
单纯形法(主要参考其它博客) 需要先了解的基本知识:基矩阵,基变量,非基矩阵,非基变量,矩阵分块,逆矩阵,基解,基可行解。 1、这篇讲细致一些(注意:文中IX.解基变量处有个错误,公式推导时是左乘B逆) 点这里 2、这篇简洁明了一些(注意:文中5.1几何意义部分有个错误,说基变量可以用非基变量表示,然后令非基变量为零即可求出基变量的解,应该是选取m个非基变量,写成了选取m个基变量) 点这里 3、这篇极致精简(有一定基础的看 Q∪Q) 点这里 来源: CSDN 作者: 我在人间凑人数 链接: https://blog.csdn.net/weixin_43901214/article/details/104756239

Matlab线性规划求解

為{幸葍}努か 提交于 2020-03-03 06:30:08
一、Matlab线性规划标准型 min ( c' * x ) s . t . Ax <= B ; 二、函数形式 linprog ( c , a , b , aeq , beq , lb , ub , x0 , options ) ; % c为目标函数系数矩阵 % a为限制条件系数矩阵,b为(不)等号右边构成的矩阵 % aeq , beq为等号限制条件 % x0为初始值,options为选项 三、例子 clear c = [ 2 ; 3 ; - 5 ] ; a = [ 2 - 5 1 ] ; b = - 10 ; aeq = [ 1 1 1 ] ; beq = [ 7 ] ; x = linprog ( - c , - a , - b , aeq , beq , zeros ( 3 , 1 ) ) ; val = c' * x ; 来源: CSDN 作者: FrankXCR 链接: https://blog.csdn.net/FrankXCR/article/details/104613294

Google OR-Tools(三) 整数优化Integer Optimization

心已入冬 提交于 2020-02-17 20:00:41
本文参考Google OR-Tools 官网文档 介绍OR-Tools的使用方法。 1 整数规划 很多实际问题的变量不能是小数,比如指派多少人员、调度的航班数、分配的机器数等等,我们称这种问题为整数规划,更特殊的,如果要求变量只能取0或1,则称为0-1规划;还有些情况是部分决策变量是整数,其他可以是小数,则称其为混合整数规划。虽然我们可以用线性函数来表示目标和约束,但是有了变量必须是整数的约束,可行域变得极度非凸(Nonconvex), 求解难度要比连续变量线性规划大很多,连续变量线性规划的常用算法是不能直接用于整数规划的。关于这一点,后面我们可以给出实例。 解算整数规划的算法中分支界定法及其衍生算法是最常用的,它的核心思想便是把整数规划问题分解成求解一个个的线性规划(LP)问题(每个LP问题是多项式时间可解),并且在求解的过程中实时追踪原问题的上界(最优可行解)和下界(最优线性松弛解)。除此之外,启发式算法或元启发算法(例如遗传算法)也是常用的手段,因为当整数规划的规模较大时,问题已经属于NP-Hard问题了,这时候在合理的时间内找到一个相对最优解已经足够了。 2 OR-Tools的整数规划算法库 在OR-Tools中用于解决整数规划的工具是MP Solver和CP-SAT Solver,我们先认识MP Solver,至于CP-SAT Solver在下一篇文章中介绍

数学建模9 线性规划

女生的网名这么多〃 提交于 2020-02-07 02:27:33
线性规划 线性规划在高中就有学习过了,是比较熟悉的知识。 它是运筹学中一个较为重要的分支,是辅助人们进行科学管理的一种辅助方法。 研究对象 线性规划研究的是:在一定条件下,合理的安排人力物力等资源,使得经济效果达到最好。 三要素 决策变量、约束条件、目标函数 用lingo软件求解线性规划问题 摘自百度百科:lingo是由美国LINDO系统公司推出的, 可以用于求解非线性规划 , 也可以用于一些线性和非线性方程组的求解等 ,功能十分强大,是求解优化模型的最佳选择。 步骤 1、写出目标函数 一般为 m a x = … … max = …… m a x = … … 或 或 或 m i n = … … min = …… m i n = … … 2、列出约束条件的方程组 高中大家都列过,相信都会。 3、代入lingo运行即可求解。 lingo默认变量 >= 0,如果实际会 < 0,我们用 @free(x); 即可 学习来源 https://www.bilibili.com/video/av42873319?p=10 来源: CSDN 作者: Authur_gyc 链接: https://blog.csdn.net/WHY995987477/article/details/104200370

线性规划--最大网络流

醉酒当歌 提交于 2020-01-24 17:44:31
假期 2020.01 .24 问题分析(内容摘自离散数学结构) 算法分析(内容摘自离散数学结构) 其实该问题是离散数学中了解到的最大网络流问题,借助最短增广路算法即可解决该问题。 而最短增广路算法实现是: 代码解析 # include <iostream> # include <algorithm> # include <iomanip> # include <queue> using namespace std ; constexpr auto Max_size = 0x7fffffff ; int point_count , edge_count ; //节点数,边数 int left_map [ 100 ] [ 100 ] ; //实邻接关系 int ok_map [ 100 ] [ 100 ] ; //虚邻接关系 int pre_map [ 100 ] ; //前驱 int visited [ 100 ] ; //访问数组 int Search_current ( ) ; //寻找路径 int best_ability ( ) ; //寻找最优路径 int main ( ) { int i , j , v , w , flow ; cout << "请输入节点个数与网络连接边数:" ; cin >> point_count >> edge_count ; cout <<

Lingo基础知识

感情迁移 提交于 2020-01-20 21:25:37
使用Lingo的一些注意事项: “>”(或“<”’)号与“>=”(或“<=”)功能相同 Lingo中是不区分字母大小写的,必须以字母开头,可以包含数字和下划线 LINGO程序中,只要定义好集合后,其他语句的顺序是任意的 LINGO中的函数以“@”开头 LINGO程序中默认所有变量都是非负的,数据部分不能使用分式 LINGO中每一语句都必须要用一个英文状态下的分号结束,注释以英文状态的“!”开始,以英文状态下的“分号”结束, 线性规划的Matlab标准形式及软件求解 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于等于号也可以是大于等于号。为避免形式多样性带来的不便,Matlab中规定线性规划的标准形式为: Lingo软件的一些基本语法 以下例子以该线性规划为基础: 目标函数: m a x z = 2 x 1 + 3 x 2 − 5 x 3 max z = 2{x_1} + 3x{}_2 - 5{x_3} m a x z = 2 x 1 ​ + 3 x 2 ​ − 5 x 3 ​ 约束条件: x 1 + x 2 + x 3 = 7 {x_1} + {x_2} + {x_3} = 7 x 1 ​ + x 2 ​ + x 3 ​ = 7 , 2 x 1 − 5 x 2 + x 3 ≥ 10 2{x_1} - 5{x_2} + {x_3} \ge 10 2 x

MATLAB之线性规划

五迷三道 提交于 2020-01-19 16:27:29
线性规划: c和x为n维列向量,A、Aeq为适当维数的矩阵,b(资源向量)、Beq为适当维数的列向量。 主要函数: (1) linprog(c,A,b,Aeq,Beq) 它的返回值是向量 x的值。 参数为空时,用【】表示 (2)[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,X0) fval 返回目标函数的值 lb和 ub 分别是变量 x的下界和上界, x0是x的初始值。 (3)zeros(m,n) 生成m x n零矩阵 注意事项: (1) 若目标函数为max,最后取相反数来获得极大化的目标函数值。 (2)限制条件为<= (3)变量x的个数为zeros函数的第一参量 (4)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量) 构造价值列向量 : c=[c,c]’ 。('的意思是共轭转置,如果用;的话,不能解决复数的转置)。 (5)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量), 构造变换后的新的系数矩阵 (6)若为多个变量x1……xn,做変量変换(2分之绝对值加减原变量),最后变换为原问题的解。 例如,x=y(1:4)-y(5:end) 例如: MATLAB代码如下: c=[2;3;1]; a=[1,4,2;3,2,0]; b=[8;6]; [x,y]=linprog(c,-a,-b,[ ],[ ],zeros(3,1)) 来源:

【巨坑】【网络流】线性规划与网络流24题

落爺英雄遲暮 提交于 2019-12-27 03:33:37
2016.2.21 01 飞行员配对方案问题(习题 8-10)   每一条边连接外籍-国内飞行员,显然是一个二分图,最多出发的飞机数,对应着最多的边匹配。   问题转化为经典的二分图匹配问题,可以用匈牙利或者网络流。   源点和每一个外籍飞行员、每一个国内飞行员和汇点、每个可行的配合之间连接一条容量为1的有向边。   可以派出的最多飞机数就是这个网络的最大流    建图部分代码 1 for(;;){ 2 int a,b,c; 3 a=read();b=read(); 4 if(a==-1&&b==-1) break; 5 insert(a,b,1); 6 } 7 for(int i=1;i<=m;i++) insert(n+1,i,1); 8 for(int i=m+1;i<=n;i++) insert(i,n+2,1);    对于方案。。其实我们可以在增广的时候做标记的,但是反正 比较懒 套个模板嘛~   在时候枚举一下飞行员之间边,如果他的容量被修改为0了。那么这就是一对 一对 1 for(int i=1;i<=m;i++){ 2 for(int j=last[i];j;j=e[j].next){ 3 if(e[j].cap==0&&e[j].to<=n&&e[j].to>=1){ 4 printf("%d %d\n",i,e[j].to); 5 break; 6 } 7 }