background preloader

Algorithmes & Métaheuristique

Facebook Twitter

Nicolas HERVE Main/Algo Tri. Grid-theme-naga1e.jpg (Image JPEG, 800x600 pixels) Handbook of Algorithms and Data Structures. algorithmic composition resources. Taxonomy of Metaheuristics & Software Engineering. Heuristic approach to the airline schedule disturbances problem - Transportation Planning and Technology. Algorithm. Catégorie:Arbre (structure de données) Dreaming of Metaheuristics. Note that descriptions are picked up from the web sites of the projects.

Dreaming of Metaheuristics

As one can see, most of these softwares are designed for evolutionnary algorithms, but I recommend you to try out some of the generic frameworks, because "genetic" algorithms are not always the best choice for solving an optimization problem, despite their wide spread. Here are the frameworks I would recommend. These frameworks are free softwares, you can use, look at the code, modify it and redistribute it (precious qualities for frameworks). I would also recommend C or C++, which permits to implement fast programs, while using object oriented programming.

Touchgraph_books.png (Image PNG, 1077x909 pixels) Dreaming of Metaheuristics. One of the scientist key policy is always to refer to people who did the first work (as it is pointed out by the "hard blogging scientists" manifest).

Dreaming of Metaheuristics

It is due to the fact that researchers want to share free science with everybody (at least at little cost), and that recognition is a form of remuneration (in a similar way, Eric S. Raymond explain such mechanism for hackers, in his essay "The Cathedral and the Bazaar"). Recently is increasing a (rather small, but interesting) controversy about the authorship of the Ant Colony Optimization (ACO) idea. The "orthodox" seminal paper about ACO is a technical report, written by Dorigo, Maniezzo and Colorni, submitted in 1991. As technical report are not a rigourous publication, perhaps a more pertinent citation would be the corresponding paper published in the proceedings of the First European Conference on Artificial Life, in 1992, or the Dorigo's PhD thesis, completed in 1991.

Nowadays, M. Where is the controversy ? In my opinion, M. Neuroevolution of augmenting topologies. NeuroEvolution of Augmenting Topologies (NEAT) is a genetic algorithm for the generation of evolving artificial neural networks (a neuroevolution technique) developed by Ken Stanley in 2002 while at The University of Texas at Austin.

Neuroevolution of augmenting topologies

It alters both the weighting parameters and structures of networks, attempting to find a balance between the fitness of evolved solutions and their diversity. It is based on applying three key techniques: tracking genes with history markers to allow crossover among topologies, applying speciation (the evolution of species) to preserve innovations, and developing topologies incrementally from simple initial structures ("complexifying").

Performance[edit] On simple control tasks, the NEAT algorithm often arrives at effective networks more quickly than other contemporary neuro-evolutionary techniques and reinforcement learning methods.[1][2] Complexification[edit] HyperNEAT. Hypercube-based NEAT, or HyperNEAT,[1] is a generative encoding that evolves artificial neural networks (ANNs) with the principles of the widely used NeuroEvolution of Augmented Topologies (NEAT) algorithm.[2] It is a novel technique for evolving large-scale neural networks utilizing the geometric regularities of the task domain.


It uses Compositional Pattern Producing Networks [3] (CPPNs), which are used to generate the images for and shapes for HyperNEAT has recently been extended to also evolve plastic ANNs [4] and to evolve the location of every neuron in the network.[5] Applications to Date[edit] Multi-agent learning [6]Checkers board evaluation [7]Controlling Legged Robots [8][9][10][11][12][13]videoComparing Generative vs. Novelty Search Users Page. "To achieve your highest goals, you must be willing to abandon them.

Novelty Search Users Page

" 2013 Keynote Now in High Quality on Youtube: Ken Stanley gives a keynote at the 16th Portuguese Conference on Artificial Intelligence: " When Algorithms Inform Real Life: Novelty Search and the Myth of the Objective" Compositional pattern-producing network. Compositional pattern-producing networks (CPPNs), are a variation of artificial neural networks (ANNs) which differ in their set of activation functions and how they are applied.

Compositional pattern-producing network

While ANNs often contain only sigmoid functions (and sometimes Gaussian functions), CPPNs can include both types of functions and many others. The choice of functions for the canonical set can be biased toward specific types of patterns and regularities. For example, periodic functions such as sine produce segmented patterns with repetitions, while symmetric functions such as Gaussian produce symmetric patterns.

Linear functions can be employed to produce linear or fractal-like patterns. Thus, the architect of a CPPN-based genetic art system can bias the types of patterns it generates by deciding the set of canonical functions to include. Furthermore, unlike typical ANNs, CPPNs are applied across the entire space of possible inputs so that they can represent a complete image. Evolutionary art. Artificial Evolution of the Cyprus Problem (2005) is an artwork created by Genco Gulan Evolutionary art is created using a computer.

Evolutionary art

The process starts by having a population of many randomly generated individual representations of artworks. Each representation is evaluated for its aesthetic value and given a fitness score. The individuals with the higher fitness scores have a higher chance of remaining in the population while individuals with lower fitness scores are more likely to be removed from the population. This is the evolutionary principle of Survival of the fittest. Evolutionary algorithm. Evolutionary algorithms often perform well approximating solutions to all types of problems because they ideally do not make any assumption about the underlying fitness landscape; this generality is shown by successes in fields as diverse as engineering, art, biology, economics, marketing, genetics, operations research, robotics, social sciences, physics, politics and chemistry[citation needed].

Evolutionary algorithm

In most real applications of EAs, computational complexity is a prohibiting factor. In fact, this computational complexity is due to fitness function evaluation. Théorie de la complexité des algorithmes. Un article de Wikipédia, l'encyclopédie libre.

Théorie de la complexité des algorithmes

La théorie de la complexité est un domaine des mathématiques, et plus précisément de l'informatique théorique, qui étudie formellement la quantité de ressources (temps et/ou espace mémoire) nécessaire pour résoudre un problème algorithmique au moyen de l'exécution d'un algorithme. Metaheuristics Network. Fichier:Metaheuristics classification fr.svg - Wikipédia. Metaheuristics_doe_en.png (Image PNG, 1024x768 pixels) Recherche tabou. Un article de Wikipédia, l'encyclopédie libre.

Recherche tabou

La recherche tabou est une métaheuristique d'optimisation présentée par Fred Glover en 1986. On trouve souvent l'appellation recherche avec tabous en français. Cette méthode est une métaheuristique itérative qualifiée de recherche locale au sens large. Principe[modifier | modifier le code] L'idée de la recherche tabou consiste, à partir d'une position donnée, à en explorer le voisinage et à choisir la position dans ce voisinage qui minimise la fonction objectif.

Il est essentiel de noter que cette opération peut conduire à augmenter la valeur de la fonction (dans un problème de minimisation) : c'est le cas lorsque tous les points du voisinage ont une valeur plus élevée. Le risque cependant est qu'à l'étape suivante, on retombe dans le minimum local auquel on vient d'échapper. Les positions déjà explorées sont conservées dans une file FIFO (appelée souvent liste tabou) d'une taille donnée, qui est un paramètre ajustable de l'heuristique. Catégorie:Algorithmique. Une page de Wikipédia, l'encyclopédie libre. 88 articles L'algorithmique est la science des algorithmes. Métaheuristique. Un article de Wikipédia, l'encyclopédie libre. Il existe un grand nombre de métaheuristiques différentes, allant de la simple recherche locale à des algorithmes complexes de recherche globale. Category:Graph algorithms. Catégorie:Algorithme de la théorie des graphes. Liste des algorithmes. Binary search algorithm.

In computer science, a binary search or half-interval search algorithm finds the position of a specified input value (the search "key") within an array sorted by key value.[1][2] For binary search, the array should be arranged in ascending or descending order. In each step, the algorithm compares the search key value with the key value of the middle element of the array. If the keys match, then a matching element has been found and its index, or position, is returned. Otherwise, if the search key is less than the middle element's key, then the algorithm repeats its action on the sub-array to the left of the middle element or, if the search key is greater, on the sub-array to the right. If the remaining array to be searched is empty, then the key cannot be found in the array and a special "not found" indication is returned.