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.net: 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. 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. 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] Implementation[edit] Extensions to NEAT[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.

HyperNEAT

It uses Compositional Pattern Producing Networks [3] (CPPNs), which are used to generate the images for Picbreeder.org and shapes for EndlessForms.com. 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] 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. 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. 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

Théorie de la complexité des algorithmes. La théorie de la complexité est le domaine des mathématiques, et plus précisément de l'informatique théorique, qui étudie formellement la quantité de ressources (temps, espace mémoire, etc.) dont a besoin un algorithme pour résoudre un problème algorithmique.

Théorie de la complexité des algorithmes

Il s'agit donc d'étudier la difficulté intrinsèque des problèmes, de les organiser par classes de complexité et d'étudier les relations entre les classes de complexité. 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. Catégorie:Algorithmique. Une page de Wikipédia, l'encyclopédie libre. 88 articles L'algorithmique est la science des algorithmes. Elle vise à étudier les opérations nécessaires à la réalisation d'un calcul. Cette catégorie réunit tous les articles autour de ce thème. Les algorithmes, fruits de l'algorithmique, sont rangés dans la catégorie algorithme. 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.