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:

  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

Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System

Evolutionary Computing: [reading notes]On the Life-Long Learning Capabilities of a NELLI*: A Hyper-Heuristic Optimisation System

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.

上一篇:SHA-1 加密算法破解现已只需要 10 天


下一篇:关于setvbuf()函数的详解