Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System
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:
- a stream of problem instances
- a continuously generated stream of novel heuristics
- 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 pm were 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:
- Select a random heuristicv and swap the position of two random nodes.
- Select a random heuristic and replace a random node with a randomly selected node.
- Select a random heuristic from the network and remove a random.
- Select a random heuristic and addd a random node at a random position.
- 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的更多相关文章
- Evolutionary Computing: 5. Evolutionary Strategies(2)
Resource: Introduction to Evolutionary Computing, A.E.Eliben Outline recombination parent selection ...
- Evolutionary Computing: 5. Evolutionary Strategies(1)
resource: Evolutionary computing, A.E.Eiben Outline What is Evolution Strategies Introductory Exampl ...
- Evolutionary Computing: 4. Review
Resource:<Introduction to Evolutionary Computing> 1. What is an evolutionary algorithm? There ...
- Reading Notes of Acceptance Test Engineering Guide
The Acceptance Test Engineering Guide will provide guidance for technology stakeholders (developers, ...
- Evolutionary Computing: 1. Introduction
Outline 什么是进化算法 能够解决什么样的问题 进化算法的重要组成部分 八皇后问题(实例) 1. 什么是进化算法 遗传算法(GA)是模拟生物进化过程的计算模型,是自然遗传学与计算机科学相互结合的 ...
- [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 ...
- Reading Notes : 180213 计算机的硬件构成与处理流程
读书<计算机组成原理>,<鸟哥的Linux私房菜基础篇> 基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和 ...
- Evolutionary Computing: Assignments
Assignment 1: TSP Travel Salesman Problem Assignment 2: TTP Travel Thief Problem The goal is to find ...
- Evolutionary Computing: multi-objective optimisation
1. What is multi-objective optimisation [wikipedia]: Multi-objective optimization (also known as mul ...
随机推荐
- mybatis-java1234一
一,简单增删改代码实现 package com.mybatis.mapper; import java.util.List; import com.mybatis.model.Student; pub ...
- 【原创】如何在Android Studio下调试原生安卓Framework层面的源代码
1. Open Existing Android Studio Project. 2. 打开后, Projects -> Android 里面是空的. 这时候,需要选到 Projects-> ...
- OJ生成器(一)制作Online Judge前的准备和策划
我这校区新的微机老师斗志昂扬,准备让我们这学校萎靡的信息技术竞赛重振雄风.然后有一次我半开玩笑地说建一个自己的OJ吧,老师也就鼓励我去做了. 开什么玩笑……!我可是马上要参加NOIP的人! 于是老师说 ...
- zabbix
snmp监控服务器客户端需安装net-snmp net-snmp-utils 然后修改/etc/snmp/snmpd.conf 启动snmpd服务 自定义监控项目:需在agent端的zabbix_ag ...
- 2015/10 中外合璧再现辉煌—CCFC2015技术峰会
笔者有幸参加了CCFC技术峰会,现在发布照片几张.大家看一下. 2015年10月14日,CCFC 2015电子数据取证技术峰会于四川成都举办,有200余名一线取证技术人员及国内外各行业专家参会.此次峰 ...
- 整理单机安装RabbitMQ,留着备用
一.安装erlang 1.安装erlang依赖: yum install build-essential openssl openssl-devel unixODBC unixODBC-devel m ...
- Java 基础 Map 练习题
第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...
- 第一章.C语言简介
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
- 一个ubuntu phper的自我修养(workbench)
workbench从此和navicat的激活码说再见 workbench是一个免费易用功能强大的mysql图形化管理软件,navicat上用到的功能,workbench上都能找到. 一.workben ...
- Linux Shell基础知识
一.文件系统和安全 chmod命令 chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限:另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限. 符号模式 chm ...