文章目录
一、数学建模问题分析
1.模型假设
找到与结果相关的因素,分析主要因素和次要因素,为简化问题,可适当忽略部分无关因素。
2.模型建立和求解
通过所做的分析和假设,根据所提供的要求和信息,建立一个关于问题中主要变量和主要因素间的的数学规律模型,使用软件和数学方法进行模型的求解。
3.结果分析和模型评价
通过误差分析和灵敏度分析,检验模型的的合理性和可行性,并进行优化。
示例
后做添加
二、常用模型和算法
1.图论
图论中最基本的概念是顶点(节点),顶点组成的集合称为顶点集,记作V;顶点之间的连接称为边,记作E。一个图就由(V,E)组成,记作G=(V,E)。如果给图中的定点赋予定点和边具体的含义和权,这样的图就称为网络。这时该网络可以表示为N=(V,E,W),W为任意两点之间的距离构成的权重矩阵。
如在研究环球旅游时,各城市构成顶点,城市之间的连接构成边,城市之间的距离就是这两点间边的权重;又如足球队中的胜负,可以用有向箭头表示,即为有向图。
示例 比赛项目排序问题(TSP问题)
在各种运动比赛中,为了使比赛公平、公正、合理地举行,一个基本要求是:在比赛项目排序过程中,尽可能使每个运动员不连续参加两场比赛,以便运动员恢复体力,发挥正常水平。
表1是某个小型运动会的比赛报名表。有14个比赛项目,40名运动员参加比赛。表中[#]位置表示运动员参加此项比赛。建立此问题的数学模型,并合理安排比赛项目顺序,使连续参加两项比赛的运动员人次尽可能的少。
解答:
若项目i和项目j为相邻节点,可以计算出同时参加这两个项目的人数,作为i和j的距离d。则问题转化为求项目1到项目14的一个排列,使相邻距离之和最小。采用TSP问题求解。由于开始和结束项目都没有连接,可考虑引入虚拟项目15,该虚拟项目与各个项目的距离都为0。
距离矩阵D的求法:
报名表用矩阵
A
40
×
14
A_{40\times 14}
A40×14表示。
a
i
j
=
{
0
第
i
个人不参加项目
j
1
第
i
个人参加项目
j
a_{ij}=\left\{ _{0 \text{第}i\text{个人不参加项目}j}^{1 \text{第}i\text{个人参加项目}j} \right.
aij={0第i个人不参加项目j1第i个人参加项目j
则
d
i
j
=
∑
k
=
1
40
a
k
i
⋅
a
k
j
i
≠
j
i
,
j
=
1
,
2
,
⋯
,
14
d_{ij}=\sum_{k=1}^{40}{a_{ki}\cdot a_{kj}}\,\, i\ne j\,\, i,j=1,2,\cdots ,14
dij=k=1∑40aki⋅akji=ji,j=1,2,⋯,14
d
i
i
=
0
,
i
=
1
,
2
,
⋯
,
14
d_{ii}=0,i=1,2,\cdots ,14
dii=0,i=1,2,⋯,14
d
i
,
15
=
0
,
d
15
,
i
=
0
,
i
=
1
,
2
,
⋯
,
15
d_{i,15}=0,d_{15,i}=0,i=1,2,\cdots ,15
di,15=0,d15,i=0,i=1,2,⋯,15
在Matlab中编写程序形成距离矩阵:
[table1]=xlsread('table1.xlsx');
a=table1;
[m,n]=size(a);
d=zeros(n+1,n+1); %定义距离矩阵;
for i=1:n
for j=1:n
for k=1:m
d(i,j)=d(i,j)+a(k,i)*a(k,j); %计算不同项目之间的距离
end
end
end
for i=1:n+1
d(i,i)=0;
end
%输出文件
fid=fopen('磁盘索引\dis1.txt','w');
for i=1:n+1
for j=1:n+1
fprintf(fid,'%d',d(i,j));
fprintf(fid,'\t');
end
fprintf(fid,'\r\n');
end
fclose(fid);
再编写程序,求得遍历所有节点且不重复的最短路径即可。
2.排队论模型
排队论模型可参考此博客
知乎书籍(有知乎会员的可以看这个)
以下仅对部分公式展示个人理解,可对照阅读。
2.1.单服务台等待制模型
系统处于忙的概率
ρ
=
λ
μ
\rho =\frac{\lambda}{\mu}
ρ=μλ,λ为单位时间每个顾客的到达率,由于到来人数服从泊松分布,所以单位时间平均到来人数也为λ,μ为单位时间内可服务的总人数,则单位时间内系统仅有
λ
μ
\frac{\lambda}{\mu}
μλ处于工作状态即服务强度。
系统中有n个顾客的概率
p
n
=
(
1
−
ρ
)
ρ
n
p_n=\left( 1-\rho \right) \rho ^n
pn=(1−ρ)ρn,系统正好服务完上一个顾客处于闲时,剩下n个顾客正在等待服务,则对系统中等待n个顾客而言系统处于忙时。平均队长
L
s
L_s
Ls即为其数学期望。系统稳定时总有一人在服务,而剩余人在等待,则平均等待队长为
L
p
=
Σ
∞
n
=
1
(
n
−
1
)
p
n
L_p=\underset{n=1}{\overset{\infty}{\varSigma}}\left( n-1 \right) p_n
Lp=n=1Σ∞(n−1)pn
注:多服务台等待制模型 ρ = s λ μ \rho =\frac{s\lambda}{\mu} ρ=μsλ,服务台数为s
2.2.混合制模型
系统稳定状态下的平衡方程
{
μ
1
p
1
=
λ
0
p
0
λ
i
−
1
p
i
−
1
+
μ
i
p
i
=
(
λ
i
+
μ
i
)
p
i
,
i
=
1
,
2
,
⋯
,
k
λ
K
−
1
p
K
−
1
=
μ
K
p
K
\begin{cases} \mu _1p_1=\lambda _0p_0\\ \lambda _{i-1}p_{i-1}+\mu _ip_i=\left( \lambda _i+\mu _i \right) p_i,i=1,2,\cdots ,k\\ \lambda _{K-1}p_{K-1}=\mu _Kp_K\\ \end{cases}
⎩⎪⎨⎪⎧μ1p1=λ0p0λi−1pi−1+μipi=(λi+μi)pi,i=1,2,⋯,kλK−1pK−1=μKpK
系统稳定时的流入=流出,单位时间内进入状态n和离开状态n的次数相等。
2.3.闭合制模型
了解单位时间每个顾客到达率λ的概念即可明白。
3.未完待续
注
以上为摘录的学习总结,仅供学习使用。