Catégorie:Arbre (structure de données) Algorithm. 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. A binary search halves the number of items to check with each iteration, so locating an item (or determining its absence) takes logarithmic time. Overview[edit] . Liste 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. Ces méthodes utilisent cependant un haut niveau d’abstraction, leur permettant d’être adaptées à une large gamme de problèmes différents.
Les métaheuristiques (M) sont souvent des algorithmes utilisant un échantillonnage probabiliste. Elles tentent de trouver l’optimum global (G) d’un problème d’optimisation difficile (avec des discontinuités — D —, par exemple), sans être piégé par les optima locaux (L). Généralités[modifier | modifier le code] Terminologies[modifier | modifier le code] On parle de méta, du grec μετά « au-delà » (comprendre ici « à un plus haut niveau »), heuristique, du grec εὑρίσκειν / heuriskein, qui signifie « trouver ». Nomenclature[modifier | modifier le code] L’ensemble des solutions possibles forme l’espace de recherche.
Concepts généraux[modifier | modifier le code] 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. Sous-catégories Cette catégorie comprend les 7 sous-catégories suivantes. Pages dans la catégorie « Algorithmique » Cette catégorie contient les 88 pages suivantes. Recherche tabou. Un article de Wikipédia, l'encyclopédie libre. 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. Metaheuristics_doe_en.png (Image PNG, 1024x768 pixels) Catégorie:Algorithmique. Recherche tabou. Metaheuristics_doe_en.png (Image PNG, 1024x768 pixels)
Fichier:Metaheuristics classification fr.svg - Wikipédia. Metaheuristics Network. Théorie de la complexité des algorithmes. Un article de Wikipédia, l'encyclopédie libre. 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 (en temps et en espace) nécessaire pour la résolution de problèmes au moyen de l'exécution d'un algorithme. Il s'agit donc d'étudier la difficulté intrinsèque de problèmes posés mathématiquement. Un algorithme répond à un problème. Il est composé d'un ensemble d'étapes simples nécessaires à la résolution, dont le nombre varie en fonction du nombre d'éléments à traiter. La théorie de la complexité s'attache à connaître la difficulté (ou la complexité) d'une réponse par algorithme à un problème, dit algorithmique, posé de façon mathématique.
Un problème algorithmique est un problème posé de façon mathématique, c'est-à-dire qu'il est énoncé rigoureusement dans le langage des mathématiques – le mieux étant d'utiliser le calcul des prédicats. Un exemple de problème de décision est: 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].
In most real applications of EAs, computational complexity is a prohibiting factor. In fact, this computational complexity is due to fitness function evaluation. Fitness approximation is one of the solutions to overcome this difficulty. However, seemingly simple EA can solve often complex problems; therefore, there may be no direct link between algorithm complexity and problem complexity. A possible limitation [according to whom?] Of many evolutionary algorithms is their lack of a clear genotype-phenotype distinction. Implementation of biological processes[edit] Evolutionary algorithm types[edit] Evolutionary art. Artificial Evolution of the Cyprus Problem (2005) is an artwork created by Genco Gulan Evolutionary art is created using a computer. 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 art is a branch of Generative art, which system is characterized by the use of evolutionary principles and natural selection as generative procedure. In common with natural selection and animal husbandry, the members of a population undergoing artificial evolution modify their form or behavior over many reproductive generations in response to a selective regime. See also[edit] Further reading[edit] 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.
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. Furthermore, unlike typical ANNs, CPPNs are applied across the entire space of possible inputs so that they can represent a complete image. CPPNs can be evolved through neuroevolution techniques such as NeuroEvolution of Augmenting Topologies (called CPPN-NEAT).
Bibliography[edit] See also[edit] External links[edit] Novelty Search Users Page. "To achieve your highest goals, you must be willing to abandon them. " 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" 2012 YouTube Video: Ken Stanley gives Joint ACM and NICTA-sponsored 2012 talk at RMIT on "Discovery Without Objectives" 2010 Video: SPLASH 2010 Keynote on Searching Without Objectives YouTube Video: Bird Flying Behavior Evolved with Novelty Search by Ander Taylor.
This page provides information on the use and implementation of novelty search, an evolutionary search method that takes the radical step of ignoring the objective of search and instead rewarding only behavioral novelty. Please direct inquiries to Ken Stanley, kstanley@eecs.ucf.edu (Website) or Joel Lehman, jlehman@eecs.ucf.edu (Website) Novelty search: Evolution without objectives More than an approach to solving problems Novelty Search Publications. 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 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] Multi-agent learning [6]Checkers board evaluation [7]Controlling Legged Robots [8][9][10][11][12][13]videoComparing Generative vs.
Direct Encodings [14][15][16]Investigating the Evolution of Modular Neural Networks [17][18][19]Evolving Objects that can be 3D Printed [20]Evolving the Neural Geometry and Plasticity of an ANN [21] References[edit] Jump up ^ K. 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. 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] rtNEAT[edit] Phased Pruning[edit] HyperNEAT[edit]
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). 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. Touchgraph_books.png (Image PNG, 1077x909 pixels) Dreaming of Metaheuristics. Note that descriptions are picked up from the web sites of the projects. 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. C++ compilers are also available for a large choice of plateforms (with a special distinction for GCC, which is free software). The main idea beside the design of the framework is specified as one of the following keywords: Favorites Here is my list : Other These frameworks are not those which I would recommend, but they have some properties that could be intersting :
Revues.org : portail de revues en sciences humaines et sociales. Heuristic approach to the airline schedule disturbances problem - Transportation Planning and Technology. Taxonomy of Metaheuristics & Software Engineering. Algorithmic.net: algorithmic composition resources | Main. Grid-theme-naga1e.jpg (Image JPEG, 800x600 pixels)
Nicolas HERVE Main/Algo Tri. Portail:Algorithmique. Une page de Wikipédia, l'encyclopédie libre. Portail Algorithmique On désigne par algorithmique l’ensemble des activités logiques qui relèvent des algorithmes ; en particulier, en informatique, cette discipline désigne l'ensemble des règles et des techniques qui sont impliquées dans la définition et la conception des algorithmes. Le mot vient du nom du mathématicien Al-Khuwarizmi (latinisé au Moyen Âge en Algoritmi), qui, au IXe siècle écrivit le premier ouvrage systématique sur la solution des équations linéaires et quadratiques. Dans le cas général, l’algorithmique s’effectue au moyen de calculs. Un algorithme est un processus systématique de résolution, par le calcul, d'un problème permettant de présenter les étapes vers le résultat à une autre personne physique (un autre humain) ou virtuelle (un calculateur).
Bien que leur classement soit difficile, on peut distinguer plusieurs grand groupes d'algorithmes, sans pour autant tous les classer. Articles Portail connexes. The Art of Complex Problem Solving.