resource:

On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System

Wikipedia Hyper-heuristic: https://en.wikipedia.org/wiki/Hyper-heuristic

Wikipedia Heuristic: https://en.wikipedia.org/wiki/Heuristic_(computer_science)


1. Hyper-heuristics

1.1 What is Hyper-heuristics

Hyper-heuristics cover a general class of search methods that attempt to automate the process of selecting, combining, generating or adapting simple heuristics in order to solve large classes of problems.

1.2 Advantages and disadvantages

Some compromise in solution quality is likely when comparing the quality of any single solution to a specifically tuned optimisation algorithm.

The motivation is that this is compensated for by guaranteeing acceptable performance across very large problem sets, using cheap heuristics that are often simple to understand and can incorporate human knowledge.

1.3 Motivation

One of the motivations for studying hyper-heuristics is to build systems which can handle classes of problems rather than solving just one problem.

1.4 Purpose of hyper-heuristic

There might be multiple heuristics from which one can choose for solving a problem, and each heuristic has its own strength and weakness. The idea is to automatically devise algorithms by combining the strength and compensating for the weakness of known heuristics. In a typical hyper-heuristic framework there is a high-level methodology and a set of low-level heuristics (either constructive or perturbative heuristics). Given a problem instance, the high-level method selects which low-level heuristic should be applied at any given time, depending upon the current problem state, or search stage.

1.4 Online methods and offline methods

Online hyper-heuristic methods typically learn a sequence of low-level heuristics that can be applied to perturb an existing solution and learn during the solving phase.

Offline methods attempt to find mapping between problem state and heuristic in order todetermine how to solve a problem, requiring an initial offline training period using a representative set of problems.

2. NELLI* Algorithm

2.1 What is NELLI

The first version of NELLI comprised of three main parts:

  1. a stream of problem instances
  2. a continuously generated stream of novel heuristics
  3. a network that sustains co-stimulating components (heuristics and problem instances)

Problem instances and heuristics can be added in any quantity at any point.

An AIS is responsible for governing the dy namic process that enable heuristics and problem instances to be incorporated(stimulated) or rejected(suppressed) by the network.

2.2 Representation

A linear sequence of heuristic-components, each of wich explicitly results in some items to be placed into the solution.

2.3 Mutation

A proportion pwere generated by appliying one of five mutation operators to an existing heuristic randomly chosen from the sustained network.

By varying the value of pm, it is possible to alter the balance between exploration(random generation of heuristics) and exploitation(focus the search around existing heuristics).

The exploitation process is achieved through finve operators:

  1. Select a random heuristicv and swap the position of two random nodes.
  2. Select a random heuristic and replace a random node with a randomly selected node.
  3. Select a random heuristic from the network and remove a random.
  4. Select a random heuristic and addd a random node at a random position.
  5. Select two random heuristics from the network and concatenate their nodes.

2.4 A generic example

The first figure above shows a generic example of a heuristic represented by a string of five heuristic components with a "pointer" used by an encompassing wrapper to indicate the current component position.

Each component is chosen from the list of nodes shown.

If a node is successful in packing one or more items into a bin, then the pointer is advanced to the next node and the process continues with the current bin - when a node fails, a new bin is opened, and the pointer advances.

If a node fails, a new bin is opened, and the pointer advances.

The pointer is returned to the start after evaluation of the last node in the sequence.

Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System的更多相关文章

  1. Evolutionary Computing: 5. Evolutionary Strategies(2)

    Resource: Introduction to Evolutionary Computing, A.E.Eliben Outline recombination parent selection ...

  2. Evolutionary Computing: 5. Evolutionary Strategies(1)

    resource: Evolutionary computing, A.E.Eiben Outline What is Evolution Strategies Introductory Exampl ...

  3. Evolutionary Computing: 4. Review

    Resource:<Introduction to Evolutionary Computing> 1. What is an evolutionary algorithm? There ...

  4. Reading Notes of Acceptance Test Engineering Guide

    The Acceptance Test Engineering Guide will provide guidance for technology stakeholders (developers, ...

  5. Evolutionary Computing: 1. Introduction

    Outline 什么是进化算法 能够解决什么样的问题 进化算法的重要组成部分 八皇后问题(实例) 1. 什么是进化算法 遗传算法(GA)是模拟生物进化过程的计算模型,是自然遗传学与计算机科学相互结合的 ...

  6. [Notes] Reading Notes on [Adaptive Robot Control – mxautomation J. Braumann 2015]

    Reading sources: 1.Johannes Braumann, Sigrid Brell-Cokcan, Adaptive Robot Control (ARC  ) Note: buil ...

  7. Reading Notes : 180213 计算机的硬件构成与处理流程

    读书<计算机组成原理>,<鸟哥的Linux私房菜基础篇> 基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和 ...

  8. Evolutionary Computing: Assignments

    Assignment 1: TSP Travel Salesman Problem Assignment 2: TTP Travel Thief Problem The goal is to find ...

  9. Evolutionary Computing: multi-objective optimisation

    1. What is multi-objective optimisation [wikipedia]: Multi-objective optimization (also known as mul ...

随机推荐

  1. paper 119:[转]图像处理中不适定问题-图像建模与反问题处理

    图像处理中不适定问题 作者:肖亮博士 发布时间:09-10-25 图像处理中不适定问题(ill posed problem)或称为反问题(inverse Problem)的研究从20世纪末成为国际上的 ...

  2. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  3. World Wind .NET源码编译问题处理

    World  Wind  .NET源码编译问题处理 下载了World_Wind_1.4.0_Source源码(http://worldwindcentral.com/wiki/NASA_World_W ...

  4. webService-cxf

    官网必备包,自己研究api:http://cxf.apache.org/download.html 然后就是一个简单的例子了: 先服务端: package com.cxf; import javax. ...

  5. Weblogic的架构

    WebLogic管理控制台  WebLogic服务器提供了一个健壮的基于Web 的工具——管理控制台,它是执行上述任务的主要工具.通过管理控制台,你可以访问WebLogic管理服务.管理服务实现了 S ...

  6. [已解决][HTML5]基于WebSocket开发小蝌蚪应用

    前端时间在网上看到别人用WebSocket开发的小蝌蚪应用很炫酷,不过是php,于是想着用java也实现一套, 找到前端 https://github.com/danielmahal/Rumpetro ...

  7. InnoDB事务隔离级别

    转载于:http://blog.csdn.net/wudongxu/article/details/8623610 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的 ...

  8. 关于HandlerThread的分析

    Android中的Thread没有对java中的Thread做任何封装,而Android提供了一个遍历方法HandlerThread,他继承于Thread,实现了对遍历系统的一些封装,下面研究一下Ha ...

  9. JavaScript浏览器对象(BOM)中有关设备、浏览器屏幕高度和宽度的API介绍

    JavaScript世界中,有很多看起来能够帮我们知道网页宽度和高度的API,但太繁多了,而且容易弄混.不容易区分它们.下面我就来介绍一下,这些API到底是什么意思,之间的区别又在哪里. 一.设备的分 ...

  10. Github的命令清除

    最近折腾Github,对于我这个英语词汇量不多的人来说就是折磨,几乎是翻着字典探索的. 功能上就不多说了,还没发现新东西,只是刚摸索出如何上传(下载还没弄明白了,苦啊....) 就是在使用GitBas ...