大家好,又见面了,我是你们的朋友全栈君。
优化问题
- 线性规划
- 简介:线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab 中规定线性规划的标准形式为
其中 c 和 x 为 n 维列向量, A 、 Aeq 为适当维数的矩阵, b 、 beq 为适当维数的列向量。 - 代码实现
MATLAB实现:MATLAB中求解线性规划的命令为:
[ x,fval ]=linprog(f,A,b)
[ x,fval ]=linprog(f,A,b,Aeq,beq)
[ x,fval ]=linprog(f,A,b,Aeq,beq,lb,ub)
其中:返回的x为决策向量的取值; 返回的fval是目标函数的最大值;f为价值向量;A和b对应的是线性不等式约束;Aeq和beq对应的是线性等式约束;lb和ub分别对应的是决策向量的下界向量和上界向量。
eg1:
(1)化为Matlab标准型,即
(2)求解的Matlab程序如下:
f=[-2,-3,5]'
A=[-2,5,-1;1,3,1]; b=[-10;12];
Aeq=[1,1,1]; beq=7;
[x,fval]=linprog(f,A,b,Aeq,beq,zeros(3,1));
x
fval=-fval
这里的zeros(3,1)是为了产生3行1列的全0矩阵,对应着x1,x2,x3均大于等于0的约束条件。
eg2:可以转化为线性规划的问题
可进一步把模型改写为:
参考链接
应用:运输问题(产销平衡)、指派问题(匈牙利算法)、对偶理论与灵敏度分析、投资的收益和风险
- 非线性规划
- 简介:如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。
其中f(x)是标量函数, Beq,Aeq,B,A 是相应维数的矩阵和向量, Ceq(x),C(x) 是非线性向量函数。 - 代码实现:
MATLAB代码实现:
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
1.fun为目标函数
2.x0为初始值
3.A是不等式约束AX<=b的系数矩阵
4.b是不等式约束AX<=b的常数项
5.Aeq是等式约束AeqX=beq的系数矩阵,
6.beq是等式约束AeqX=beq的常数项,
7.lb是X的下限,
8.ub是X的上限,
9.nonlcon为非线性不等式约束
10.option为设置fmincon的参数
eg:
形如上述这样的就是非线性规划:
function f=fun1(x)
f=x(1)^2+x(2)^2+8;
function [g,h]=fun2(x)
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2;%约束等式
options=optimset;
[x,y]=fmincon('fun1',rand(2,1),[],[],[],[],zeros(2,1),[],'fun2',options)
x =
1.0000
1.0000
y =
10.0000
- 整数规划
- 简介:规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。如不加特殊说明,一般指整数线性规划。对于整数线性规划模型大致可分为两类:
1 变量全限制为整数时,称纯(完全)整数规划。
2 变量部分限制为整数的,称混合整数规划。 - 代码实现
- 动态规划
- 简介:动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decisionprocess)最优化的数学方法。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。
- 代码实现:
参考链接
具体问题具体分析
排队论
- 简介:排队论(Queuing Theory)也称随机服务系统理论,就是为解决上述问题而发展 的一门学科。它研究的内容有下列三部分:
(i)性态问题,即研究各种排队系统的概率规律性,主要是研究队长分布、等待时间分布和忙期分布等,包括了瞬态和稳态两种情形。
(ii)优化问题,又分静态优和动态优,前者指优设计。后者指现有排队系统的优运营。
(iii)排队系统的统计推断,即判断一个给定的排队系统符合于哪种模型,以便根据排队理论进行分析研究。 - 符号说明:
排队模型用六个符号表示,在符号之间用斜线隔开,即 X/Y/Z/A/B/C 。
第一 个符号 X 表示顾客到达流或顾客到达间隔时间的分布;
第二个符号Y 表示服务时间的 分布;
第三个符号Z 表示服务台数目;
第四个符号 A是系统容量限制;
第五个符号B 是 顾客源数目;
第六个符号C 是服务规则,如先到先服务 FCFS,后到先服务 LCFS 等。
并约定,如略去后三项,即指X/Y/Z/∞/∞/FCFS的情形。我们只讨论先到先服务 FCFS 的情形,所以略去第六项。
表示顾客到达间隔时间和服务时间的分布的约定符号为:
M —指数分布(M 是 Markov 的字头,因为指数分布具有无记忆性,即 Markov 性);
D—确定型(Deterministic);
Ek —k 阶爱尔朗(Erlang)分布;
G —一般(general)服务时间的分布;
GI —一般相互独立(General Independent)的时间间隔的分布。
例如,M/M/1表示相继到达间隔时间为指数分布、服务时间为指数分布、单服务台、等待制系统。
D/M/c/表示确定的到达时间、服务时间为指数分布、c个平行服务台(但顾客是一队)的模型。
- 参数指标:为了研究排队系统运行的效率,估计其服务质量,确定系统的优参数,评价系统 的结构是否合理并研究其改进的措施,必须确定用以判断系统运行优劣的基本数量指标,这些数量指标通常是:
(i)平均队长:指系统内顾客数(包括正被服务的顾客与排队等待服务的顾客)的数学期望,记作Ls 。
(ii)平均排队长:指系统内等待服务的顾客数的数学期望,记作 Lq 。
(iii)平均逗留时间:顾客在系统内逗留时间(包括排队等待的时间和接受服务的时间)的数学期望,记作Ws 。
(iv)平均等待时间:指一个顾客在排队系统中排队等待时间的数学期望,记作Wq 。
(v)平均忙期:指服务机构连续繁忙时间(顾客到达空闲服务机构起,到服务机构再次空闲止的时间)长度的数学期望,记为 Tb
层次分析法
- 简介:层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。
- 步骤:
(i)建立递阶层次结构模型;
(ii)构造出各层次中的所有判断矩阵;
(iii)层次单排序及一致性检验;
(iv)层次总排序及一致性检验。
- 概念:应用 AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:
(i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
(iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配的元素过多会给两两比较判断带来困难。
多属性决策
简介:多属性决策是现代决策科学的一个重要组成部分,它的理论和方法在工程设计、经济、管理和军事等诸多领域中有着广泛的应用,如:投资决策、项目评估、维修服务、武器系统性能评定、工厂选址、投标 招标、产业 部门发展排序和经济效益综合评价等.多属性决策的实质是利用已有的决策信息通过一定的方式对一组( ( 有限个) ) 备选方案进行排序或择优.它主要由两部分组成:
(l) 获取决策信息.决策信息一般包括两个方面的内容:属性权重和属性值( ( 属性值主要有三种形式:实数、区间数和语言) ) .其中,属性权重的确定是多属性决策中的一个重要研究内容;
(2)通过一定的方式对决策信息进行集结并对方案进行排序和择优.
###主成分分析法
简介:主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
商权法
简介:按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;如果指标的信息熵越小,该指标提供的信息量越大,在综合评价中所起作用理当越大,权重就应该越高。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。
插值与拟合
- 简介:插值:求过已知有限个数据点的近似函数。
拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小。
插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟应该用插值还是拟合,有时容易确定,有时则并不明显。
-
插值方法:
几种基本的、常用的插值:拉格朗日多项式插值、牛顿插值、分段线性插值、Hermite 插值和三次样条插值。 -
曲线拟合的线性最小二乘法(线性最小二乘法):
最小二乘优化(lsqlin 函数、lsqcurvefit 函数、lsqnonlin 函数、lsqnonneg 函数)
- 代码实现:
方差分析
- 简介:为了使生产过程稳定,达到优质、高产,需要对影响产品质量的因素进行分析,找出有显著影响的那些因素,除了从机理方面进行研究外,常常要作许多试验,对结果作分析、比较,寻求规律。用数理统计分析试验结果、鉴别各因素对结果影响程度的方法称为方差分析(Analysis Of Variance),记作 ANOVA。
- 分类:
§1 单因素方差分析
只考虑一个因素 A 对所关心的指标的影响, A 取几个水平,在每个水平上作若干个试验,试验过程中除 A 外其它影响指标的因素都保持不变(只有随机因素存在),我们的任务是从试验结果推断,因素 A 对指标有无显著影响,即当 A 取不同水平时指标有无显著差别。A 取某个水平下的指标视为随机变量,判断 A 取不同水平时指标有无显著差别,相当于检验若干总体的均值是否相等。
§2 双因素方差分析
如果要考虑两个因素 B A, 对指标的影响, B A, 各划分几个水平,对每一个水平组合作若干次试验,对所得数据进行方差分析,检验两因素是否分别对指标有显著影响,或者还要进一步检验两因素是否对指标有显著的交互影响。
§3 正交试验设计与方差分析
由于因素较少时,我们可以对不同因素的所有可能的水平组合做试验,这叫做全面试验。当因素较多时,虽然理论上仍可采用前面的方法进行全面试验后再做相应的方差分析,但是在实际中有时会遇到试验次数太多的问题。如果考虑更多的因素及水平,则全面试验的次数可能会大得惊人。因此在实际应用中,对于多因素做全面试验是不现实的。于是我们考虑是否可以选择其中一部分组合进行试验,这就要用到试验设计方法选择合理的试验方案,使得试验次数不多,但也能得到比较满意的结果。
回归分析
- 简介:曲线拟合问题的特点是,根据得到的若干有关变量的一组数据,寻找因变量与(一个或几个)自变量之间的一个函数,使这个函数对那组数据拟合得最好。通常,函数的形式可以由经验、先验知识或对数据的直观观察决定,要作的工作是由数据用最小二乘法计算函数中的待定系数。从计算的角度看,问题似乎已经完全解决了,还有进一步研究的必要吗?从数理统计的观点看,这里涉及的都是随机变量,我们根据一个样本计算出的那些系数,只是它们的一个(点)估计,应该对它们作区间估计或假设检验,如果置信区间太大,甚至包含了零点,那么系数的估计值是没有多大意义的。另外也可以用方差分析方法对模型的误差进行分析,对拟合的优劣给出评价。简单地说,回归分析就是对拟合问题作的统计分析。
- 研究的问题:
(i)建立因变量 y 与自变量 x1,x2,……,xm之间的回归模型(经验公式);
(ii)对回归模型的可信度进行检验;
(iii)判断每个自变量xi=(i=1,2,……,m)对 y 的影响是否显著;
(iv)诊断回归模型是否适合这组数据;
(v)利用回归模型对 y 进行预报或控制。
微分方程建模
- 简介:微分方程建模是数学建模的重要方法,因为许多实际问题的数学描述将导致求解微分方程的定解问题。把形形色色的实际问题化成微分方程的定解问题,大体上可以按以下几步:
- 根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。
- 找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等等)。
- 运用这些规律列出方程和定解条件。
- 方法:列方程常见的方法有:
(i)按规律直接列方程
在数学、力学、物理、化学等学科中许多自然现象所满足的规律已为人们所熟悉,并直接由微分方程所描述。如牛顿第二定律、放射性物质的放射性规律等。我们常利用这些规律对某些实际问题列出微分方程。
(ii)微元分析法与任意区域上取积分的方法
自然界中也有许多现象所满足的规律是通过变量的微元之间的关系式来表达的。对于这类问题,我们不能直接列出自变量和未知函数及其变化率之间的关系式,而是通过微元分析法,利用已知的规律建立一些变量(自变量与未知函数)的微元之间的关系式,然后再通过取极限的方法得到微分方程,或等价地通过任意区域上取积分的方法来建立微分方程。
(iii)模拟近似法
在生物、经济等学科中,许多现象所满足的规律并不很清楚而且相当复杂,因而需要根据实际资料或大量的实验数据,提出各种假设。在一定的假设下,给出实际现象所满足的规律,然后利用适当的数学方法列出微分方程。在实际的微分方程建模过程中,也往往是上述方法的综合应用。不论应用哪种方法,通常要根据实际情况,作出一定的假设与简化,并要把模型的理论或计算结果与实际情况进行对照验证,以修改模型使之更准确地描述实际问题并进而达到预测预报的目的。
马氏链模型
简介:马尔可夫链的定义
现实世界中有很多这样的现象:某一系统在已知现在情况的条件下,系统未来时刻的情况只与现在有关,而与过去的历史无直接关系。比如,研究一个商店的累计销售额,如果现在时刻的累计销售额已知,则未来某一时刻的累计销售额与现在时刻以前的任一时刻累计销售额无关。上节中的几个例子也均属此类。描述这类随机现象的数学模型称为马氏模型。
时间序列模型
简介:时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。
时间序列根据所研究的依据不同,可有不同的分类。
1.按所研究的对象的多少分,有一元时间序列和多元时间序列。
2.按时间的连续性可将时间序列分为离散时间序列和连续时间序列两种。
3.按序列的统计特性分,有平稳时间序列和非平稳时间序列。如果一个时间序列的概率分布与时间 t 无关,则称该序列为严格的(狭义的)平稳时间序列。如果序列的一、二阶矩存在,而且对任意时刻 t 满足:
(1)均值为常数
(2)协方差为时间间隔 τ 的函数。
则称该序列为宽平稳时间序列,也叫广义平稳时间序列。我们以后所研究的时间序列主要是宽平稳时间序列。
4.按时间序列的分布规律来分,有高斯型时间序列和非高斯型时间序列。
模糊数学模型
简介:模糊是指客观事物差异的中间过渡中的“不分明性”或“亦此亦彼性”。如高个子与矮个子、年轻人与老年人、热水与凉水、环境污染严重与不严重等。在决策中,也有这种模糊的现象,如选举一个好干部,但怎样才算一个好干部?好干部与不好干部之间没有绝对分明和固定不变的界限。这些现象很难用经典的数学来描述。
灰色系统理论及其应用
简介:客观世界的很多实际问题,其内部的结构、参数以及特征并未全部被人们了解,人们不可能象研究白箱问题那样将其内部机理研究清楚,只能依据某种思维逻辑与推断来构造模型。对这类部分信息已知而部分信息未知的系统,我们称之为灰色系统。
聚类分析
简介:将认识对象进行分类是人类认识世界的一种重要方法,比如有关世界的时间进程的研究,就形成了历史学,也有关世界空间地域的研究,则形成了地理学。又如在生物学中,为了研究生物的演变,需要对生物进行分类,生物学家根据各种生物的特征,将它们归属于不同的界、门、纲、目、科、属、种之中。事实上,分门别类地对事物进行研究,要远比在一个混杂多变的集合中更清晰、明了和细致,这是因为同一类事物会具有更多的近似特性。在企业的经营管理中,为了确定其目标市场,首先要进行市场细分。因为无论一个企业多么庞大和成功,它也无法满足整个市场的各种需求。而市场细分,可以帮助企业找到适合自己特色,并使企业具有竞争力的分市场,将其作为自己的重点开发目标。通常,人们可以凭经验和专业知识来实现分类。而聚类分析(cluster analyses)作为一种定量方法,将从数据分析的角度,给出一个更准确、细致的分类工具。
存贮论
简介:存贮论(或称为库存论)是定量方法和技术最早的领域之一,是研究存贮系统的性质、运行规律以及如何寻找最优存贮策略的一门学科,是运筹学的重要分支。存贮论的数学模型一般分成两类:一类是确定性模型,它不包含任何随机因素,另一类是带有随机因素的随机存贮模型。
现代优化算法
- 模拟退火
- 遗传算法
简介:遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。
- 禁忌搜索
简介:禁忌搜索(Tabu Search,TS)是一种现代启发式算法,由美国科罗拉多大学教授Fred Glover在1986年左右提出的,是一个用来跳脱局部最优解的搜索方法。算法基于局部搜索算法改进而来,通过引入禁忌表来克服局部搜索算法容易陷入局部最优的缺点,具有全局寻优能力。
- 蚁群算法
神经网络模型
简介:人工神经网络(artificial neural network,以下简称 NN)有三个基本要素:
(i)一组连接(对应于生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。
(ii)一个求和单元,用于求取各输入信号的加权和(线性组合)。
(iii)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在 (0,1) 或(-1,1) 之间)。
粒子群优化算法
图论算法
- 迪杰斯特拉算法
简介:Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。
- 弗洛伊德Floyd算法
简介:Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152309.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...