【论文阅读】(2017)The late acceptance Hill-Climbing heuristic

news2024/10/6 12:26:08

文章目录

  • 一、摘要
  • 二、Late Acceptance Hill Climbing
  • 三、LAHC技术性能的研究
    • 3.1 Benchmark problems
    • 3.2 Experimental software
    • 3.3 Experiments
  • 四、LAHC性能评估
    • 4.1 评估方法
    • 4.2 LAHC不同变体的性能
    • 4.3 LAHC与其他技术的比较
    • 4.4 LAHC的规模独立性
  • 五、Conclusions and future work


论文来源:(2017)The late acceptance Hill-Climbing heuristic
作者:Edmund K. Burke 等人


一、摘要

  • 本文介绍了一种新的非常简单的搜索方法,称为延迟接受爬山(LAHC)
  • 是一种局部搜索算法,当候选成本函数优于之前的多次迭代时,它接受非改进移动。这个数字作为一个算法输入参数出现,它决定了搜索过程的总处理时间。
  • 本文用一系列旅行推销员和考试时间表基准问题对该方法的性质进行了实验研究。
  • 此外,我们还将LAHC与采用冷却计划的著名搜索技术进行了公平的比较:模拟退火(SA)、阈值接受(TA)和大洪水算法(GDA)。
  • 此外,我们还讨论了该方法在赢得国际比赛中的成功,以自动解决幻方问题。
  • 我们的实验表明,LAHC方法简单、易于实现,而且是一种有效的搜索过程
  • 对于大多数研究实例(尤其是大型实例),其平均性能优于竞争方法
  • 此外,LAHC方法在规模独立性方面具有额外的优势(与上述基于冷却计划的方法相比)。我们举了一个例子,旅行推销员问题中成本函数的重新缩放会显著降低三种基于冷却计划的技术的性能,但绝对不会影响LAHC的性能。

二、Late Acceptance Hill Climbing

延迟接受启发式的初始思想相当简单:接受条件中的控制参数取自搜索历史

这种启发式方法可以被视为HC的扩展,只有一个区别:在贪婪爬山中,将候选解决方案与当前解决方案进行比较,但在延迟接受爬山(LAHC)中,将一个候选方案与之前几次迭代的当前解决方案相比较。

除了新的接受条件,LAHC的其他细节与其他本地搜索方法(如HC、SA、TA或GDA)相同,即,算法从随机初始解开始,并迭代地接受或拒绝候选,直到出现停止条件。

基本上,LAHC可以采用其接受规则,同时保持当前成本函数先前值的固定长度L h(历史长度)列表。将候选成本与列表的最后一个元素进行比较,如果更好,则接受候选。在验收程序之后,更新列表,即,将新的当前成本添加到列表的开头,并从列表的结尾删除最后一个元素。注意,在仅接受的情况下,增加的当前成本等于候选成本,但在拒绝的情况下则等于先前的值。

长度 L h L_h Lh 显示为该技术的单个算法(和用户指定)参数。
列表的实际初始化可以自动完成,即使在第一次迭代时没有先前的记录。我们在这里看到了两种可能的变体:

  • 我们可以生成 L h L_h Lh 始终接受的移动并记录目标函数的值
  • 或者只指定列表中的所有元素等于初始成本。

初步测试没有显示这些变体之间的性能有任何明显差异,但我们认为第二个变体更可取,因为它节省了CPU时间。应该注意的是,当初始列表包含比初始成本高得多的所有值时,第二个变量就变成了第一个变量。但是,我们不建议使用比初始成本低得多的值来初始化列表,因为在这种情况下,LAHC在开始时会变成HC。

除了基本的变体之外,延迟接受的想法可以以各种各样的方式实施到实践中。事实上,拟议的LAHC可以有大量的变化和扩展。尽管其中许多仍然未被开发,但我们的测试揭示了一些修改,我们注意到LAHC的性能有一定的改善。第4.2节给出了这些测试的结果。首先,我们建议将延迟接受规则与贪婪规则相结合(如SA、TA和GDA中所做的),即始终接受非恶化的移动。因此,其在第i次迭代时的最终验收条件可由公式1表示。

在这里插入图片描述

在该公式中, C i ∗ C_i^* Ci 是候选成本, C i − 1 C_{i-1} Ci1 是当前成本, C i − L h C_{i-L_h} CiLh 表示当前解 L h L_h Lh 迭代的成本,等于 f ( i f(i f(i % L h L_h Lh),%为取余符号。显然,当 L h L_h Lh 等于1或0时,LAHC就是贪婪HC。因此,当 L h L_h Lh 等于2或更高时,LAHC获得其独特的性质。

其次,历史记录的方法也可以增强。这里,我们建议只更新具有更好值的列表,并排除具有更差值的任何更新,即,当 C i < f v C_i<f_v Ci<fv 时, C i C_i Ci 被分配给 f v f_v fv,否则 f v f_v fv 不会改变。

这些修改会在搜索的最后阶段影响LAHC行为:与其他本地搜索(如SA或GDA)类似,它“变成”HC(停止接受恶化的移动)。这意味着我们可以在这里应用广泛用于HC(以及上述技术)的停止条件,其中当不可能进一步改进时终止搜索。这通常是通过计数非改进(空闲)迭代来检测的。当非改进迭代达到总迭代次数的2%时,我们的算法停止。

为了避免提前终止,搜索的最小长度限制为100000次迭代。参见(Burke&Bykov,2012),了解可能的LAHC停止条件的更详细讨论。

最后,我们提出了列表维护机制的标准 FIFO(先进先出) 优化。这里,列表的元素是不可移动的,并且列表显示为长度为Lh的适应度数组 ( F a = { f 0 , f 1 , f 2 , . . . , f L h − 1 } ) (F_a=\{f_0,f_1,f_2,...,f_{L_h-1}\}) (Fa={f0,f1,f2,...,fLh1}) 。在第 i i i 次迭代时,其虚拟起点 v v v 计算如下:

在这里插入图片描述

其中“mod”表示整数除法的余数。现在,将 f v f_v fv 的值与候选成本进行比较,在接受或拒绝后,将新的当前成本值分配给 f v f_v fv 。图1显示了LAHC最终版本的伪代码。本文中的所有实验均使用该变体进行。

在这里插入图片描述


第三节和第四节内容较多,我也没怎么细看,如果只需要掌握方法的话看看第二节就可以了,感兴趣可以看看原文,我这里就只放部分内容

三、LAHC技术性能的研究

3.1 Benchmark problems

我们对两类问题进行了实验研究:旅行推销员问题和考试时间表问题。

旅行推销员问题(TSP)是一个经典的(可能也是研究得最深入的)NP难组合优化问题。它有一系列实际应用:从印刷电路板组装到X射线晶体学。通常,这个问题被表述为多个城市之间的距离不同。目标是找到一个最短的封闭游览,而每个城市只游览一次。

一个著名的TSP数据集集合(TSPLIB),可从http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/ 。它包含111个数据集,我们在其中选择了7个大小从783到3795个城市的实例进行测试。表1给出了它们的名称和大小。

在这里插入图片描述
考试时间表问题是另一个经过深入研究的NP难组合优化问题。它代表了在有限的时间段(通常是房间)内定位大学考试的现实任务。这个问题可以看作是图形着色问题的一个扩展,具有大量附加的软约束和硬约束。尽管考试时间表问题的规范有不同版本(代表不同的制度要求,参见(Burke,Elliman,Ford,&Weare,1996)),但最常见的硬性限制是,任何一个学生都不能同时参加两次考试。其他硬性限制规定了房间的可用性,与ex-ams的持续时间和相应的时间段相匹配。软约束代表了学生和行政偏好,例如学生或更大的学生应提前安排考试间隔时间等。

在本研究中,我们使用了第二届国际时间表竞赛(ITC2007)中给出的考试时间表问题规范。其描述见(McCollum等人,2010)和原始竞赛网站:http://www。cs.qub.ac.uk/itc2007/。该站点还包含12个数据集,我们在本文的实验中使用这些数据集。这些数据集的一些特征如表2所示。应该注意,TSP和考试时间表问题都是最小化问题,因此在我们的所有实验中,结果越低越好。

在这里插入图片描述

3.2 Experimental software

使用我们在Delphi 2007中开发的软件对所提出的技术进行了评估,该软件在PC Intel Core i7-3820 3.6千兆赫兹、32 GB RAM、Windows 7 64位操作系统下运行。创建了两个专用模型:第一个用于TSP,第二个用于考试时间表问题

3.3 Experiments

对LAHC特性的研究是从分析其对算法参数变化的响应开始的:历史长度 L h L_h Lh。在第一系列实验中,我们演示了成本函数在整个搜索过程中是如何下降的。该算法与我们的基准问题一起运行多次,同时改变 L h L_h Lh。在搜索过程中,每秒记录当前成本。所有这些点都在图中描绘(用曲线连接),其中轴表示当前时间和当前成本。图2显示了U1817实例绘制的四条曲线的示例: L h = 1 L_h=1 Lh=1(即Gredy HC)、5000、15000和30000。应注意,为其他基准实例绘制的成本下降图与此示例相似。

在这里插入图片描述
在该图中,所有图表都是从相同的初始解决方案开始的,成本函数约为180 0 0 0。HC几乎立即提高了成本。L h=50 0 0的LAHC提高成本的速度较慢;其中 L h L_h Lh=150 0 0甚至更慢,并且 L h L_h Lh=30 0 0 0产生成本函数的最慢(在四条曲线上)改进。这一观察表明,LAHC的一个主要特点是:适应度阵列越长,成本下降越慢。在使用LAHC的所有实验中都观察到了这种行为。此外,这种行为是许多其他单点搜索启发法的典型特征:在SA、TA和GDA中,也可以通过调整冷却系数来调节成本下降的速度(参见Burke等人,2004)。

在这里插入图片描述

在这里插入图片描述


四、LAHC性能评估

4.1 评估方法

4.2 LAHC不同变体的性能

4.3 LAHC与其他技术的比较

4.4 LAHC的规模独立性


五、Conclusions and future work

在本文中,我们提出了一种新的局部搜索技术(LAHC),该技术具有一系列独特的特性,可概括如下:

  • 它几乎和贪婪的HC一样简单,但更有力量。因此,它可以很容易地在实验和实际系统中实现。此外,开发人员可以用最小的努力通过更强的搜索技术来替代现有系统中的HC。
  • 它智能地使用在先前迭代期间收集的信息。它可以被视为自适应记忆编程的另一种变体(见Tailard、Gambardella、Gendreau和Potvin,2001)。
  • 它取决于调节CPU时间的单个算法参数。所提出的实验表明,CPU时间与此时间参数大致成正比。相应地,与大多数现代元启发式方法相比,它可以用更少的精力进行很好的调整。这对从业者尤其有吸引力。
  • 它在大多数基准问题(尤其是大型问题)上都优于SA、TA和GDA。考虑到竞争对手的算法得到了很好的研究,但对LAHC的研究才刚刚开始,这表明LAHC具有进一步发展的巨大潜力。
  • 与基于冷却计划的算法相比,它不依赖于比例。这表明它在非线性问题上具有更强的可靠性,这在新的应用领域可能是有益的。
  • 它不使用特定类型问题的属性,因此可以定位为通用元启发式。为了确认LAHC的普遍性,我们对旅行推销员和考试时间表问题进行了实验评估。我们期望它可以应用于其他单点搜索方法适用的任何优化问题。

本文介绍了LAHC的文献。当然,这需要进一步深入研究。可能提出该算法的进一步改进和变化。例如,可以从拟合度数组中随机获取比较值,也可以将其计算为所有元素的平均值。适应度阵列可以是可变长度的,或者可以在某个点重新分配其元素的值(类似于基于冷却计划的方法中的“重新加热”)。此外,在贪婪HC适用的进一步混合方法中,LAHC可能是有益的,例如,在迭代局部搜索或记忆算法中。

此外,还应进一步研究LAHC的性质。当应用于某些特定的非线性问题时,所证明的尺度独立性可能是LAHC的一个额外优势。此外,值得研究图4所示的LAHC角系数。每个粒子的情况都不同,可能反映了所研究问题的某些性质。

最后,我们提出并应用了一种使用成本函数的重新缩放来检验搜索启发式的规模独立性的方法。我们认为这是未来研究的一个很有前途的课题。例如,研究具有相同重新缩放问题的其他搜索方法的性能可能是有益的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Salesforce架构师常见问题(上)

Salesforce架构师需要花费大量时间来绘制、讨论、建立和设计稳健的端到端解决方案。架构师角色不仅仅是处理解决方案这么简单&#xff0c;还需要在企业级组织中与多个业务部门打交道。 因此&#xff0c;Salesforce架构师面试需要从以下3个方面准备&#xff1a; Part.1 分享工…

快速理解 JVM 内存模型 对象组成 对象内存分配

快速理解 JVM 内存模型 & 对象组成 & 对象内存分配 JVM 内存模型 JVM 内存模型分为首先在线程纬度可以分为两部分 一部分是 线程共享&#xff1a; 堆、元空间 堆 &#xff1a; 大多数 new 的对象都存在于堆内&#xff0c;也是 GC 主要回收的空间&#xff0c;占据 J…

涨薪跳槽利器,清华大咖总结的 Java 核心突击讲,一应俱全

前言 今天在这里分享一位读者粉丝的经历&#xff1a; 本人双非本科&#xff0c;没拿什么过奖&#xff0c;现在毕业也有三年时间了&#xff0c;大四感觉能力有点不足&#xff0c;进了一家小型的互联网公司实习&#xff1b;期间报名了个线上培训课程&#xff0c;一直在持续学习…

超详细Docker部署SpringBoot+Vue项目(三更博客项目部署)

文章目录1.项目部署规划2.前置工作2.1修改后端配置文件ip2.2修改前端Vue项目运行端口2.3修改前端对应的服务器ip2.4后端项目打包2.4.1解决打包问题2.4.2项目打包&#xff0c;本地运行jar包测试2.5前端项目打包2.6开放端口2.7配置安全组规则3.Docker安装4.拉取镜像5.编写Dockerf…

挂耳式蓝牙耳机哪家的好用,推荐几款实用的挂耳式耳机

时代在进步&#xff0c;而我们也顺势享受着进步过程中所产生的物件&#xff0c;就如骨传导和传统耳机&#xff0c;年轻人更多时候会偏向于骨传导耳机&#xff0c;毕竟骨传导的最大的特点就是佩戴舒适的同时&#xff0c;开放式耳道的设计能够更好的让中耳炎说拜拜。但近期市面上…

Hi,运维,你懂Java吗-No.3:java系统的启动

作为运维&#xff0c;你不一定要会写Java代码&#xff0c;但是一定要懂Java在生产跑起来之后的各种机制。 本文为《Hi&#xff0c;运维&#xff0c;你懂Java吗》系列文章 第三篇&#xff0c;敬请关注后续系列文章 欢迎关注 龙叔运维&#xff08;公众号&#xff09; 持续分享运…

浅谈一下:Java学习中不得不知道的:static (静态)成员

下面笔者&#xff0c;按照之前的Student进行简单的说明&#xff1a; class Student {private String name ;private int age ;private String classRoom ;//上课教室public Student(String name, int age) {this.name name;this.age age;}public void doClass() {System.out…

五、 通信协议

协议&#xff1a;约定&#xff0c;就好比我们来自不同的地方&#xff0c;如果都用各自的家乡话&#xff0c;那么肯定无法沟通&#xff0c;这时我们规定双方都说普通话&#xff0c;这样就可以沟通了&#xff0c;而这个规定就是“协议” 网络通信协议&#xff1a;速率、传输码率…

SpringCloud - 服务注册中心

文章目录1.服务注册中心2.Eureak服务注册中心2.1 Eureka服务注册与发现2.1.1 单机Eurake构建步骤(1) 创建EurekaServer服务注册中心(2) EurekaClient服务注册2.1.2 Eureka集群构建步骤(1) 创建第多个EureakServer注册中心(2) 修改host(模拟)(3) 修改YML配置2.1.3 集群配置Eurek…

搞定企业视频直播:硬件设备、直播网络环境和设备连接说明

阿酷TONY / 2022-11-22 / 原创 / 长沙 / 1.直播硬件设备 电脑硬件推荐配置&#xff1a; 系统&#xff1a;win7系统以上&#xff0c;macOS 10.13.6以上 显卡&#xff1a;独立2G显卡或以上 CPU&#xff1a;i5或以上 内存&#xff1a;4G或以上 选配硬件&#xff1a; …

我有 7种 实现web实时消息推送的方案,7种!

技术交流&#xff0c;公众号&#xff1a;程序员小富 大家好&#xff0c;我是小富&#xff5e; 我有一个朋友&#xff5e; 做了一个小破站&#xff0c;现在要实现一个站内信web消息推送的功能&#xff0c;对&#xff0c;就是下图这个小红点&#xff0c;一个很常用的功能。 不过…

打印机不能正常打印怎么办

第一种&#xff1a;更换驱动&#xff0c;在官网上下载相应的驱动而后安装 第一步&#xff1a;添加打印机和扫描仪 第二步&#xff1a;点击——>我需要的打印机不在列表中 第三步;①如果是USB连接则选择添加本地打印机 ②如果是网络打印机&#xff0c;则选择使用TCP/IP添加…

kubernetes 安装与部署

kubernetes 安装与部署 环境almalinux,centos,rockylinux,redhat的9.1版本使用containerd容器运行时kubernetes v1.25.4root用户 1.设置主机名 2.禁用防火墙 3.禁用selinux 4.禁用swap 5.同步时间 5.桥接流量 6.安装nerdctl-full 7.确认cgroup驱动默认为systemd 8.安装kubead…

Intel MediaSDK sample_decode 官方GPU解码流程学习(一) - DirectX11 D3D11和Vulkan共享资源

很久以前研究过 用NV_DX_interop扩展让D3D和OpenGL共享资源 &#xff0c; OpenGL在当初设计的时候电脑和操作系统还是个相对比较简单的东西&#xff0c;因此OpenGL API设计没有考虑到现在计算机架构的一些特性&#xff0c;比如多核编程和多显卡并发。最近几年出来个Vulkan来接O…

Androguard Documentation:官方文档阅读笔记

打算快速阅读下官方文档&#xff0c;然后做一个笔记方便查阅&#xff0c;文章目录按照官方文档目录来的 DOCUMENTATION Getting Started 使用 androguard axml和androguard arsc解码分析AndroidManifest.xml或者resources.arsc。 创建call graphs可以使用androguard cg&…

快消品b2b电子商务网站建设方案

互联网在改造电商行业商业运作模式和提升运营效率作用方面功不可没&#xff0c;目前B2B电商发展正处在交易上升期特别是B2B快消品电商&#xff0c;这个以万亿为单位的流通规模市场必将掀起巨大的社会价值和运营效率。当然在讨论快消品流通B2B电商行业之前&#xff0c;我们先简单…

C++语言的return语句的一点说明

C语言的return语句的一点说明 为了完成某一功能的程序指令&#xff08;语句&#xff09;的集合&#xff0c;称为函数。在程序中&#xff0c;编写函数的主要目的是将一个需要很多行代码的复杂问题分解为一系列简单的任务来解决&#xff0c;而且&#xff0c;同一个任务&#xff0…

程序员副业之无货源闲鱼

我将从以下这些方面来介绍闲鱼副业。 1. 闲鱼平台能不能挣钱? 2. 闲鱼平台都有哪几种挣钱方式&#xff1f; 3. 小白在闲鱼上怎么挣钱&#xff1f; 4. 能挣多少&#xff1f; 5. 如何养号&#xff1f; 6. 得到高权重的账号闲鱼上架该选什么商品&#xff1f; 7. 卖…

城市消费券,拒绝恶意爬取

作为提振经济的重要把手&#xff0c;城市消费券的作用不言而喻。公开数据显示&#xff0c;2022 年全国各地公布的消费券累计超 100 万亿&#xff0c;在撬动各地消费的过程中起到了举足轻重的作用。 然而&#xff0c;仔细分析各地的核销率就会发现&#xff0c;有很大一部分消费…

Zookeeper系列文章—入门

目录 前言 测试 创建节点 更改节点 删除节点 前言 遵照前文已经对Zookeeper进行了安装 linux安装Zookeeper3.5.7详解_兜兜转转m的博客-CSDN博客 接下来我们从整体架构方面了解一下Zookeeper&#xff1a; ZooKeeper 是一个树形目录服务,其数据模型和Unix的文件系统目录树很类…