求解-----组合优化问题

霸气de小男生 提交于 2019-11-29 16:38:14

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

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

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

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!