Skip to content

Latest commit

 

History

History
636 lines (337 loc) · 26 KB

README.md

File metadata and controls

636 lines (337 loc) · 26 KB

CleverAlgorithms

HitCount

The C++ implementation of Clever Algorithms.

Overview

Clever Algorithms: Nature-Inspired Programming Recipes is an open source book that describes a large number of algorithmic techniques from the the fields of Biologically Inspired Computation, Computational Intelligence and Metaheuristics in a complete, consistent, and centralized manner such that they are accessible, usable, and understandable. This is a repository for the source code (C++ implementation) of the book project.

Algorithm List

Stochastic Algorithms

  • Random Search
  • Adaptive Random Search
  • Stochastic Hill Climbing
  • Iterated Local Search
  • Guided Local Search
  • Variable Neighborhood Search
  • Greedy Randomized Adaptive Search
  • Scatter Search
  • Tabu Search
  • Reactive Tabu Search

Evolutionary Algorithms

  • Genetic Algorithm
  • Genetic Programming
  • Evolution Strategies
  • Differential Evolution
  • Evolutionary Programming
  • Grammatical Evolution
  • Gene Expression Programming
  • Learning Classifier System
  • Non-dominated Sorting Genetic Algorithm
  • Strength Pareto Evolutionary Algorithm

Physical Algorithms

  • Simulated Annealing
  • Extremal Optimization
  • Harmony Search
  • Cultural Algorithm
  • Memetic Algorithm

Probabilistic Algorithms

  • Population-Based Incremental Learning
  • Univariate Marginal Distribution Algorithm
  • Compact Genetic Algorithm
  • Bayesian Optimization Algorithm
  • Cross-Entropy Method

Swarm Algorithms

  • Particle Swarm Optimization
  • Ant System
  • Ant Colony System
  • Bees Algorithm
  • Bacterial Foraging Optimization Algorithm

Immune Algorithms

  • Clonal Selection Algorithm
  • Negative Selection Algorithm
  • Artificial Immune Recognition System
  • Immune Network Algorithm
  • Dendritic Cell Algorithm

Neural Algorithms

  • Perceptron
  • Back-propagation
  • Hopfield Network
  • Learning Vector Quantization
  • Self-Organizing Map

Test Functions

ACKLEY FUNCTION

ackley functions

Input Domain:

The function is usually evaluated on the , and .

Global Minimum:

BUKIN FUNCTION N.6

bukin function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

CROSS-IN-TRAY FUNCTION

cross-in-tray function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Drop-Wave Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

EGGHOLDER FUNCTION

egg holder function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Gramacy & Lee Function

gramacy & lee function

Input Domain:

The function is usually evaluated on the .

Griewank Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Holder Table Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Levy Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Levy Function N. 13

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Rastrigin Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Schaffer Function N. 2

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Schaffer Function N. 4

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Schwefel Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Shubert Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Bohachevsky Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Perm Function 0, D, Beta

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Rotated Hyper-ellipsoid Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Sphere Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Sum of Different Powers Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

SUM SQUARES FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

TRID FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

BOOTH FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

BATYAS FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

MCCORMICK FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

POWER OF SUM FUNCTION

Input Domain:

The function is usually evaluated on the .

ZAKHAROV FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

THREE-HUMP CAMEL FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

SIX-HUMP CAMEL FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Dixon-Price FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Rosenbrock Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Easom Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Michalewicz Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Beale Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Branin Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

COLVILLE FUNCTION

Input Domain:

The function is usually evaluated on the .

Global Minimum:

Forrester et al. (2008) Function

Input Domain:

The function is usually evaluated on the .

Goldstein-Price Function

Input Domain:

The function is usually evaluated on the .

Global Minimum:

How to build the source code

gcc -g -Wall -std=c++11 <algorithm>.cpp -lstdc++ -o <algorithm>

asciicast

Thanks

This project has been supported by JetBrains Free License Programs - Licenses for Open Source Development. Thanks JetBrains!

JetBrains