2023年美国大学生数学建模竞赛D题联合国可持续发展目标的优先次序解题全过程文档及程序

2023年美国大学生数学建模竞赛

D题 联合国可持续发展目标的优先次序

原题再现:

  背景
  联合国(UN)制定了17 项可持续发展目标(SDGs)。实现这些目标将最终改善世界各地许多人的生活。这些目标不是相互独立的。因此,在某些目标上的积极收获通常会对其他目标产生影响(积极的或消极的,有时两者都有)。这种相互联系使实现所有目标成为一个流动的过程,资金限制和其他国家和国际优先事项可能优先考虑。此外,技术进步、全球大流行病、气候变化、地区战争和难民流动的影响对许多目标产生了严重影响。
  要求
  探究目标之间的关系!
  ●建立17个可持续发展目标之间的关系网络。
  ●利用各个可持续发展目标,以及你的网络结构,设定优先事项,以最有效地推动UN的工作向前发展。你如何评估每个优先事项的有效性?如果你的优先级被启动,在未来10年里可以合理实现什么?
  ●如果实现了其中一个可持续发展目标(例如,没有贫困或饥饿),由此产生的网络结构将是什么?这一成就将如何影响你的团队的优先事项?是否有其他目标应该纳入或向UN提出纳入?
  ●讨论技术进步、全球流行病、气候变化、地区战争、难民流动或其他国际危机对你的团队网络的影响,以及你的团队对优先事项的选择。从网络的角度来看,对UN的进展有什么重大影响?
  ●讨论你的网络方法如何帮助其他公司和组织设定目标的优先级。

整体求解过程概述(摘要)

  联合国制定了 17 个可持续发展目标 (SDG),以应对与经济、技术和环境问题等相关的全球挑战。为了让世界变得更美好,为了掌握可持续发展目标的优先关系,我们开发了动态指标-目标优先网络(DIGNP)。

  首先,为了创建一个可持续发展目标网络,可以捕捉不同目标之间复杂而动态的关系及其随时间推移的联系,我们使用了系统动力学建模。首先,我们首先使用相关性选择每个可持续发展目标的几个最有影响力的指标。然后我们布置指标网络和相应的目标网络。通过综合分析指标之间的相关性以及指标对目标的影响来评估目标之间的关系。

  接下来,我们建立一个优先评估系统,优先考虑可持续发展目标,并预测其在优先事项启动后的未来十年的影响和实现。基于构建的可持续发展目标网络的拓扑结构,我们制定了五个关键指标来衡量每个目标的优先级。然后,使用熵权重方法,我们开发了SDG优先级排序系统。前五个可持续发展目标是可持续发展目标17、可持续发展目标3、可持续发展目标1、可持续发展目标4、可持续发展目标13,按优先级排序。 根据优先级,我们通过自动回归综合移动平均线(ARIMA)预测可持续发展目标的未来演变。我们的分析表明,如果我们的优先事项得到启动,可持续发展目标将在优先期限内更快地改善。

  此外,考虑到目标调整,我们的动态SDG网络会根据任何指标或目标节点的变化自动调整其拓扑和优先级排名。目标完成会导致我们网络中节点的减去,从而改变边缘权重和优先级分数。目标添加导致在我们的网络中添加节点。我们的研究结果表明,将获取信息通信技术作为新的可持续发展目标对于加强可持续发展目标之间的联系并推动其实现至关重要。

  同时,可持续发展目标的网络拓扑和优先级也会受到各种国际危机的严重影响,影响联合国的进展。就森林火灾而言,强调了可持续发展目标13、可持续发展目标15、可持续发展目标11,并呼吁联合国实施与可持续发展目标相一致的举措,以促进复原力和可持续发展。联合国必须认识到这些潜在影响,并调整其战略,以应对出现的最紧迫挑战。

  最后,我们推动可持续发展目标网络的建设,并将优先级确定为通用模型动态指标-目标网络以进行优先级排序。通过合理的数据输入,可以构建一个全球性的、动态的、自动化的指标和目标网络,并确定优先级。更重要的是,我们为使用我们的DIGNP模型的用户设计了一个用户界面。

模型假设:

  假设1:当SDG的官方指标达到最佳值并在一定时期内保持最佳状态时,我们说SDG已经实现。
  理由:高于和低于目标线的波动意味着不稳定。我们期望的是每个目标的持久改进。

  假设2:我们假设网络中的节点保持连接并以相对较快的速度相互影响(在几个月或一年内)。
  理由:在联合国的影响下,不同部门将紧密相连,一个可持续发展目标的进展将以相对较快的速度影响其他可持续发展目标。

  假设3:网络的统计属性(如指标数据)不会突然改变并保持可预测性。
  理由:主要影响因素是连续的,短期内相对稳定。

问题重述:

  背景和问题重述
  联合国 (UN) 确定了 17 个可持续发展目标 (SDG),以改善全球人民的生活。这些目标解决了与经济、技术、环境等相关的紧迫全球挑战,并且是相互依存的,这意味着一个领域的进步可能会以积极或消极的方式影响其他领域。实现所有可持续发展目标是一个动态过程,受资金和其他资源以及气候变化等全球事件的限制。
  因此,为这些目标确定优先事项对联合国和其他全球机构来说迫在眉睫。为了帮助解决这个问题,我们的团队提出了以下任务:
  首先,构建一个涉及17个可持续发展目标的网络,以显示它们之间的关系。
  其次,建立优先评估体系,确定可持续发展目标的优先次序,推动联合国工作向前发展。然后预测优先启动后未来 10 年的影响和成就。
  此外,分析实现一个可持续发展目标对网络结构和优先事项的影响,并向联合国提出其他可持续发展目标及其可能的影响。
  同时,讨论技术进步、全球流行病、气候变化、地区战争和难民流动等全球危机对我们的网络和优先事项的影响。从这一点出发,总结它们对联合国的影响。
  最后,将可持续发展目标网络方法推广到其他情况,以帮助其他组织确定其目标的优先事项。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

global neighbor_;%邻居
global get_ij;%收益
global w_ij;
global f_ij;
global day_ij;
global f_left;
global w_left;
neighbor_=[1,1,1,0;1,1,1,1;0,1,1,1];
global get_mat;
get_mat = -inf(400,600,n,30);
get_mat(:,:,1,1)=0;
mine_money = 1000;
bag =1200;
money =10000;
w_weight = 3;
f_weight =2;
f_price =10;
w_price = 5;
mine = 4;
vilige = 3;
s = 1;
e = 2;
w = [5,8,10];
f = [7,6,10];
day = [2,2,1,3,1,2,3,1,2,2,3,2,1,2,2;2,3,3,2,2;1,1,2,1,3;2,1,1,2,2];
day = day';
n = 4;
d_n = [0,3,4,8;3,0,3,5;6,3,0,2;8,5,2,0];
f_left =-inf(n,n,30);
w_left = -inf(n,n,30);
get_ij = -inf(n,n,30);
w_ij = inf(n,n,30);
f_ij = inf(n,n,30);
day_ij =inf(n,n,30);
for k = 1:30
    temp1=day_ij(:,:,k);
    index_1 = find(day(k:end)~=3);
    judge = (d_n <= length(index_1)&d_n~=0);
    index_2 =find(judge == 1);
    temp1(index_2)=index_1(d_n(index_2));
    temp1(find(d_n==0))=0;
    day_ij(:,:,k) = temp1;
    for M = 1:n
        for N = 1:n
            if(M~=N)
                if temp1(M,N)~=inf
                    weather = day(k:k+(temp1(M,N)-1));
                    w_ij(M,N,K) = length(weather ==1)*(w(1))*2 + length (weather==2)*((w(1))*2 + length(weather ==3)*(w(3));
                    f_ij(M,N,K) = length(weather ==1)*(f(1))*2 + length (weather==2)*((f(1))*2 + length(weather ==3)*(f(3));
                end
            else 
                if M == mine
                    f_ij(M,N,k) = day(k)*f(day(k))*3;
                    w_ij(M,N,K) = day(k)*w(day(k))*3;
                    get_ij(M,N,K) = 1000 - f_ij(M,N,k)*f_weight*f_price*2 - w_ij(M,N,K)*w_weight*w_price*2;
                else
                    f_ij(M,N,k) = day(k)*f(day(k));
                end
                lost_w = -inf(10,10,10);
                lost_f = -inf(10,10,10);
                cost_money = -inf(10,10,10);
                E = -inf(10,10,10);
                E_f = -inf(10,10,10);
                E_w = -inf(10,10,10);
                w_cost = [3,9];
                f_cost = [4,9];
                weather = [1,2,1,1,1,1,2,2,2,2];
                p_1(find(p_1==0)) = inf;
                for t=1:10
                    for i =1:10
                        for j =1:10
                            if i~=j
                               lost_w(i,j,t) = 2*w_cost(weather(t));
                                      lost_f(i,j,t) = 2*f_cost(weather(t));
                                      cost_money(i,j,t) = lost_w(i,j,t)*5 + lost_f(i,j,t)*10;
                                E(i,j,t)=cost_money(i,j,t)*(p_1(i,j,t+1)^2*2 + 1-p_1(i,j,t+1).^2);
                                E_f(i,j,t) = lost_f(i,j,t);
                                E_w(i,j,t) = lost_w(i,j,t);
                            else
                                if i==9
                                    lost_w(i,j,t) = 3*w_cost(weather(t));
                               lost_f(i,j,t) = 2*f_cost(weather(t));
                                 cost_money(i,j,t) = lost_w(i,j,t)*5 + lost_f(i,j,t)*10;
                                   E(i,j,t)=cost_money(i,j,t)*(p_1(i,j,t+1)^2*2 + 1-p_1(i,j,t+1).^2);
                                E_f(i,j,t) = lost_f(i,j,t);
                                E_w(i,j,t) = lost_w(i,j,t);
                                else
                                    lost_w(i,j,t) = w_cost(weather(t))
                            lost_f(i,j,t) = f_cost(weather(t));
                                cost_money(i,j,t) = lost_w(i,j,t)*5 + lost_f(i,j,t)*10;
                                E(i,j,t)=cost_money(i,j,t);
                                  E_f(i,j,t) = lost_f(i,j,t);
                                E_w(i,j,t) = lost_w(i,j,t);
                                end
                            end
                        end
                    end
                end
                table1 = p_1(:,:,3);
                table2 = E(:,:,3);
                w = zeros(3,3);
                w = [1/3,1/2,1/6;1/2,3/7,1/14;3/8,1/2,1/8];
                E = -inf(25,25,3);
                a_1 = 1000;
                a_2 = 20000;
                a_3 = 20600;
                for j = 1:3
                    E(:,:,j) = w(i,j)*(3*2*5 + 4*2*10) + w(j,2)*(9*2*5+9*2*10);
                end
                for i = 1:25
                    E(i,i,:) = w(j,1)*(3*5 + 4*10) + w(j,2)*(9*5+9*10)+w(i,3)*(10*5 +10*10);
                    if i==18
                        E(i,i,:) = 3*(w(j,1)*(3*5 + 4*10)+w(j,2)*(9*5 + 9*10)+w(j,3)*(10*5 +10*10))-1000;
                    end
                end
                g_t = (5,5,30);
                g_w = (5,5,100);
                g_f = (5,5,100);
                for t = 1:30
                    for i =1:5
                        for j = 1:5
                            g_t(i,j,t) = a_1*exp(-(25-t) - (5-i)- (5 - j));
                        end
                    end
                end
                for w = 1:100
                    for i = 1:5
                        for j = 1:5
                            g_w(i,j,w) = a_2*exp(-(w-7*(5-1)));
                        end
                    end
                end
                for f = 1:100
                    for i = 1:5
                        for j = 1:5
                            g_f(i,j,f) = a_3*exp(-(f-7*(5 - i)-7*(5-j)));
                        end
                    end
                end
                k = 12;
                w1 = 25;
                w2 = 100;
                f1 =100;
                f2 =100;
                t1 =25;
                t2 =1;
                test = [2,3];
                test_1 = zeros(1,2);
                E_1 = zeros(1,2);
               E_1(1) = E(k,(test(1))*5 + test(2),1);
               E_1(2) = E(k,(test(2))*5 + test(1),1);
               test_1(1) = g_t(test(1),test(2),t1) + g_w(test(1),test(2),w1)  +g_w(test(1),test(2),w1) + g_f(test(1),test(2),w1)
                choose = zeros(2,2);
                for i =1:2
                    for j = 1:2
                        if i~ =j
                            choose(i,j) = test_1(i) + E_1(i);
                        else
                            choose(i,j) = test_1(1) + 2*E_1(i);
                        end
                    end
                end
                best = 0;
                for i = 1:2
                    temp = choose(i,:) > max(choose (:,:));
                    if sum(temp) == 2
                        best = i;
                    end
                end
                
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值