1 组合优化

组合优化是研究工程中存在大量有限个可行解的问题,这些问理论上可以用枚举法实现,但是一般的实际工程规模都很大,可行解的数量非常巨大,所以枚举法并不适用。

组合优化中最重要的问题就是如何利用已有知识来减小问题空间,进而有效的处理组合爆炸。

目前常用的优化算法有智能优化算法、启发式算法、以及精确算法

  • 精确算法适用于求解小规模问题,所以在实际工程中并不适用。
  • 智能优化算法包括遗算法、模拟退火算法等,由于其自身的优越性使其广泛用于优化领域中。
  • 启发式算法和精确算法相对应,是一种根据经验去发现的算法,由于其能迅速解决而广泛用。

2 遗传算法

遗算法(GeneticAlgorithm,GA)是20世纪60年代,人们热衷于借鉴生物界的“适者生存,优胜劣汰”的化规律,探索有效的算法来理复的优化问题。

它首先由美国的Holland教授于1975年在其专著《AdaptationinNaturalandArtificialSys-tems》中提出。遗算法的研究引起了全世界学者的广泛关注,自1985年以来,关于遗算法的学术会议和研讨会在国际上多次召开,这给遗算法的研究提供了国际交流和学习的机会。

遗算法模仿生物程中基因的选择、交叉和变异机理,在每次的运算中将所有的初始个体利用上述机理这些个体行组合,产生新一代的个体群,反复行上述步骤直到足设置的指标。

遗算法最主要的特点是群体搜索策略和群体中个体之间的信息交换,搜索不以梯度信息为基础,是一种有效的全局搜索方法,非常适用于处理传统方法不容易解决的非线性以及复杂的问题,其用领域非常广泛,比如函数优化、组合优化、生产调度、自动控制、机器学习、图像处理、人工生命、遗传编程、机器学习、数据挖掘等

由于其用范围广、鲁棒性强以及用等特点,使其成为人们广泛研究以及用的象,同时成为了一种算智能的核心技。

遗算法的局部搜索能力差,但把握搜索过程总体的能力较强,它可以找出解空间内的所有解,不会陷入局部最小值,但是会比费时。

3 模拟退火算法

模拟退火算法(SimulatedAnnealing,SA)最早的思想是由N.Metropolis等人于1953年提出。

1983年,S.Kirkpatrick等成功地将退火思想引入到组合优化领域。在大量的研究中,模拟退火算法用于各种组合优化问题,如NP、TSP和Knapsack问题等。并且大量的模拟实验表明,模拟退火算法在求解这些问题时能产生令人满意的近似最解,而且所用的时间也不是很长。

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减最小。

模拟退火算法首先由当前的解空根据函数产生一个新解,求新解所对的目标函数差值,判断差值是否符合设定准则,若符合则新解代替当前解循环,否则继续用之前的解

模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关,而且其具有渐近收敛性,已在理论上被证明是一种以概率1收敛于全局最解的全局优化算法。

模拟退火算法是一种随机算法,并不一定能找到全局的最解,但可以比快的找到问的近似最解。同时模拟退火也是一种贪心算法,它在搜索程引入了随机因素,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出个局部的最解,达到全局的最解.

4 启发式算法

1984年PearlJ.在其专著中说道,所谓启发式算法是指一组指算法搜索方向的、建议性质的规则集,通常按照个规则集,计算机可在解空间中寻找到一个好解,但并不能保每次都能找到好的解,更不能保找到最解。

换言之,它是一种在解决题时所采用的一种根据经验规则去进行现的方法。其特点是在解决题时,利用去的经验,选择已行之有效的方法,而不是系地、以确定的步骤去寻求答案。

启发式解决的方法是与算法相对立的,算法是把各种可能性都一一行尝试,最终能找到问的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案

启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问的解决。但由于这种方法具有尝试错误的特点,所以也有失败的可能性。

科学家的许多重大发现,常常是利用极为的启发式规则。

启发式算法的本质是忽略一部分算法的概念,将待解决的的问题所属具体领域的特点加入到算法中去,从而提高算法的效率。

求解-----组合优化问题相关推荐

  1. Tabu搜索(TS—Tabu search)算法是近年来出现的用于求解组合优化问题的一种高效的启发式搜索技术。 本文采用固定并联电容器作为研究对象对系统进行无功补偿,并利用智能优化方法得到使配电网损耗

    禁忌搜索算法解决配电网无功优化问题对应的MATLAB源码,有对应的参考资料. 电力系统配电网的无功优化规划是保证配电网安全.经济运行的一项有效手段,是降低网损.提高电压质量的重要措施. 因此,电力系统 ...

  2. 使用GNN求解组合优化问题

    文章目录 1 论文内容 1.1 先验知识 1.2 论文方法 1.2.1 大致原理 1.2.2 源码关键实现 1.3 实际问题上的应用 1.3.1 风险分散 1.3.2 Interval Schedul ...

  3. 为什么lp的最优解是一个概率_什么时候应该用概率图模型、消息传递替代传统组合优化求解器?未来工作?(持续更新)...

    相关基础:概率图模型中的推断https://zhuanlan.zhihu.com/p/252169479 英文原文:https://tspace.library.utoronto.ca/bitstre ...

  4. 旷视研究院夺得 NeurIPS 2021 ML4CO 组合优化比赛 Dual task 赛道第一

    近日,顶级国际会议 NeurIPS 的 The Machine Learning for Combinatorial Optimization(以下简称:ML4CO) 组合优化比赛结果揭幕,来自旷视研 ...

  5. 预测、迭代与优化:用AI探寻组合优化问题最优解

    在<基于深度强化学习的组合优化方法在工业应用中的实践>一文中我们介绍过(点此回顾),组合优化问题广泛存在于交通运输.生产制造.信息通讯.工业工程.金融投资等诸多领域,这些现实世界中的组合优 ...

  6. 基于深度强化学习的组合优化方法在工业应用中的实践

    <统筹方法平话>中有一个例子曾被收录到语文课本中,讲"烧水泡茶"有五道工序:1.烧开水,2.洗茶壶,3.洗茶杯,4.拿茶叶,5.泡茶,其中前四道工序是泡茶的前提,且各道 ...

  7. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  8. PyTorch图神经网络实践(六)组合优化问题

    最近研究网络中的组合优化问题时,发现已经有研究人员将图神经网络用于求解此类问题,诸如寻找网络中的最大点独立集.最小点覆盖集.最大团等等,并找到了相关的源码,在这里整理一下这些资源,以后详细介绍. Ne ...

  9. 2-2 组合优化问题-常用模型与通用求解器

    组合优化问题常用模型 组合优化问题常常难以求解,我们可以把这些转化为目前已经有成熟求解器的模型. 1. 可满足性问题(Satisfiability, SAT) 上一节已经讲过,SAT 是一个 NPC ...

  10. 超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库

    视学算法报道 编辑:陈萍.杜伟 华为诺亚开源了一个贝叶斯优化的库,该库包含三个部分:河伯.T-LBO.CompBO. 贝叶斯优化可以说是一种黑盒优化算法,该算法用于求解表达式未知函数的极值问题.因其具 ...

最新文章

  1. linux--nfs 网络文件共享
  2. 预定义变量 - PHP手册笔记
  3. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
  4. CString类型的头文件、CString的输出、CString的常用用法
  5. 怎样编写测试类测试分支_编写干净的测试-被认为有害的新内容
  6. Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
  7. JS-深入理解继承(非class方式与class继承)
  8. 韩国各大银行纷纷开始引进区块链技术
  9. 活动目录安装方法(个人汇总)
  10. 使用System Center Essentials 2007查看计算机的软件清单
  11. java 静态变量与静态初始化块中变量的初始化顺序
  12. useradd - 帐 号 建 立 或 更 新 新 使 用 者 的 资 讯
  13. MongoDB如何释放空闲空间?
  14. 【渝粤教育】国家开放大学2018年秋季 2505T学前儿童社会教育 参考试题
  15. 获得周公解梦数据接口java_周公解梦接口调用示例
  16. (附源码)计算机毕业设计SSM建筑工程管理系统
  17. “海大与我“ Scrum Meeting(第九周会议记录)
  18. 逆谐波滤波matlab,基于MATLAB仿真的SPWM逆变电路谐波分析及滤波器设计
  19. 协同过滤(collaborative filtering)
  20. 电子计算机常用面试题,计算机常用面试题文档.doc

热门文章

  1. VxWorks Fuzzing 之道:VxWorks 工控实时操作系统漏洞挖掘调试与利用揭秘
  2. 如何用matlab做参数估计,参数估计的MATLAB实现
  3. js 计算时间差 函数
  4. 【信息系统项目管理师】第二十二章 信息系统安全管理思维导图
  5. Windows 启动 Idea 报错 if you already hava a 64-bit JDK ... 以及 failed to create jvm...
  6. win10系统怎么进行远程控制操作
  7. VS2017使用教程(使用VS2017编写C语言程序)
  8. docker装LibreELEC_Linux和macOS系统安装LibreELEC的方法
  9. 高校学生就业管理系统
  10. __stdcall的作用及今天的坑