1.多目标规划

多目标回归算法有哪些 多目标规划图解法_数学建模

 现有3个目标:

1.尽量使产品Ⅰ的产量不超过产品Ⅱ的产量;

2.尽可能充分利用所有设备;

3.尽可能使利润不少于56万

注意:目标1是“不超过”,也就是尽量“≤”;目标2是“充分利用”,也就是尽量“=”;目标3是“不少于”,也就是尽量“≥”

多目标回归算法有哪些 多目标规划图解法_matlab_02

 

多目标回归算法有哪些 多目标规划图解法_matlab_03

 求解方法:搜索MATLABA的fgoalattain函数,序贯算法,Lingo求解

2.最短路径

多目标回归算法有哪些 多目标规划图解法_最小生成树_04

 最短路径:从图中的某个顶点出发,到达另外一个顶点的所经过的边的权重之和最小的一条路径

  • 图:边和节点组成的结构,例如道路+城市
  • 边带有方向的是有向图,否则为无向图
  • 权重:每条边都有与之对应的值,本题中边为道路,边的权重为道路长度,越小越好

MATLAB求解最短路径:Dijkstra算法(难),或MATLB的graphshortestpath函数

W = [10,5,2,1,4,6,7,3,9,2];
DG = sparse([1,1,2,2,3,4,4,5,5,5],[2,5,5,3,4,3,1,2,3,4],W);%稀疏矩阵
point_name = ['1','2','3','4','5'];
h = view(biograph(DG,point_name,'showWeights','on'));
[dist,path,pred] = graphshortestpath(DG,1,3)
%加宽加红
edges = getedgesbynodeid(h,get(h.Nodes(path),'ID'));
set(edges,'LineColor',[1 0 0]);%RGB 红绿蓝
set(edges,'LineWidth',2);

求解得到:

多目标回归算法有哪些 多目标规划图解法_matlab_05

 

多目标回归算法有哪些 多目标规划图解法_matlab_06

其中稀疏矩阵可参考

【MATLAB】稀疏矩阵(含有大量0元素的矩阵)___zzz__的博客

3.最小生成树

多目标回归算法有哪些 多目标规划图解法_matlab_07

(1)MATLAB的minspantree函数求解最小生成树

s = [1,1,2,2,3,3,4,4,4,5];
t = [2,3,4,5,4,7,5,6,7,6];
weights = [50,60,65,40,52,45,50,30,42,70];
%生成无向图,s和t对应元素代表着边,weights是权值

G = graph(s,t,weights);
T = minspantree(G);
p = plot(G,'EdgeLabel',G.Edges.Weight,'MarkerSize',8);
highlight(p,T,'EdgeColor','red','LineWidth',3)

 结果:

多目标回归算法有哪些 多目标规划图解法_权值_08

(2)Krukal算法(适合点多边少的图) 

1.把图G中的所有边全部去掉,得到所有单独的顶点V构成的图T=(V,{}),其中V是顶点集合

2.从G中取出当前权值最小的边,如果该边加入T的边集后T不形成回路,则加入T;否则舍弃

多目标回归算法有哪些 多目标规划图解法_权值_09

 

3.重复第2步,直到T中有n-1条边(n是顶点数)

多目标回归算法有哪些 多目标规划图解法_数学建模_10

 

注:若第2步中遇到两条权值相同的最小权值边,任选一条即可,所以最小生成树可能不唯一,但权值之和相同

(3)Prim算法(适合边多点少)

1.设置一个图U,将原图G中任意一顶点取出加入U中

2.在所在的u∈U,v∈(G-U)的边(g,v)中找到一条权值最小的边,并入图U中

多目标回归算法有哪些 多目标规划图解法_matlab_11

 

3.重复步骤2,直到U中包含了所有顶点

多目标回归算法有哪些 多目标规划图解法_权值_12

 

注:若第2步中遇到两条权值相同的最小权值边,任选一条即可,所以最小生成树可能不唯一,但权值之和相同