【最优化问题】方法总结

内容来源于b站:https://www.bilibili.com/video/av27098560?from=search&seid=8477233308742732808


一、登山搜索算法

  1. 产生一个初始点;
  2. 向领域最高的方向移动

问题:依赖于初始状态,容易陷入局部最优

改进:

  1. 局部束搜索:随机产生多个初始点,并行搜索(多几个人从不同位置开始爬山,能到达最高点的概率就大大增加);
  2. 随机重启:在指定步以后,简单的随机选取一个状态重新开始登上搜索;

二、模拟退火算法

模拟退火算法是对登山算法的一种改进,以一定的概率接收更差的解,从而跳出局部最优的限制;

采用传统的登山搜索策略,但是不时朝产生改进解的方向移动,即下山移动。随着时间推移,采取下山移动的概率逐渐降低,并且下山移动的步长逐渐减小。

1.产生初始点;

2.随机向周围移动‘

3.移动后结果更优则接受;

4.移动后结果更差,则以一定的概率接收;

模拟退火模拟的是高温物体自然降温的过程,当温度较高的时候,分子运动速度快,接收更差解的概念更大。

三、群智能

1. 鸟群算法:

     模拟鸟群的三个性质

            1)鸟群的个体之间不会相撞;

            2)鸟群有一个共同的目标方向;

            3)个体会向团体中心聚拢。

产生初试点阵,每个点都有自己的运动方向与速度,这些点总体向着历史最优解方向移动,并且向当前所有点中的最优点聚拢;

2.蚁群算法

  模拟蚁群寻找最短路的算法。

1)蚂蚁在行进的过程会留下信息素,当碰到分叉的时候,蚂蚁会倾向于走信息素浓度更大的路径;

2)信息素会随着时间的延迟而稀释;

3)蚂蚁行进的速度是一样的,因此在单位时间内,短路径上的蚂蚁数量比长路径上的蚂蚁数量要多,从而蚂蚁留下的信息素浓度也就越高。

 

四、遗传算法

 模拟自然界生物的遗传;DNA链上记载有信息;基因会发生变异;自然(人工)选择,适者生存。

五、元启发式算法

如果问题有n个解,一个启发式规则只能对应于n个解中的一个。启发式规则既可能产生很好的解也可能产生很差的解。

元启发式算法是一种寻有能力很强的启发式算法。

1.从一个或多个候选解开始作为初始值;

2.根据初始值计算目标函数值;

3.基于已获得的信息,通过个体变异、组合等方法不断更新候选解域;

4.新的候选解域进入下一轮迭代;

元启发算法相当于在整个解空间内搜索最优解,当运行时间无限大时,理论上可以得到全局最优解。但是当问题规模不断扩大,使用元启发算法的效率也会降低。

超启发算法通过制定高层控制策略来操纵底层贪心策略,从而压缩解空间,达到剪枝的目的(最优解所在的空间有可能被剪掉)。

可以这样理解:元启发算法是随机交换,而超启发算法交换的时候要从贪心策略库中随机选择一种规则,交换的部分满足交换规则。

超启发算法步骤:

1.根据常识或计算制定贪心规则库;

2.从贪心规则库里随机选择一条,交换的时候必须满足这一规则;


启发式方法

启发式方法指人在解决问题时所采取的一种根据经验规则进行解决的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统的、以确定的步骤寻求答案。

以下围绕生产调度的不同问题,分别使用三种不同层次的启发式方法进行求解。

一、启发式规则

贪心算法:对某些求最优解问题简单又迅速的设计技术。

贪心算法设计算法的特点是一步一步地进行,常以当前情况为基础,根据某个优化测度作最优选择,而不考虑各种可能的整体情况,它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。

贪心算法的特点:

1)深度搜索,“一条路走到黑”;

2)一般可以快速得到一个解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间;

3)以当前情况为基础作最优选择,而不考虑各种可能的整体情况,不存在回溯。

二、元启发式算法

三、超启发式算法

 

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值