[AIM] Cross-domain search and selection hyper-heuristics

Day 6

Outline

  • Cross-domain search: observations
  • Hyper-heuristics - definition, origins
  • A classification of hyper-heuristics
  • Selection hyper-heuristics controlling perturbative heuristics
  • Selection hyper-heuristics controlling constructive heuristics
  • Cross-domain parameter tuning of a memetic algorithm
There are a lot of different search domain which needs new operators, search method and evaluation function. For example, flowshop scheduling, vehicle routing, nurse rostering, you can not use the same heuristic.
  • Most of the real-world optimisation problems are proven to be NP-hard
  • The current state of the art in search methodologies tend to focus on bespoke systems
  • In general, these systems are expensive to build, but provide successful results. Unfortunately, their application to new problem domain still requires expert involvement
  • A different heuristic might generate good performance on different problem instance
  • A goal is raising the level of generality of search methodologies through learning and adaptation so that they would be applicable across a broad range of problems without requiring any human expert intervention.

Hyper-heuristics

A hyper-heuristic is a search method or learning mechanism for selecting or generating heuristics to solve computationally difficult problems.
enter image description here
  • Hyper-heuristics operate on a search space of heuristics rather than directly on a search space of solutions
  • Existing(or computer generated) heuristics can be used within hyper-heuristics
  • Aim is to take advantage of strengths and avoid weaknesses of each heuristic
  • No problem specific knowledge is required during the search over the heuristics space

Classification of hyper-heuristics

According to the nature of the heuristic search space, it can be classified to be heuristic selection and generation, for each one, there is constructive and perturbative.
For heuristic selection, it will always use fixed heuristic, for heuristic generation, it will automatically generated heuristic from components.
According to the feedback, it can be online learning, offline learning and no-learning.
Online learning: while solving a problem instance(adapt). Examples are: reinforcement learning, meta-heuristics
Offline learning: From a set of training instances(generalise), we trained it and choose one heuristic, after train it, we use it for all the instance. Examples are: classifier systems, GP

A hyper-heuristic Framework

enter image description here

A selection hyper-heuristic framework

For a selection hyper-heuristic framework, it will have a heuristic selection method and move acceptance criteria
enter image description here

Heuristic selection

We can divide heuristic selection method to with learning and with no learning
  • With no learning: Simple random and random permutation
  • With learning:
    • Greedy
    • Peckish(faster version of greedy)
    • Random Gradient
    • Random permutation Gradient
    • Choice Function
    • Reinforcement Learning

Greedy

Apply each low level heuristic to the candidate solution and choose the one that generates the best objective value

Peckish

If you have 100 heuristics, you apply each using greedy and choose the top 10 one

Random Gradient and Random Permutation Gradient

These are learning versions of simple random and random permutation. You randomly choose one heuristic and apply it. If there is improvement, you continue apply it until there is no improvement.

Reinforcement Learning

Reward and punishment!
Maintains a score, if an improving move then increase (+1), otherwise decrease (-1)

Choice Function

The choice function maintains a record of the performance of each heuristic. Three criteria are maintained:
  • Its individual performance
  • How well it has performed with other heuristics
  • The elapsed time since the heuristic has been called
    F\(_t\)(h\(_j\))+ \(\alpha_t\)f\(_1\)(h\(_j\)) + \(\beta_t\)f\(_2\)+\(\gamma_t\)f\(_3\)(h\(_j\))

HyFlex: Hyper-heuristics Flexible Interface

HyFlex defines a interface between problem domain and hyper-heuristic layer.
enter image description here

评论

此博客中的热门博文

[MLE] Linear Classification

[AIM] MetaHeuristics

[CS231] Neural Networks