运输问题的案例及求解
运输问题的Lingo多段式编程
![![[Pasted image 20240808202514.png]]](https://i-blog.csdnimg.cn/direct/81356bf9836349c0b20950d85d169ceb.png)
![![[Pasted image 20240808202526.png]]](https://i-blog.csdnimg.cn/direct/b272510f445448cc80e7e48e15575b2e.png)
- 决策变量
Xij:Ai→Bji=1,2,…,6j=1,2,…,8 \begin{array}{} X_{ij}:A_{i}\to B_{j} \\ i=1,2,\dots,6 \\ j=1,2,\dots,8 \end{array} Xij:Ai→Bji=1,2,…,6j=1,2,…,8 - 目标函数
假设单线运费CijC_{ij}Cij
Aij→Bij:CijXij A_{ij}\to B_{ij}:C_{ij}X_{ij} Aij→Bij:CijXij
总运费:
min z=∑i=16∑j=18CijXij min\ z=\sum_{i=1}^{6}\sum_{j=1}^{8}C_{ij}X_{ij} min z=i=1∑6j=1∑8CijXij - 约束条件
每个产地的产量限制
s.t ∑j8xij≤aii=1,2,…,6 s.t\ \sum_{j}^{8}x_{ij}\le a_{i}\quad i=1,2,\dots,6 s.t j∑8xij≤aii=1,2,…,6
每个销地的需求的限制
∑i=16xij=bjj=1,2,…,8 \sum_{i=1}^{6}x_{ij}=b_{j}\quad j=1,2,\dots,8 i=1∑6xij=bjj=1,2,…,8
决策变量的非负约束
xij≥0i=1,2,…,6;j=1,2,…,8 x_{ij}\ge 0\quad i=1,2,\dots,6;\quad j=1,2,\dots,8 xij≥0i=1,2,…,6;j=1,2,…,8 - 用
xijx_{ij}xij:表示AiA_{i}Ai到BjB_{j}Bj的运量,i=1,2,…,6j=1,2,…,8i=1,2,\dots,6\quad j=1,2,\dots,8i=1,2,…,6j=1,2,…,8
cijc_{ij}cij:表示AiA_{i}Ai到BjB_{j}Bj的单位运费,i=1,2,…,6j=1,2,…,8i=1,2,\dots,6\quad j=1,2,\dots,8i=1,2,…,6j=1,2,…,8
aia_{i}ai:表示产地AiA_{i}Ai的生产量,i=1,2,…,6i=1,2,\dots,6i=1,2,…,6
bjb_{j}bj:表示需求地BjB_{j}Bj的需求量,j=1,2,…,8j=1,2,\dots,8j=1,2,…,8
Lingo多段式编程
model:
sets:
warehouses/1..6/:capacity;
vendors/1..8/:demand;
links(warehouses,vendors):cost,volume;
endsets
min=@sum(links:cost*volume);
@for(vendors(J):@sum(warehouses(I):volume(I,J))=demand(J));
@for(warehouses(I):@sum(vendors(J):volume(I,J))<capacity(I));
data:
capacity=60 55 51 43 41 52;
demand=35 37 22 32 41 32 43 38;
cost=6 2 6 7 4 2 9 5
4 9 5 3 8 5 8 2
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3;
enddata
end
- warehouses和vendors是两个集合,分别表示产地和需求地
- links是派生集,是w和v两个的集合派生出来的集合,相当于之间的连线,有单位费用cost和决策变量volume,也就是运量
- 目标函数就是产地和需求地连线上所产生的费用的总和,对所有线条的集合,就是48条,用sum求和
- vendors(J):表示对每个需求地,j=1,2,…,8j=1,2,\dots,8j=1,2,…,8,@for对这八家进行循环
- 对每一个需求地来说,所有产地给他的总量的求和要等于需求量
- warehouses(I):表示每个产地,对六个产地进行循环
- 对每个产地来说,给所有需求地的销售总量要小于等于产量
![![[Pasted image 20240808222637.png]]](https://i-blog.csdnimg.cn/direct/50db3ce522814acca9935a0831252e8b.png)
- 对每个产地来说,给所有需求地的销售总量要小于等于产量
![![[Pasted image 20240808221333.png]]](https://i-blog.csdnimg.cn/direct/cb239d19b04d4254bd31e116caf3a0d3.png)
运输问题的数学模型
运输问题的描述
![![[Pasted image 20240808223427.png]]](https://i-blog.csdnimg.cn/direct/be5179820f074692b143ecb414774205.png)
产销平衡问题
设xijx_{ij}xij表示产地AiA_{i}Ai运往销地BjB_{j}Bj的运量
即
∑i=1mai=∑j=1nbj
\sum_{i=1}^{m}a_{i}=\sum_{j=1}^{n}b_{j}
i=1∑mai=j=1∑nbj
min z=∑i=1m∑j=1ncijxij
min\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}
min z=i=1∑mj=1∑ncijxij
s.t.∑j=1nxij=aii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}x_{ij}=a_{i}\quad i=1,2,\dots,m
s.t.j=1∑nxij=aii=1,2,…,m
∑i=1mxij=bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}=b_{j}\quad j=1,2,\dots,n
i=1∑mxij=bjj=1,2,…,n
xij≥0i=1,2,…,mj=1,2,…,n
x_{ij}\ge 0\quad i=1,2,\dots,m\quad j=1,2,\dots,n
xij≥0i=1,2,…,mj=1,2,…,n
产销不平衡问题
- 供大于求
∑i=1mai>∑j=1nbj
\sum_{i=1}^{m}a_{i}>\sum_{j=1}^{n}b_{j}
i=1∑mai>j=1∑nbj
min z=∑i=1m∑j=1ncijxij
min\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}
min z=i=1∑mj=1∑ncijxij
s.t.∑j=1nxij≤aii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}x_{ij}\le a_{i}\quad i=1,2,\dots,m
s.t.j=1∑nxij≤aii=1,2,…,m
∑i=1mxij=bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}=b_{j}\quad j=1,2,\dots,n
i=1∑mxij=bjj=1,2,…,n
xij≥0i=1,2,…,mj=1,2,…,n
x_{ij}\ge 0\quad i=1,2,\dots,m\quad j=1,2,\dots,n
xij≥0i=1,2,…,mj=1,2,…,n
2. 供不应求
∑i=1mai<∑j=1nbj
\sum_{i=1}^{m}a_{i}<\sum_{j=1}^{n}b_{j}
i=1∑mai<j=1∑nbj
min z=∑i=1m∑j=1ncijxij
min\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}
min z=i=1∑mj=1∑ncijxij
s.t.∑j=1nxij=aii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}x_{ij}=a_{i}\quad i=1,2,\dots,m
s.t.j=1∑nxij=aii=1,2,…,m
∑i=1mxij≤bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}\le b_{j}\quad j=1,2,\dots,n
i=1∑mxij≤bjj=1,2,…,n
xij≥0i=1,2,…,mj=1,2,…,n
x_{ij}\ge 0\quad i=1,2,\dots,m\quad j=1,2,\dots,n
xij≥0i=1,2,…,mj=1,2,…,n
经典的线性规划模型
运输问题(同上)
生产组织与计划问题
![![[Pasted image 20240808225619.png]]](https://i-blog.csdnimg.cn/direct/f8183d95e25b435e9df171771f94dae2.png)
min z=∑i=1m∑j=1ncijxij
min\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}
min z=i=1∑mj=1∑ncijxij
s.t.∑j=1ntijxij≤aii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}t_{ij}x_{ij}\le a_{i}\quad i=1,2,\dots,m
s.t.j=1∑ntijxij≤aii=1,2,…,m
∑i=1mxij≥bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}\ge b_{j}\quad j=1,2,\dots,n
i=1∑mxij≥bjj=1,2,…,n
xij≥0,xij∈Ii=1,2,…,mj=1,2,…,n
x_{ij}\ge 0,x_{ij}\in I \quad i=1,2,\dots,m\quad j=1,2,\dots,n
xij≥0,xij∈Ii=1,2,…,mj=1,2,…,n
工场选址问题
![![[Pasted image 20240808230727.png]]](https://i-blog.csdnimg.cn/direct/adf0131cf8664b0e88cf24a86634ada8.png)
min z=∑i=1m∑j=1ncijxij+∑i=1maiyi
min\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}+\sum_{i=1}^{m}a_{i}y_{i}
min z=i=1∑mj=1∑ncijxij+i=1∑maiyi
s.t.∑j=1nxij≤Diyii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}x_{ij}\le D_{i}y_{i}\quad i=1,2,\dots,m
s.t.j=1∑nxij≤Diyii=1,2,…,m
∑i=1mxij≥bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}\ge b_{j}\quad j=1,2,\dots,n
i=1∑mxij≥bjj=1,2,…,n
xij≥0yi={0,1}.
x_{ij}\ge 0 \quad y_{i}=\left\{0,1\right\}.
xij≥0yi={0,1}.
上式中yi的意义是yi={1 在地址i建厂0 不在地址i建厂
\begin{array}{}
上式中y_{i}的意义是 \\
y_{i}=\left\{\begin{matrix}
1\ 在地址i建厂 \\
0\ 不在地址i建厂
\end{matrix}\right.
\end{array}
上式中yi的意义是yi={1 在地址i建厂0 不在地址i建厂
设备购置和安装问题
![![[Pasted image 20240809004515.png]]](https://i-blog.csdnimg.cn/direct/1b1138651cc64ed6b34175ad5a6b1752.png)
max z=∑i=1m∑j=1ncijxij
max\ z=\sum_{i=1}^{m}\sum_{j=1}^{n}c_{ij}x_{ij}
max z=i=1∑mj=1∑ncijxij
s.t.∑j=1nxij≤yi+aii=1,2,…,m
s.t.\quad \sum_{j=1}^{n}x_{ij}\le y_{i}+a_{i}\quad i=1,2,\dots,m
s.t.j=1∑nxij≤yi+aii=1,2,…,m
∑i=1mxij≤bjj=1,2,…,n
\sum_{i=1}^{m}x_{ij}\le b_{j}\quad j=1,2,\dots,n
i=1∑mxij≤bjj=1,2,…,n
∑i=1mpiyi≤M
\sum_{i=1}^{m}p_{i}y_{i}\le M
i=1∑mpiyi≤M
xij≥0,xij∈I
x_{ij}\ge 0,\quad x_{ij}\in I
xij≥0,xij∈I
旅行商问题
![![[Pasted image 20240809004639.png]]](https://i-blog.csdnimg.cn/direct/aadd23fa5f3e4ac9a53c7d4562fe979c.png)
定义
xij={1货郎选择的路线包含从Ai到Aj的路径0否则
x_{ij}=\left\{\begin{matrix}
1\quad 货郎选择的路线包含从A_{i}到A_{j}的路径 \\
0\quad 否则
\end{matrix}\right.
xij={1货郎选择的路线包含从Ai到Aj的路径0否则
则相应的模型为
$$
min\ z=\sum_{i=1}{n}\sum_{j=1}{n}d_{ij}x_{ij}
s.t.\left{\begin{matrix}
\sum_{j=1}^{n}x_{ij}=1,\qquad i=1,2,\dots,n \
\sum_{i=1}^{n}x_{ij}=1,\qquad j=1,2,\dots,n \
\sum_{i,j\in S}^{n}x_{ij}\le |S|-1,2\le |S|\le n-1,S\subset\left{1,2,\dots,n\right}
\end{matrix}\right.
x_{ij}\in \left{0,1\right},\quad i,j=1,2,\dots,n,\quad i\ne j
$$
|S|表示的是集合S中点的总数,表示每S个元素之间路径的个数不超过S-1
当S取3时,三个元素之间最多只有两条路
可以回避掉自回路
多目标规划模型及主要解法
多目标规划模型
在许多实际问题中,衡量一个方案的好坏标准往往不止一个。这一类问题统称为多目标最优化问题或多目标规划问题
![![[Pasted image 20240809011031.png]]](https://i-blog.csdnimg.cn/direct/a81de5cacb8741629a1a83b92e8c60bc.png)
设该厂每周生产布料A1,A2,A3A_{1},A_{2},A_{3}A1,A2,A3的小时数为x1,x2,x3x_{1},x_{2},x_{3}x1,x2,x3,总利润为y1=f1(x)y_{1}=f_{1}(x)y1=f1(x),总能耗为y2=f2(x)y_{2}=f_{2}(x)y2=f2(x),其中x=(x1,x2,x3)Tx=(x_{1},x_{2},x_{3})^{T}x=(x1,x2,x3)T,则上述问题的数学模型为:
miny1=−f1(x)miny2=f2(x)s.t.{x1+x2+x3≤801.2×0.4x1+1.3×0.5x2+1.4×0.36x3≤1600≤x1≤100,0≤x2≤100,0≤x3≤100y1=−f1(x)=0.15×400x1+0.13×510x2+0.20×360x3y2=f2(x)=1.2×0.4x1+1.3×0.51x2+1.4×0.36x3
\begin{array}{}
min\quad y_{1}=-f_{1}(x) \\
min\quad y_{2}=f_{2}(x) \\
s.t.\left\{\begin{matrix}
x_{1}+x_{2}+x_{3}\le 80 \\
1.2\times 0.4x_{1}+1.3\times 0.5x_{2}+1.4\times 0.36x_{3}\le 160 \\
0\le x_{1}\le 100,0\le x_{2}\le 100,0\le x_{3}\le 100
\end{matrix}\right. \\
y_{1}=-f_{1}(x)=0.15\times 400x_{1}+0.13\times 510x_{2}+0.20\times 360x_{3} \\
y_{2}=f_{2}(x)=1.2\times 0.4x_{1}+1.3\times 0.51x_{2}+1.4\times 0.36x_{3}
\end{array}
miny1=−f1(x)miny2=f2(x)s.t.⎩⎨⎧x1+x2+x3≤801.2×0.4x1+1.3×0.5x2+1.4×0.36x3≤1600≤x1≤100,0≤x2≤100,0≤x3≤100y1=−f1(x)=0.15×400x1+0.13×510x2+0.20×360x3y2=f2(x)=1.2×0.4x1+1.3×0.51x2+1.4×0.36x3
多目标规划模型解法
直接解法和间接解法
常用的多为间接解法,根据问题的实际背景和特征,设法将多目标优化问题转化为单目标优化问题
主要目标法
在多目标优化问题中,若能从p个目标中,确定一个目标为主要目标,例如f1(x)f_{1}(x)f1(x),而把其余目标作为次要目标,并根据实际情况,确定适当的界限值,这样就可以把次要目标作为约束处理,而将多目标优化问题转化为求解线性或非线性规划问题
min f1(x)s.t.{gi(x)≤0,i=1,2,…,mfj(x)≤aj,j=2,3,…,p
\begin{array}{}
min\ f_{1}(x) \\
s.t.\left\{\begin{matrix}
g_{i}(x)\le 0,i=1,2,\dots,m \\
f_{j}(x)\le a_{j},j=2,3,\dots,p
\end{matrix}\right.
\end{array}
min f1(x)s.t.{gi(x)≤0,i=1,2,…,mfj(x)≤aj,j=2,3,…,p
此规划问题的最优解必为原问题的弱有效解。
主要目标法求得的解必是原问题的弱有效解或有效解
分层序列法
把多目标规划问题中的p个目标的重要性进行排序
先以主要目标为目标函数,约束条件不变,求出最优解与最优值
第二次,以次要目标为目标函数,这次在约束条件中,在不牺牲主要目标的最优值的情况下,寻找次要目标的最优值
在第一次主要目标有多个最优解的情况下,第二次来寻找次要目标的最优解
如果第一次的最优解是唯一的,第二次就没有意义了
为防止这种情况出现,第二次主要目标进入约束条件后,会放松一点条件,加上一个宽容值
加权求和法
给两个目标设计权重
0≤w1,w2≤1,w1+w2=1
0\le w_{1},w_{2}\le 1,\qquad w_{1}+w_{2}=1
0≤w1,w2≤1,w1+w2=1
目标函数变为
minw1f1(x)+w2f2(x)
min\quad w_{1}f_{1}(x)+w_{2}f_{2}(x)
minw1f1(x)+w2f2(x)
约束条件不变

628

被折叠的 条评论
为什么被折叠?



