关于元启发式算法设计、实验和应用于现实世界优化问题的教程

关于元启发式算法设计、实验和应用于现实世界优化问题的教程

论文:https://arxiv.org/abs/2410.03205

摘要

在过去几年中,现实世界优化问题的制定及其通过元启发式算法的高效解决已成为众多研究的催化剂。尽管在元启发式算法的设计和使用方面已有数十年的历史进展,但在新技术成果的可理解性、算法设计的正直性和性能可验证性方面仍然存在很大困难。一个明显的例子是,涉及用于优化的元启发式算法的研究作品的可复制性稀缺,这往往由于方法呈现中的模糊性和缺乏细节而变得不可行。此外,在许多情况下,其报告结果的统计显著性也值得怀疑。本研究旨在为观众提供一套在进行关于用于优化的元启发式方法研究时应遵循的良好实践建议,以提供科学的严谨性、价值和透明度。为此,我们介绍了一种逐步的方法论,涵盖在处理这一科学领域时应遵循的每个研究阶段。具体而言,将讨论一些常被忽视但至关重要的方面以及关于问题制定、解决方案编码、搜索操作符的实现、评估指标、实验设计和现实世界性能考虑等方面的有用建议。最后,我们将概述在新开发的优化元启发式算法在现实应用环境中的部署和操作成功所需的重要考虑、挑战和研究方向。

1. 引言

通过使用元启发式方法来制定和解决优化问题在过去几十年中在人工智能领域获得了越来越多的关注 [1, 2]。这种势头得益于与问题建模相关的新范式的出现和逐渐成熟(例如,大规模优化、迁移优化),以及在群体智能和进化计算领域取得的活跃成果 [3, 4, 5]。在这方面,有几个关键方面和阶段定义了这些特定领域内高质量研究工作的标准。每一个方面都值得细致关注,以实现始终渴望的可重复性和算法理解。此外,如果所进行的研究旨在应用于现实世界场景或应用,这些努力应当加倍加强。

最后一个方面揭示了当今研究人员面临的最棘手的挑战之一。在文献中,围绕优化问题的理论和综合应用及其使用元启发式算法的解决方案,找到真正有意义的研究相对容易 [6, 7, 8]。然而,专注于优化系统和应用的现实世界部署的深思熟虑和全面的研究则较为少见。

此外,当研究的主要目标是将之前发布的理论和实验研究付诸实践时,挑战变得更加艰巨。这种复杂情况产生的原因主要有两个。首先,难以找到允许将所做工作转移到实际环境的研究,而不需要进行大量的前期努力。另一方面,第二个原因指向缺乏实用指南,以帮助研究人员概述研究工作应满足的所有步骤,以便可重复性,同时考虑理论和现实部署方面。

鉴于此,适当地声称理论研究与现实世界导向研究之间的差距在当前进行的元启发式优化研究中仍然显而易见。这一差距正是本研究的主要动机,我们提出了一种设计、开发、实验和最终部署面向现实问题的元启发式算法的方法论。这里提供的指导方针将解决元启发式求解器应有效应对的不同关键方面,以增强其可复制性并促进其实际应用。

为了严格满足本文提出的目标,分析了定义高质量研究的每个阶段。这一分析采用批判性但建设性的方法,旨在纠正误解和不良的方法论习惯,最终实现具有实际效用的有价值研究。为此,对每个阶段的分析纳入了应用无关的指导方针和建议,社区应遵循这些指导方针,以促进可操作的元启发式算法,即以原则性方式设计和测试的元启发式方法,旨在确保它们在现实应用中的实际使用。

多年来,著名研究者们为建立指导从业者进行严格研究的坚实基础做出了多项努力 [9, 10, 11, 12]。所有这些先前的研究在一些重要概念的标准化方面做出了显著贡献。然而,这些工作的主要集中在整个优化过程的某些特定步骤或阶段,而其他研究则专注于非常具体的知识领域。这些卓越的研究将在接下来的部分中进行分析。这些工作无疑帮助我们突出了这里提出的方法论的主要新颖性,即对构成面向现实世界的优化研究的每个步骤的重视。我们涵盖了从问题建模的早期阶段到开发算法的验证和实际操作。因此,本教程的主要贡献和分析集中在以下问题上:

  • 问题建模与数学公式化:这第一步专注于优化问题的建模和数学公式化,该过程由先前进行的概念化指导。

  • 算法设计、解编码和搜索操作符:这一阶段完全致力于元启发式算法的设计和实现。

  • 性能评估、比较与可复制性:这是优化问题解决过程中的关键步骤,旨在对开发的算法进行正确评估,以及研究的可复制性和一致性。

  • 面向现实世界应用的算法部署:一旦元启发式算法开发并经过适当测试,最后一个阶段将致力于在真实环境中部署该方法。

本文的其余部分结构如下。在第二节中,简要概述了通过元启发式方法解决问题的历史,强调了相关的固有方法论不确定性。在第三节中,我们介绍了一个参考工作流程,该工作流程将指导整个方法论。我们还在这一节中强调了一些在文献中已发表的最重要的相关工作及其与本文提出的方法论的联系。我们提出的实用程序在第四、第五、第六和第七节中进行了详细描述。此外,第八节提供了完整问题解决过程每个特定阶段的良好实践总结。教程最后以对未来研究方向的讨论结束,讨论内容在第九节中,最后在第十节中给出了我们的结论性意见。

2. 使用元启发式方法解决问题:具有方法论不确定性的悠久历史

优化问题及其高效处理多年来受到了广泛关注。适当解决极其复杂的问题通常需要使用大量的计算资源 [13, 14, 15]。这种计算复杂性,加上它们在现实世界情境中的易用性,使得优化领域成为当前人工智能社区中研究最为密集的领域之一。这种科学兴趣导致了大量研究人员和从业者提出了众多解决方案。可以说,最成功的方法可以分为三类:(1)精确方法,(2)启发式方法,以及(3)元启发式方法。如前所述,本研究将重点关注这三类中的最后一类。

元启发式算法可以根据其工作哲学和灵感分为不同的类别 [16, 17]。为了更好地理解本文所描述的情况,强调与元启发式算法和优化问题解决相关的特定知识分支:生物启发计算 [18] 是很有趣的。在过去的二十年中,许多生物启发的方法被应用于不同的问题,其中一些表现出了显著的性能。这种日益增长的关注导致了相关出版材料数量的异常增加,通常集中在对以前在专业文献中报告的各种方法的适应、改进和分析上。

造成这种情况的原因有几个。可能,最重要的基石是如今被称为进化计算和群体智能的分支的诞生 [19, 20]。这些领域内的主要代表性技术包括遗传算法(GA, [21, 22])、粒子群优化(PSO, [23])和蚁群优化(ACO, [24])。更具体地说,正是由于PSO的巨大成功和新颖性,它对大量生物启发方法的创建产生了决定性的影响,这些方法显然继承了其主要哲学 [25]。

尽管在过去和最近的文献中提出了大量经典和复杂的求解器,研究界的重要部分仍在不断审视自然界,试图制定模仿新的生物现象的新元启发式算法。这一事实在社区中引发了三个不同的问题,这些问题现在已经根深蒂固。我们在下面列出这些问题:

  • 通常,所提出的新方法不仅无法为社区提供进展,反而增加了批判性研究者的怀疑。这些从业者不断质疑新方法的必要性,而这些方法显然与之前发表的方法非常相似。一些讨论这个问题的研究包括 [26, 27] 或 [5]。

  • 元启发式算法的 uncontrolled 发展导致文献过于拥挤,这容易产生模糊性和不足够详细的研究贡献。这种 uncontrolled 增长使研究界充斥着大量内容不可复制的文章,在某些情况下,这些文章甚至可能不可靠。原因在于方法呈现的模糊性和缺乏细节,以及其报告结果的统计显著性值得怀疑。

  • 大多数提出的方法是在合成数据集上进行测试,并通常与经典和/或代表性的元启发式算法进行比较。这一事实也带来了两个缺点。首先,仅与经典技术进行比较导致了不可靠和可疑的发现。其次,这些出版物中提出的方法通常难以在现实环境中部署,需要大量时间和精力才能使其有效。最后,鉴于目前丰富的相关文献,今天的科学界必须转向元启发式算法的实际和现实应用的提案。如果社区的一部分继续深入提出新的解决方案方案,而这些方案在大多数情况下似乎并没有充分的理由,那么这一目标将无法实现。

为了扭转这种不理想的局面,我们在本工作中提供了一套关于元启发式算法设计、实验和应用于现实世界优化问题的良好实践。我们在本文中提出的方法论的主要目标是指导研究人员进行公平、准确和可共享的应用研究,涵盖从研究想法的产生到最终现实世界部署的所有步骤和阶段。

正如引言中所指出的,以前已经进行了一些专门的努力,目的是相似的。这些论文中的一些目前已成为该领域的基石,指导并激励了许多高质量研究的发展。例如,在 [28] 中,介绍了使用非参数统计检验比较进化和群体智能元启发式方法的教程。在那篇论文中,详细调查了一些进行成对和多重比较的基本非参数程序。在 [9] 中介绍了类似的研究,其中提出了一种统计比较启发式方法的程序。该论文的目标是引入一种方法论,以进行统计上正确且无偏差的分析。

在 [29] 中,呈现了关于带时间窗的车辆路径问题的详细研究,其中提供了多个关于解决方案和操作员适当设计的指导,以及其他显著方面。无论如何,该研究最有价值的部分之一是对启发式和元启发式方法应如何评估和比较的深入讨论。另一篇有趣的论文是 [30],该论文提出了一种程序,用于在路由问题和组合优化问题领域引入新技术及其结果。此外,在之前引用的论文中,Sorensen [26] 还提供了一些在实施新算法时应遵循的良好研究实践。

在优化研究中寻找显著实验室实践标准的困难是 [10] 中提出工作的主要焦点。因此,该工作的作者提出了一些有价值的建议,以适当地进行严格和可重复的实验。Chiaraindini 等人 [12] 发布的技术报告中也提出了类似的研究。在该报告中,作者正式化了通过实验室测试评估元启发式方法的几种场景。更具体的是在 [31] 中提出的研究,重点强调算法配置中的许多陷阱,并引入统一的接口以实现高效的参数调整。

还值得提及的是在 [32] 中提出的工作,该工作介绍了在进化计算领域内实验研究的一些良好实践。专注于进化计算的 [33] 的作者强调了研究人员在该领域进行计算实验时常犯的一些常见错误,并提供了一套指导方针,以正确进行可重复和可靠的计算测试。在 [34] 中也进行了类似的努力,但重点是生物启发的优化。文献中还包含了其他此类工作的讨论,例如 [35]。

到目前为止提到的方法论围绕优化的两个关键方面展开:高效的算法开发和技术的严格评估。此外,文献中还可以找到关于优化问题本身建模和表述的良好实践。这个问题与之前提到的其他问题同样重要,如果处理不当,通常会成为多种不确定性和低效的来源。例如,在 [36] 中,Edmonds 提供了一个完整的指南,用于正确表述数学优化问题。该论文的作者强调了分析问题复杂性的重要性,这对于选择和证明解决方法的使用至关重要。他还强调了仔细定义构成优化问题的三个不同要素的重要性:实例、解决方案和成本。

相关的还有 [11] 和 [37] 中进行的工作,这两者都专注于多目标问题。此外,在其成功的著作 [38] 中,Kumar dedicates dedicates a complete section to guide researchers in the proper definition of optimization problems. 这本书对于该领域的新手尤其有价值,因为其信息性。此外,除了这些通用方法外,文献中还可以找到一些特定知识领域的有价值工作,例如 [39] 和 [40] 中所呈现的。

如前所述,学术界在建立一些应指导高质量、透明和可重复研究发展的主要方向方面做出了显著努力。本文提出的方法论的主要原创贡献在于考虑与面向现实世界的优化研究相关的完整过程,从问题建模到所开发系统的验证和实际操作。最后,表1总结了本节中概述的最新研究进展。我们还将我们的提案的主要贡献与那里描述的每项工作进行了比较。

表1:文献综述的总结,以及与我们提出的方法论的比较。

3. 使用元启发式算法解决优化问题:参考工作流程

在本节中,我们介绍描述我们方法论提案的参考工作流程。我们的主要意图是将此程序建立为参考,认为其采用是进行与元启发式优化相关的理论和实践严谨、全面和重要研究的必要条件。因此,图1和图2表示了这一参考工作流程,将作为本文其余部分的指南。

因此,我们使用了两种不同的高级方案来图形化描述我们的方法论。第一个方案(图1)被构思为一般方案,涵盖了问题描述(3)、分析和所选解决方案方法的开发(5-6),以及解决方案的部署(4)。另一方面,第二个方案(图2)完全专注于研究活动(图1中的阶段(6))。从另一个角度来看,我们还可以看到我们设计了两种不同的开发环境。具体而言,问题描述、基线分析和研究活动在实验室环境(1)中进行,而算法部署则在应用环境中进行。(2).

将我们的注意力集中在第一个工作流程上,整个活动始于一个需要有效解决的真实问题的存在。对这个问题的检测以及解决它的必要性,触发了研究的开始,其第一步是对问题的概念定义以及功能和非功能需求的定义与分析 (3)。在这里需要澄清的是,这个问题的初步描述是在高层次上进行的,专注于纯概念问题。由于这第一步的性质,除了研究人员和开发人员外,强烈建议有最终利益相关者的参与。

图 1:解决优化问题的元启发式算法参考工作流程的第一阶段。

关于功能需求,很难找到一个规范的定义 [41],但它们可以被称为产品必须做的事情 [42] 或系统应该做的事情 [43]。此外,功能需求的建立涉及到需要优化的目标(或在多目标问题情况下的目标)函数的定义,以及等式和不等式约束(在处理具有边界约束的问题时)。另一方面,对于非功能需求并没有这样的共识。戴维斯将其定义为系统所需的整体属性,包括可移植性、可靠性、效率、人机工程、可测试性、可理解性和可修改性 [44]。罗伯逊和罗伯逊将其描述为产品必须具备的属性或质量,例如外观、速度或准确性属性 [42]。更多定义可以在 [41] 中找到。在任何情况下,这些目标对于正确选择解决方案方法至关重要,忽视它们可能导致整个研究的重新设计,涉及经济和时间成本。这种至关重要的意义是我们在本研究中特别关注强调考虑或不考虑这些非功能目标(对非功能需求的公平和全面描述)影响的原因。事实上,文献中许多研究贡献专注于纯粹满足功能要求,使得它们在现实世界中难以正确部署。因此,我们可以将满足非功能目标视为有效地从实验室 ( 1 ) ‾ \overline{\left( 1\right) } (1) 过渡到应用环境的关键 (2)。

在这个初步概念阶段之后,有必要仔细审查相关文献和科学社区,以寻找适当的基准 (5)。该过程的主要目标是找到一个与先前确定的功能需求相符的公共共享库或基准。在积极的情况下,下一步是分析这些发现是否在理论上符合所有列出的非功能需求。已发布的研究活动通常是在琐碎和非正式的实验室规范下进行的,设计往往短视,主要集中在“什么”(功能目标)上,而不是“如何”的可行性。推荐的良好实践是筛选出那些据称已经从实验室假设转向严苛的现实条件的研究。相反,当假设基准不满足或未考虑这些非功能需求时,研究活动将首先包括评估基准可行性的程序,以决定基准是否仍然是潜在的解决方案或必须被舍弃 (6)。最后,如果这两个行动都得到积极解决,调查将被认为准备进入部署阶段 (4)。

在这一点上,重要的是要强调所谓的算法部署用于现实世界应用阶段 (4)(详见第7节),被视为我们方法论的基石,可以直接从公共库 (5) 中获取算法作为输入,或作为彻底研究程序的结果而开发的特定方法 (6)。在这一阶段,可能会出现新的非功能目标,这意味着需要重新分析问题(回到 (3)),以便考虑所有新生成的需求。

图2:使用元启发式算法解决优化问题的参考工作流程的第二阶段。

相反,如果所有非功能性需求都被考虑但未完全满足,则需要进一步的调整。在这种情况下,如果还有其他配置需要测试,则应在元启发式方法上进行额外的小调整(7)。然而,如果这些小调整未能导致算法的理想性能,则应从算法设计、解决方案编码和搜索操作符阶段重新开始该过程(属于工作流程2,图2,并在第5节中详细说明),这可能涉及对我们的元启发式解决方案的重新设计和重新实现(或甚至是一个新的解决方案)(6)。最后,如果上述偏差都没有发生,并且元启发式方法的性能满足最初设定的目标,则可以认为问题已解决,并在算法在实际环境中的最终部署后,研究完全结束。

另一方面,图2描绘了我们工作流程的第二部分,专注于与研究开发相关的工作。从这个图形中可以很容易看出,这个工作流程有三个不同的入口点,具体取决于整个活动的状态。此外,这个阶段分为三个不同且同样重要的顺序阶段。这些阶段及其在开发过程中的到达方式将在下文中详细说明:

  • 问题建模与数学公式化(第4节):这第一步应完全致力于优化问题的建模和数学公式化,这应由之前进行的概念化指导。如果待解决的问题在文献中尚未被处理,或在没有适应的基线或库的情况下,应进入研究的这一部分。

  • 算法设计、解决方案编码和搜索操作符(第5节):第二阶段应专注于元启发式方法的设计和实施。还应强调,另一个研究方向也可以进行,即对科学界已经存在的基线或库进行细化。

  • 性能评估、比较和可重复性(第6节):一旦算法方法开发(或细化)完成,就应进行该技术的性能分析。这是优化问题解决过程中的关键阶段,研究的可重复性和一致性显然依赖于这一步骤的良好执行。此外,一旦算法在理论问题上的质量经过测试,就应在真实环境中部署(真实世界应用阶段的算法部署,图1)。

一旦我们介绍并描述了设想的参考工作流程,接下来的章节将概述研究人员和实践者在进行高质量、面向现实的研究时应遵循的所有良好实践。

4. 问题建模与数学公式化

一旦分析师和领域专家就解决方案的概念定义和需求达成一致,研究活动就开始了。所有这些输入(概念描述和功能/非功能需求)将在整个工作流程中被追踪,并根据具体阶段变得更易于接近。在问题建模阶段,概念化和功能需求中包含的“什么”必须清晰明确,并足够全面,以便能够公平地转化为数学公式。

图3:使用元启发式算法解决优化问题的参考工作流程的第一阶段。

4.1. 数学公式化

要遵循的关键步骤如图3所示,旨在将纸面上的问题概念充分转化为优化问题的精确数学公式:

  • 明确说明负责覆盖功能需求的目标/成本函数 f ( x ) f\left( \mathbf{x}\right) f(x) ,并衡量每个任务或解决方案的质量和成功。尽量推断 f ( X ) f\left( \mathbf{X}\right) f(X) 的主要特征:线性/非线性,单峰/多峰,或连续/不连续。在多目标场景中,当决策函数相互冲突时,多个标准将在决策过程中发挥作用。然而,利益相关者可能会通过施加一些偏好来缩小帕累托最优/非支配解决方案的范围。

  • 描述需要调整的决策变量 ( x = { x 1 , x 2 , … , x n } ) \left( {\mathbf{x} = \left\{ { {x}_{1},{x}_{2},\ldots ,{x}_{n}}\right\} }\right) (x={ x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值