Sources
首页 知乎知学堂 等你来答 知乎直答 狗仔喊话黄晓明 提问 99+ 消息 62 私信 创作中心 点击打开微尘-黄含驰的主页 在决策优化等运筹学问题上,相较于经典启发式,强化学习是否能表现出更好的效果? 已关注写回答 点击打开微尘-黄含驰的主页 运筹学 启发式算法 强化学习 (Reinforcement Learning) 强化学习 (Reinforcement Learning) 多智能体强化学习 在决策优化等运筹学问题上,相较于经典启发式,强化学习是否能表现出更好的效果? 最近想把多智能体强化学习用于一些调度决策问题上,但是总担心效果会远不及传统启发式算法,MARL在这类问题上能够体现出某些方面的优势呢?显示全部 关注者 163 被浏览 35,762 他们也关注了该问题张成义Forever snowChaoesLuol留德华叫兽爱吃西瓜的yh三天哥 已关注写回答 邀请回答 好问题 1 添加评论 分享 修改问题 12 个回答 默认排序 郑人荣 郑人荣 985交通PhD在读 74 人赞同了该回答 视具体问题而定。如果是求解一个静态问题,我个人认为RL不会有heuristic/meta-heuristic好;如果是动态问题,RL在求解时间上可能优势更大。 首先说一下为啥会用RL求解优化问题。将一个优化问题建模成MDP后,当状态空间和动作空间很大时,很难计算目标函数值。因此就有人提出了approximate dynamic programming(ADP),希望用一个近似的值函数用于计算不同state下不同action对应的value。然而,找到这样的值函数很难。所以就有人想用神经网络来拟合这个值函数。这就是我们现在说的RL。所以说,要用RL求解优化问题,一般需要将其formulate成一个MDP。 那为啥会说到动态问题和静态问题呢。 其实很多静态问题也可以建模成MDP,那为啥不适合用RL去求解? 因为RL求静态问题不精确,或者说神经网络太black box了,很容易掉到局部最优。同时为了RL收敛,跑很多个epoch,计算时间不会比heuristic有优势。但是针对静态问题本身,我们可以通过分析,设计一个好的算子或者meta-heuristic,并且在理想的时间内算出不错的结果。 动态问题就不一样了,因为随时间变化,同一个优化问题总是不停求解。如果用heuristic/exact那一套逻辑,一般会嵌入到rolling horizon的框架内,但是这也意味着每次都需要重新输入新的参数,重新调用算法。但是,如果RL有一个训练好的神经网络,有新的数据来了,我就直接扔神经网络里就好了,它会告诉我接下来做什么。由于这个神经网络训练好的,所以可以很快得出结果,同时他训练的时候也是基于MDP那一套逻辑算出来的,所以就算计算结果即使不太好,但是也还是能用。所以如果这个问题本身对计算时间要求很高,又是一个很复杂的问题,RL还是一个不错的选择。 发布于 2023-12-21 23:10 已赞同 74 7 条评论 分享 收藏 喜欢 收起 就像阳光穿透黑夜 就像阳光穿透黑夜 Interested in 基于数据的智能决策 爱吃西瓜的yh、张成义 等 62 人赞同了该回答 这方面论文现在太多了,简单来说:Currently,付出相同的算法调试时间和精力,DRL是打不过启发式和进化计算的;但是论文里肯定会给DRL付出更多调参时间。十几年前人们对进化计算也是这个看法,觉得太麻烦了不如启发式规则,而且效果不稳定,结果现在PSO都应用到卫星调度了。。。 话说回来,我对DRL4CO的感觉经历了三个阶段: 1-DRL好厉害,比GA DE这些进化计算复杂多了,感觉用DRL才是CO的未来。 2-DRL太依赖MDP建模了,而且训练效果不稳定,甚至打不过30年前的进化计算,只能用来水水文章了。 3-DRL好像确实在CO问题上有可取之处,比如路径敏感型优化;其实进化计算也很依赖建模。。。很多当前DRL4CO的问题本质都可以归结到算法,但是算法在每年顶会的跑轰下一定是指数级进步的。 目前在这个方向练习时长两年半了,不知道后面还会不会有第四个阶段的感觉。 发布于 2023-02-24 15:03・IP 属地北京 赞同 62 15 条评论 分享 收藏 喜欢 收起 三天哥 三天哥 谢邀@木月金 47 人赞同了该回答 目录 收起 应用场景差异 多智能体调度问题 我自己本身是相关决策智能的从业者,智慧供应链相关的算法解决方案架构师。简单回答下,题主的问题。 应用场景差异 启发式和强化学习有各自可应用的决策优化场景。 启发式适用于场景多变,含大规模变量,无法通过精确解算法求解得到,有一定的规划决策时间,。 场景多变:表示场景决策依据和要素差异较大,可能是地域管理差异(比如不同工厂排产,不同城市车辆调度等) 大规模变量和无法用精确解得到:这个都属于数学问题规模超过了一定的规模,无法得到最优解。用启发式算法尝试得到可行性/局部最优解。 有一定的规划决策时间:表示规划决策时间不需要实时/半实时,可以允许有较长的决策时间,比如1-2小时。这也是启发式算法的特点有关,一般来说计算时间越长,启发式算法搜索到的解更优。如果需要快速返回解,启发式算法可能只给出当前搜到的可行解或者无解。 启发式算法常用于初步规划层面,比如车辆资源的规划,线路的规划,工序排产的规划等。在规划时候,可以允许有较大的时间窗可以计算。 强化学习适用于环境要素相对固定,好构建仿真环境和奖励函数,对决策输出的时效性有较高要求。 环境要素相对固定:强化学习依赖环境交互,需要构建仿真环境进行奖励反馈。如果场景多变,强化学习训练得到的值函数/策略函数的可迁移性就很差。每个工厂/城市可能都需要训练,成本较高。 时效性要求比较高:需要快速输出决策结果,训练好的模型能够快速应用。 强化学习适用于实时决策为主,比如自动派单,游戏快速决策,下棋等。 在一些问题中,我们可以把两者结合到一起发挥各自的特长。比如基于订单需求输入的整个运输服务网络的决策。 启发式算法能够基于计划性的,已知的订单进行初步规划决策,输出整体的运输服务网络规划,包括运输工具的选择,路线的选择,各运输工具运载货物等 强化学习能够应用在实际执行过程中的反馈调整,突发情况等应对。比如某辆车抛锚,某条路运输延迟等,如何快速积极地的调整网络服务,做出决策。 多智能体调度问题 多机调度问题一直是工业界和学界研究的课题。主要的方法: 规则引擎:rule-based 启发式算法:heuristics 强化学习:reinforcement learning 强化学习:强化学习 工业界落地的应用很多是规则引擎为主,主要是出bug概率低,系统稳定,可导入人为先验知识,可解释性强。另外,算法层面,看具体场景,选择启发式算法和强化学习方法。 学界喜欢用强化学习方法,主要有好发论文这一出发点考量。但工业界强化学习的成本很高,一般采用启发式的居多。 最后,关于这类的讨论,我之前也发布过类似的问题,以及我自己的回答,欢迎查阅。 有什么车辆调度算法的最新研究,比如用强化学习的方法? 74 赞同 · 16 评论回答 发布于 2023-02-25 22:54 赞同 47 5 条评论 分享 收藏 喜欢 收起 logo 知乎 · 盐选会员 广告 不感兴趣 知乎广告介绍 追光盐 · 东方「小」人物志长篇影视征文 最高 14500 元奖金;参与码字挑战,额外瓜分 3000 元!查看详情 oneday oneday Seek simplicity, distrust it 33 人赞同了该回答 目录 收起 Introduction 介绍 Toy example与三类解题思路 启发式: heuristics 最优化: optimization 最优化模型求解: scipy.optimize 最优决策: markovian approach 0/1背包问题 总结 Introduction 介绍 最优决策或决策优化问题(包括不确定情况下的最优决策问题)在互联网中随处可见: 对于电商平台或直播购物需要根据用户的历史购买情况和预备库存,决定在线商品的实时价格, 最大化预期营收(revenue)或盈利(profit)。 航空公司需要根据飞机的起飞时间和历史售卖情况来实时决定机票在当前的价格, 来最大化当前航班营收。 对于给定的区域,打车平台需要根据当前打车的用户列表和等待的司机列表进行派单决策: 来决定将哪个司机派送给哪个用户。 对于直播与短视频平台,需要决定最终流量的分配机制,将哪些视频推荐给哪些用户;又或者如主播PK中决定哪些主播与主播进行PK。 对于上述场景,平台可能需要设计自动化的决策系统(decision-making systems)或决策支持系统(decision-support systems)。我们可以从数学建模或计算的角度来掰-掰最优决策问题以及常见的解题范式。 Toy example与三类解题思路 一个大家都熟悉最优决策的toy example可以是0/1背包问题(0/1 knapsack problem)。一个大家熟知的0/1背包问题可以描述如下: 一个强盗走进一个山洞,山洞里有n个值钱的物品: 其价值可以表示为 . 其重量可以表示为 . 强盗只有一个负重为 的背包,问强盗怎样才能在有限重量约束下最大化取的物品的总价值。 启发式: heuristics 通常,最常见的思路就是基于启发式(heuristics)的策略。比如对于背包问题, 一个启发式策略可以描述如下: 我们按物品的价值(value)或每单位价值( )从大到小进行排序。 基于排序准则,我们一直选靠前的商品,直至整体重量大于我们背包的重量限制( )。 令人惊讶的是, 对于决策优化问题,启发式的框架是互联网等行业中使用最广泛的策略。如对于大家熟悉的短视频或直播的流量分配,一个经典的框架我们可以简单地看成是基于排序的heuristics: 短视频推荐:召回-粗排-精排-重排 同时,对于决策中商业约束的场景,互联网中的很多决策的约束并非是硬性(``Soft'');如对于广告预算分配,如果广告商给定要求是每天1000块,我们只需要保证大体在1000左右波动, 而我们在基本框架的基础增加控制就可以很容易做到。 当然,对于给定更复杂的问题,我们可以设计更加高明的启发式搜索策略框架。以组合优化为例,一个通用的启发式逻辑框架可以如下, 设计良好的启发式策略框架在很多场景可以达到sota的水平;如对于(TSP: Traveling Salesman problems)问题,基于上述思想的Lin-Kernighan (K* optimal strategy)在诸多TSP测试任务中表现最优,而且速度快。 最优化: optimization 从数学建模的角度,我们可以很自然地基于最优化模型对其进行上述0/1背包问题建模。一般而言,一个最优化模型框架包含三个主要元素: 决策变量, 优化目标与约束集。 决策变量(Variable): x_i 优化目标(Objective): \sum\limits_{i=1}^n v_i x_i 。 约束集(Constraints):\sum\limits_{i=1}^n w_i x_i \leq W 约束集(Constraints):\sum\limits_{i=1}^n w_i x_i \leq W 对于0/1背包问题,我们可以将上述元素整合成最优化模型, \begin{equation*} \begin{array}{ll} \underset{x_1,x_2,...,x_n}{\text{maxmize}} & \displaystyle \sum\limits_{i=1}^n v_i x_i \\ \text{subject to} & \displaystyle \sum\limits_{i=1}^n w_i x_i \leq W \\ & \displaystyle \mathbf{x_i} \in \{0,1\},i=1,..,n \end{array} \end{equation*} 在这里可以看到,对于约束,我们有 \mathbf{x_i} \in \{0,1\} , 也就说我们的决策变量要求是一个整数,我们把这类称之为整数规划(integer programming)问题;当然,对于0/1背包问题,可以看成是一类特殊的整数规划问题,因为我们的取值 x_i \in \{0,1\} ,我们可以称之为0/1整数规划问题。 最优化模型求解: scipy.optimize 当我们搭建好最优化模型,我们就可以通过我们熟悉的solver对模型进行求解,市面上有很多优秀的求解工具和solver, 如google-ortools, pulp, 又或者国内自研的新一代solver-copt。 如对于入门的同学,我们可以先尝试用大家熟悉的scipy.optimize里的milp模块来解上述整数规划问题。 import numpy as np ### Input variables W = 5 values = [12,10, 20, 15] weights = [2,1,3,2] from scipy.optimize import milp, LinearConstraint, Bounds ### The objective values@x # 优化模块默认是minimize *(-1) 转成maximize c = np.array([12,10, 20, 15])*(-1.) integrality = np.ones_like(values) ###约束集合 A = np.identity(len(values)) A = np.concatenate((np.array(weights).reshape(1,-1),A), axis=0) upper_bound = np.array([5, 1,1,1,1]) #low_bound = np.array([0,0,0,0,0]) low_bound = np.zeros(upper_bound.shape) constraints = LinearConstraint(A, low_bound, upper_bound) res = milp(c=c, constraints=constraints, integrality=integrality) print(res) 结果: 最优决策: markovian approach 上述的背包问题也可以看成是一个序列决策问题;对于序列决策问题,我们可以将其建模成马尔可夫过程(Markov decision process) or部分可观测马尔可夫过程(POMDP), 并在此过程中设计或通过数据建模拟合出最优策略(optimal policy)函数。这也是问题里说的, 上图是是经典教科书的马尔可夫过程(MDP)的框架。 一般而言,一个MDP可以描述如下: 一个智能体(Agent)在给定一时刻$t$选择一个行动 . 一方面,针对该智能体(Agent)的行动, 环境(Environment)返回给该智能体(Agent)返回一个奖励(Reward) 。 另一方面, 因为这个行动(Action), 该智能体(Agent)从一个状态 转态转移到下一个状态 。 针对具体的问题,我们建模的目标是希望能靠找一个最优的策略函数 ,最大化整体过程中的累积收益(Accumulative rewards),又或者是最小化我们累积损失(Accumulative regrets)。 而相应地,对于一个MDP问题,建模的核心之一在于我们如何设计与定义一个合理且优雅的状态空间(State spaces)与行动空间(Action space), 对于给定的问题通过贝尔曼方程(bellman equation), 推导出我们的最优策略(Optimal policy)。一个强化学习中觉的贝尔曼方程的核心思想可表述为: 给定起始状态点 ,其 状态的价值(value),取决当前状态的奖励(reward),再加上下一个状态 的价值。 如对于在线策略值函数,我们可以用如下贝尔曼方程表示: 相应地,我们可以得到基于贝尔曼方程的最优值函数: 上述分别在线策略值函数的贝尔曼方程和最优值函数的贝尔曼方程。 当然,当我们将问题formula成MDP或POMDP的方式后,在强化学习模型泛滥的今天,有一堆高大上的RL等着同学去尝试。 0/1背包问题 以上述的0/1背包问题为例,基于MDP的框架,我们存在着最优子结构或贝尔曼方程(Bellman equations) 以上图为例: 列表示N个item; 行表示重量,其重量最大值为Capacity 表示在给定重量j约束中且包含item $i$所能达到的最大价值。 对于表中给定值 ,其值有两种可能: 1.) ,给定重量约束为j,我们的解集合不包含物品i; 包含物品$i$, 因此可以表示为 用公式表示可以表示为 一个简单的DP-python代码可以表示为: def DPknapsack(values, weights, W, n): ## Base Case if n==0 or W == 0: return 0 if(weights[n-1]> W): return DPknapsack(values, weights, W, n-1) else: cand1 = values[n-1]+ DPknapsack(values, weights, W-weights[n-1], n-1) cand2 = DPknapsack(values, weights,W, n-1) return max(cand1, cand2) ### Input variables W = 5 values = [12,10, 20, 15] weights = [2,1,3,2] DPknapsack(values, weights, W, n=4) 总结 这部分,我们介绍了优化决策问题并以教科书上的0/1背包问题为例介绍了最优决策问题的三类解题范式,分别是: 启发式策略(heuristics)。 数学建模与最优化模型。 Markovian approach与强化学习的范式。 正如统计学家 George Box所说的 "All models are wrong, but some are useful”。给定一个具体的业务问题,取决于场景,开发资源,实时性限制等等。这三类解题范式各有可取之处与参考价值。 编辑于 2023-12-22 09:23 真诚赞赏,手留余香 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 赞同 33 添加评论 分享 收藏 喜欢 收起 dfxfgcghvh dfxfgcghvh 晚生不见凤凰来 34 人赞同了该回答 Deep RL一般会学: 一个actor network,主要用于出action 一个critic network,主要用于出state value,用于给actor提供loss 个人认为,RL中的value function/q function是heuristic的一种,但这个heuristic是学出来的。现行状况下heuristic function我目测目前只有两种方式得到: 手工设计 学出来 学出来又有两种: 有精确label的监督学习 没有精确label的话,只能设置reward function,从边界出发,反向推测到所有状态的强化学习 根据sutton的reward is enough的精神:每个reward function可以对应一个value function,value function是一种heuristic,某一个reward function可能可以对应到最优heuristic。 加上shanghua的Intelligent Heuristics Are the Future of Computing的精神,我们可以通过RL超越经典启发式 那么一个潜在的答案就是:在现有传统算法框架下使用RL,但放弃端到端输出action,通过RL去学习一个好的heuristic function。 而根据compression is intelligence的精神,我们的搜索算法实际上是一种高效的压缩,因此大模型很可能需要经典搜索算法的融入,成为Q*吧(大雾 AlphaGo是一个很重要的工作 编辑于 2024-02-15 16:40 赞同 34 1 条评论 分享 收藏 喜欢 YANG YANG 机器人 12 人赞同了该回答 决策规划方向上,DRL在中小规模问题上跑不过传统optimal planning算法的,要是比upper bound跑的还高那就是造假了。在planning跑不了的大规模问题上跑DRL才有意义。 发布于 2023-12-22 09:55 赞同 12 添加评论 分享 收藏 喜欢 真的可怕 真的可怕 11 人赞同了该回答 小萌新,看到问题简单总结一下: 开发层次:RL有诸多限制,需要将问题建模成马尔科夫决策过程,对问题结果存在顺序依赖性;而启发式算法能适用于大多数场景; 部署层次:1)求解质量:RL在求解质量上仅能在部分问题中超过启发式算法;2)求解速度:由于预训练先验知识的引入,正常来说RL速度要比启发式算法快出几个数量级; 应用层次:RL至少这几年很难广泛地应用到工业界,而某启发式算法都已经上天了; 论文层次:RL做决策优化只在近几年比较火,各个问题顶会都在不断刷新SOTA;启发式算法一直很火,至少每年大量文章; 学习层次:RL结合深度学习入门不是很容易;启发式算法可能相对容易点(简单调侃下,好像有不少动物园算法?) 总的来说RL可能就像十几年前的启发式算法,打肯定打不过,比也没法公平比,目前还是得相信后人写文章的智慧了。 发布于 2023-03-01 10:20 赞同 11 添加评论 分享 收藏 喜欢 正人君子 正人君子 11 人赞同了该回答 我自己的理解,有两点原因吧, 第一点,强化学习是一类动态规划方法,用来专门求解有Markov Process性质的问题,这类问题有时候走几步截至都不一定,想用启发式算法的话就比较难。你可以想象一下在一个棋盘游戏或者星际争霸,你怎么用启发式算法求解出一个游戏策略? 第二点,强化学习最后训练完后是得到一个策略,启发式算法只是得到一个结果。这种情况下强化学习既可以在训练集上用,也可以在测试集上用。启发式算法只是相当于在训练集上得到一个次优解,测试集就要重新再跑一遍了。 发布于 2024-02-18 20:22 赞同 11 添加评论 分享 收藏 喜欢 王进林 王进林 1 人赞同了该回答 这个问题问的太大了,具体情况肯定要结合实际进行比较 但是单纯从理论上来说,强化学习的潜力肯定是要好一些的 所谓启发式算法,就是借助外在经验,以较不错的计算代价情况下获得能够接受的结果。从这个表述上就可以知道,对于结果是否最优实际上并不是特别在乎。而现在的强化学习算法在收敛性上,不能说全部吧,起码一部分是可以保证在奖励函数设计合理的情况下,最后收敛是接近最优解的。不知道这样来表述是否能接受。 发布于 2023-02-28 18:04 赞同 1 添加评论 分享 收藏 喜欢 优化算法应用研究 优化算法应用研究 擅长各种优化算法,深度学习,强化学习等,代码v我 1 人赞同了该回答 五种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB - 知乎 (zhihu.com) 一、五种算法(DBO、LO、SWO、COA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。https://blog.csdn.net/weixin_46204734/article/details/128138381 参考文献:Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022). https://doi.org/10.1007/s11227-022-04959-6 2、狐猴优化算法LO 狐猴优化算法(Lemurs Optimizer,LO)由Ammar Kamal Abasi等人于2022年提出,该算法模拟狐猴的跳跃和跳舞行为,具有结构简单,思路新颖,搜索速度快等优势。https://blog.csdn.net/weixin_46204734/article/details/133391050 参考文献: [1]Abasi AK, Makhadmeh SN, Al-Betar MA, Alomari OA, Awadallah MA, Alyasseri ZAA, Doush IA, Elnagar A, Alkhammash EH, Hadjouni M. Lemurs Optimizer: A New Metaheuristic Algorithm for Global Optimization. Applied Sciences. 2022; 12(19):10057. Applied Sciences | Free Full-Text | Lemurs Optimizer: A New Metaheuristic Algorithm for Global Optimization 3、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为,具有搜索速度快,求解精度高的优势。https://blog.csdn.net/weixin_46204734/article/details/133999858 参考文献: [1]Abdel-Basset, M., Mohamed, R., Jameel, M. et al. Spider wasp optimizer: a novel meta-heuristic optimization algorithm. Artif Intell Rev (2023). Spider wasp optimizer: a novel meta-heuristic optimization algorithm | SpringerLink [1]Abdel-Basset, M., Mohamed, R., Jameel, M. et al. 蜘蛛蜂优化器:一种新颖的元启发式优化算法。Artif Intell Rev (2023 年)。Spider wasp 优化器:一种新颖的元启发式优化算法 |Springer链接 4、小龙虾优化算法COA 小龙虾优化算法(Crayfsh optimization algorithm,COA)由Jia Heming 等人于2023年提出,该算法模拟小龙虾的避暑、竞争和觅食行为,具有搜索速度快,搜索能力强,能够有效平衡全局搜索和局部搜索的能力。https://blog.csdn.net/weixin_46204734/article/details/132939275 参考文献: [1] Jia, H., Rao, H., Wen, C. et al. Crayfish optimization algorithm. Artif Intell Rev (2023). Crayfish optimization algorithm | SpringerLink [1] Jia, H., Rao, H., 温, C. et al. 小龙虾优化算法.Artif Intell Rev (2023 年)。Crayfish 优化算法 |Springer链接 5、淘金优化算法GRO 淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。https://blog.csdn.net/weixin_46204734/article/details/134023570 参考文献: K. Zolfi. Gold rush optimizer: A new population-based metaheuristic algorithm. Operations Research and Decisions 2023: 33(1), 113-150. DOI 10.37190/ord230108 K. 佐尔菲。Gold rush optimizer:一种新的基于群体的元启发式算法。运筹学与决策 2023:33(1),113-150。DOI 10.37190/ord230108 二、模型简介 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 三、DBO、LO、SWO、COA、GRO求解无人机路径规划 (1)部分代码 close all clear clc 、warning off; %% 三维路径规划模型定义 global startPos goalPos N N=2;%待优化点的个数(可以修改) startPos = [10, 10, 80]; %起点(可以修改) goalPos = [80, 90, 150]; %终点(可以修改) SearchAgents_no=30; % 种群大小(可以修改) Function_name='F1'; %F1:随机产生地图 F2:导入固定地图 Max_iteration=100; %最大迭代次数(可以修改) % Load details of the selected benchmark function [lb,ub,dim,fobj]=Get_Functions_details(Function_name); AlgorithmName={'DBO','LO','SWO','COA','GRO'};%算法名称 addpath('./AlgorithmCode/')%添加算法路径 bestFit=[];%保存各算法的最优适应度值 for i=1:size(AlgorithmName,2)%遍历每个算法,依次求解当前问题 Algorithm=str2func(AlgorithmName{i});%获取当前算法名称,并将字符转换为函数 [Best_score,Best_pos,Convergence_curve]=Algorithm(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);%当前算法求解 %将当前算法求解结果放入data中 data(i).Best_score=Best_score;%保存该算法的Best_score到data data(i).Best_pos=Best_pos;%保存该算法的Best_pos到data data(i).Convergence_curve=Convergence_curve;%保存该算法的Convergence_curve到data bestFit=[bestFit data(i).Best_score]; end %% 画各算法的直方图 figure bar(bestFit) ylabel('无人机飞行路径长度'); set(gca,'xtick',1:1:size(AlgorithmName,2)); set(gca,'XTickLabel',AlgorithmName) saveas(gcf,'./Picture/直方图.jpg') %将图片保存到Picture文件夹下面 %% 画收敛曲线 strColor={'r-','g-','b-','k-','m-','c-','y-'}; figure for i=1:size(data,2) plot(data(i).Convergence_curve,strColor{i},'linewidth',1.5)%semilogy hold on end xlabel('迭代次数'); ylabel('无人机飞行路径长度'); legend(AlgorithmName,'Location','Best') saveas(gcf,'./Picture/收敛曲线.jpg') %将图片保存到Picture文件夹下面 %% 显示三维图并保存 path=plotFigure(data,AlgorithmName,strColor);%path是各算法求解的无人机路径 saveas(gcf,'./Picture/路径曲线(三维).jpg') %将图片保存到Picture文件夹下面 %% 显示二维图并保存 view(2) saveas(gcf,'./Picture/路径曲线(二维).jpg') %将图片保存到Picture文件夹下面 (2)部分结果 四、完整MATLAB代码 无人机三维路径规划研究 - 知乎 (zhihu.com) 发布于 2023-11-18 21:48 真诚赞赏,手留余香 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 赞同 1 添加评论 分享 收藏 喜欢 收起 匿名用户 匿名用户 上限更高,下限也更低 发布于 2023-02-21 09:56 赞同 添加评论 分享 收藏 喜欢 写回答 广告 相关问题 《管理运筹学》和《数据、模型与决策》这两门课程是什么关系? 1 个回答 帮助中心 知乎隐私保护指引 申请开通机构号 联系我们 举报中心 涉未成年举报 网络谣言举报 涉企侵权举报 更多 关于知乎 下载知乎 知乎招聘 知乎指南 知乎协议 更多 京 ICP 证 110745 号 · 京 ICP 备 13052560 号 - 1 · 京公网安备 11010802020088 号 · 京网文[2022]2674-081 号 · 药品医疗器械网络信息服务备案(京)网药械信息备字(2022)第00334号 · 广播电视节目制作经营许可证:(京)字第06591号 · 互联网宗教信息服务许可证:京(2022)0000078 · 服务热线:400-919-0001 · Investor Relations · © 2024 知乎 北京智者天下科技有限公司版权所有 · 违法和不良信息举报:010-82716601 · 举报邮箱:jubao@zhihu.com 本站提供适老化无障碍服务
Podcast Editor
Podcast.json
Preview
Audio
