SpaceToutou  

Beagle est un
Environnement d'
Apprentissage
Génétique
Logiciel
Evolué

[SourceForge]
[BEAGLE Wiki]
[BEAGLE Puppy]
[Distributed BEAGLE]
[BEAGLE Visualizer]
[English version]

[Accueil]
[Historique]
[Caractéristiques]
[Listes courriel]
[Documentation]
[Téléchargement]
[Installation]
[Copyright]

Site Meter

Valid HTML 4.01

SourceForge.net Logo

Open BEAGLE


Open BEAGLE, un environnement générique pour effectuer des AE

Bienvenue sur la page W3 d'Open BEAGLE. Open BEAGLE est un environnement logiciel (framework) C++ d'Algorithmes Evolutionnaires (AE). Il offre un cadre logiciel de haut niveau pour effectuer tout type d'AE, incluant un support pour la programmation génétique à base d'arbres; les algorithmes génétiques à chaînes de bits, à vecteurs d'entiers et à vecteur de nombres réels; et les stratégies d'évolutions.

L'architecture d'Open BEAGLE s'inscrit dans les perspectives de la programmation objet où des abstractions sont représentées par des objets faiblement couplés et où la réutilisation du code est courante et aisée. Nous avons conçu Open BEAGLE avec comme objectif d'offrir un environnement d'AE qui soit à la fois générique, facile d'utilisation, portable, efficace, robuste, élégant et libre.

Générique

Avec Open BEAGLE, vous pouvez effectuer n'importe quel type d'AE, en autant qu'il réponde à une contrainte minimale, soit d'avoir une population d'individus à laquelle est appliquée itérativement une suite d'opérations évolutives. Open BEAGLE supporte les principales saveur des AE comme la programmation génétique, les algorithmes génétiques à chaîne de bits, à vecteurs d'entiers et vecteurs de nombres réels et les stratégies d'évolutions. L'environnement supporte également des techniques avancées des AE tel que l'optimisation multiobjectifs et la co-évolution. L'utilisateur peut employer ces modules existants tels quels, les modifier, ou encore en créer de nouveaux pour réaliser l'algorithme évolutionnaire de votre choix.

Facile d'utilisation

Un effort particulier a été déployé lors de la conception d'Open BEAGLE afin que son utilisation soit la plus facile et la plus agréable possible. Open BEAGLE possède des mécanismes internes qui permettent d'offrir une interface conviviale aux différentes classes de l'environnement logiciel. Par exemple, la gestion d'objets alloués dynamiquement est grandement simplifiée par l'utilisation de pointeurs intelligents responsables de libérer automatiquement la mémoire. Le style de programmation promu est de haut niveau et permet le développement rapide d'applications.

Portable

Le code d'Open BEAGLE respecte la norme ANSI/ISO 3 du C++. De plus, le code nécessite seulement que la Standard Template Library (STL). La framework inclut également un sous-ensemble de Portable Agile C++ Classes (PACC), qui est une encapsulation portable des appels au système d'exploitation.

Efficace

Nous avons porté une attention particulière à l'optimisation des sections de code critiques afin d'assurer des performances intéressantes. À cette fin, nous avons effectué des profils détaillés des temps et fréquences d'exécution des différents modules du système. Le fait que le système soit codé en C++ contribue également à la bonne performance d'Open BEAGLE.

Robuste

Le système logiciel comporte de nombreux énoncés de vérification et de validation qui informent l'usager de tout problème encouru. De plus, nous avons déployé des mécanismes permettant de sauvegarder périodiquement l'état des évolutions en cours. Il est donc possible, sans complication, de reprendre une évolution qui a été préalablement interrompue.

Elégant

Open BEAGLE a été développé avec soin et attention. Nous avons investi beaucoup d'énergie dans le projet afin d'en faire un ensemble logiciel cohérent qui intègre des aspects importants de la programmation orientée objet et de la programmation générique. De plus, l'ensemble du système logiciel respecte des normes de programmation strictes qui facilitent la compréhension du code. L'utilisation de fichiers en format XML est un aspect central de l'environnement et permet une base commune pour le développement d'outils d'analyse et de génération de fichier ainsi que l'intégration avec d'autres systèmes.

Libre

Le code d'Open BEAGLE est libre, disponible sous la licence GNU Lesser General Public License (LGPL). Le code source est donc disponible gratuitement ; il peut être distribué et modifié sans redevance. (Voir section copyright pour plus de détails.)

[Haut]


Historique

29 novembre 2007: Lancement de la version 3.0.3. Résolution d'un bug mineur dans la lecture de constantes éphémères aléatoires à partir de fichiers XML.

14 novembre 2007: Lancement de la version 3.0.2. Résolution de bugs majeurs, en particulier avec CMA-ES and la mutation dans STGP. Mode de compilation rapide par l'utilisation d'un fichier source unique pour chaque librarie. Correction pour permettre la compilation avec MinGW/Cygwin.

6 février 2006: Création du BEAGLE Wiki, prévu pour contenir la documentation ainsi que des discussions de développements. Le manuel ainsi que le HOWTO pour la compilation ont été déplacés sur le wiki.

10 octobre 2005: Lancement de la version 3.0.1. Changements mineurs pour permettre la compilation sous Mac OS X et avec en-tête précompilée. Mise-à-jour du HOWTO pour la compilation.

5 octobre 2005: Lancement de la version 3.0.0. Mise-à-jour majeure. Incorporation de la collection PACC. Représentation d'AG avec vecteurs d'entiers. Améliorations majeures de la framework de PG: fonctions définies automatiquement dynamiques, nombre variable d'arguments de primitives, etc. Divers correctifs et amélioration mineures. Mise-à-jour du manuel, du fichier XML schéma et du HOWTO pour la compilation.

28 octobre 2004: Lancement de la version 2.2.0. Mise-à-jour majeure de la framework d'AG: gestion flexible des limites des paramètres, ajout de l'algorithme CMA-ES et du croisement SBX. Quelques résolution de bugs. Nouveau document introductif : Genericity in Evolutionary Computation Software Tools: Principles and Case-Study.

26 août 2004: Lancement de la version 0.9 de Distributed BEAGLE. Changements majeurs, résolution de bugs et nouvelle documentation. Lancement initial de BEAGLE Visualizer, l'interface Web pour visualiser et analiser les sorties d'Open BEAGLE. Mise-à-jour du fichier du schema XML décrivant le format des fichiers d'Open BEAGLE.

3 août 2004: Lancement de la version 2.1.5. Changements mineurs et résolution de bugs. Tampon de migration ajouté à la classe Deme, lecture de la semence du générateur de nombres aléatoires à partir du fichier /dev/urandom sous Unix, modification de l'opérateur de migration de type HFC, résolution de bug dans la conversion de code Gray vers code binaire pour les chaînes de bits d'AG et quelques autres résolutions de bugs mineurs.

5 juillet 2004: Lancement de la version 2.1.4. Ajout mineur de fonctionnalités. Support pour ensemble de primitives pondérées, opérateur de migration de type HFC, opérateur de sélection par tournois de type lexicographic parsimony pressure, opérateur de diffusion de la terminaison pour la co-évolution et quelques résolution de bugs mineurs.

1er juin 2004: Lancement initial de Distributed BEAGLE, l'extension d'Open BEAGLE pour effectuer des algorithmes évolutionnaires distribués.

13 avril 2004: Lancement de la version 2.1.3. Résolution d'un bug dans la composante des SE de la framework d'AG. Manuel mis-à-jour.

8 avril 2004: Lancement de la version 2.1.2. Ajout mineur de fonctionnalités. Support pour fichiers compressés en format gzip (demande zlib), système de copie de sauvegarde de fichiers et plusieurs autres petits changements. HOWTO pour la compilation mis-à-jour.

17 janvier 2004: Lancement de la version 2.1.1. Résolution de bugs mineurs et quelques modifications pour compiler (de nouveau) sous gcc 2.96 et Borland C++ Builder 5. Mise-à-jour du manuel. Description du format de fichier par un schema XML.

11 décembre 2003: Lancement de la version 2.1.0. Ajout majeur de fonctionnalités. Les ajouts incluent le support pour les AG à nombres réels, les stratégies d'évolutions, l'optimisation multiobjectif, la co-évolution, de nouveaux opérateurs de croisement pour les AG, le seeding de la population à partir de fichier et cinq nouveaux exemples illustratifs. Le HOWTO pour la compilation a également été mis-à-jour.

2 octobre 2003: Le développement et la distribution d'Open BEAGLE sont maintenant sur sourceforge.net. Le manuel et le HOWTO pour la compilation ont également été mis-à-jour pour la version 2.0.0.

24 septembre 2003: Lancement de la version 2.0.0. Mise-à-jour majeure. Nouveau format XML de fichier, nouvel outillage pour la lecture/écriture de fichiers XML, modèle du breeder, configuration dynamique de l'evolver, changements important dans le hall-of-fame et les statistiques, nouvel exemple d'AG OneMax, exemple allzeros renommé ZeroMin. Faites la mise-à-jour!

29 mai 2003: Lancement de la version 1.1.1. Résolution de bugs mineurs, un nouvel example d'AG (allzeros) et quelques modifications pour compiler avec MS Visual C++ .NET 2003 (7.1) BETA.

30 avril 2003: Lancement de la version 1.1.0. Mise-à-jour majeure. Nouveau mécanisme de logging avec sortie en format XML. Modification de la structure des statistiques. Quelques changements de nom. Amélioration du manuel de référence. Mise-à-jour du HOWTO pour la compilation et du manuel.

20 mars 2003: Lancement de la version 1.0.3. Cette version vise essentiellement la résolution de bugs et quelques modifications mineures.

6 mars 2003: Le nouveau HOWTO pour la compilation avec Open BEAGLE est disponible. Les instructions d'installation du manuel d'Open BEAGLE ont été retirées.

30 novembre 2002: Le manuel d'Open BEAGLE accompagnant la version 1.0.1 est disponible.

21 novembre 2002: Lancement de la version 1.0.1. Comprend un nouvel interface de compilation sous Unix (avec autoconf/automake) et des fichiers de projet pour MS Visual C++ .NET.

17 septembre 2002: Une liste courriel sur Open BEAGLE est lancée sur Yahoogroups.

24 juillet 2002: Le manuel d'Open BEAGLE est maintenant disponible.

22 juillet 2002: Lancement de la version 1.0.0.

13 juin 2002: Lancement de la version 0.16.2 (BETA) d'Open BEAGLE. Ajout des sections caractéristiques et téléchargement. Mise-à-jour de la section installation. La version 0.16.2 est la version BETA de la version 1.0.

21 mars 2002: Lancement de la première version publique d'Open BEAGLE, version 0.16.1 (ALPHA).

25 janvier 2002: Lancement du site Web.

[Haut]


Caractéristiques

Fondations orientée-objet:

  • Approche moderne de programmation C++
  • Architecture OO structurée
  • Pointeurs intelligents pour la gestion automatique de l'allocation de la mémoire
  • Formats de fichiers XML avec support de lecture/écriture
  • Mécanisme sophistiqué de logging avec sortie en XML
  • Paramètres et algorithmes configurables dynamiquement par des fichiers
  • Modèle générique des algorithmes basé sur une approche par plug-in
  • Milestone pour redémarrage d'évolution et analyse de résultats

Framework générique d'AE:

  • Nombreux opérateurs standards
  • Stratégie de replacement générationnelle, steady-state, (mu,lambda) et (mu+lambda)
  • Population formée de plusieurs demes
  • Individus représentés sur plusieurs génômes
  • Historique des meilleurs individus de la population et de chaque deme
  • Statistiques complètes d'évolution
  • Optimisation multiobjectif (actuellement NSGA-II et NPGA2)
  • Seeding de la population à partir de fichier

Framework d'AG (représentations linéaires):

  • Représentation d'AG à chaînes de bits avec fonctions de décodage (encodage binaire et Gray)
  • Représentation d'AG à vecteurs de nombres entiers
  • Représentation d'AG à vecteurs de nombres réels
  • Stratégies d'évolution
  • Covariance Matrix Adaptation ES (CMA-ES)
  • Trois opérateurs génériques de croisement (un-point, deux-points, uniforme) et deux spécifiques à la représentation par vecteurs de réels (BLX-alpha et SBX)
  • Trois opérateurs de mutation, un pour chaque représentation
  • Opérateurs pour génotypes de permutation d'indices pour la représentation de vecteurs d'entiers
  • Sept exemples illustratifs (OneMax, ZeroMin (minimisation de OneMax) et Maximisation de fonction par AG à chaîne de bits, Maximisation de fonction par AG à nombres réels, Maximisation de fonction par stratégies d'évolutions, Knapsack 0/1 Multiobjectif, Problème du voyageur de commerce)

Framework de PG:

  • Opérateur de croisement standard
  • Cinq opérateurs de mutation: mutation standard (livre GP1 de Koza), mutation swap, mutation shrink, mutation swap subtree et mutation de valeurs aléatoires éphèmères.
  • Trois types d'initialisation (ramped ou non) des arbres: full, grow et half-and-half.
  • Classe abstraite de primitive
  • Nombreuses classes de primitives courantes
  • Fonctions définies automatiquement
  • Constantes éphèmères aléatoires
  • Opérateurs supportant les contraintes topologiques des arbres, avec support pour le strongly-typed genetic programming.
  • Trois exemples illustratifs (Régression symbolique, Even 6-parity et Spambase).

Framework de co-évolution:

  • Support pour la co-évolution basée sur le multi-threading
  • Classes pour le muli-threading encapsulant les appels au système d'exploitation
  • Opérateur d'évaluation de l'adéquation pour les AE de base et la PG
  • Deux exemples illustratifs (Iterated Prisoner's Dilemma avec deux populations, Régression symbolique co-évolutionnaire)
[Haut]


Liste courriel

La liste courriel d'Open BEAGLE sur Yahoogroups est destinée à l'annonce de nouvelles versions d'Open BEAGLE, à poser des questions de toutes sortes sur la framework et à discuter des développements futurs. Il vous est fortement suggéré de joindre la liste, ou du moins de la consulter régulièrement, si vous êtes intéressé par la framework d'AE. Si vous avez des problèmes avec Open BEAGLE, consultez premièrement la liste afin de voir si des discussions précédentes ne vous aideraient pas, et par la suite posez une question sur la liste si vous ne pouvez toujours pas résoudre votre problème.

La liste des développeurs d'Open BEAGLE sur SourceForge est destinée aux utilisateurs intéressé à contribuer au développement de la framework. C'est une liste plus technique et qui possède un volume de messages généralement plus que la liste sur Yahoogroups. Cette liste présente également les nouvelles fonctionnalités developpée pour la version la plus récente de framework, disponible dans le dépôt CVS.

[Haut]


Documentation

Plusieurs documents portant sur Open BEAGLE sont à votre disposition:

  • <bon point de départ>Genericity in Evolutionary Computation Software Tools: Principles and Case-Study</bon point de départ>
    Article introductif aux logiciels génériques d'AE en général et à Open BEAGLE en particulier. (pdf).
  • Open BEAGLE Manual
    Manuel détaillé comprenant un tutoriel, un manuel de l'architecture et un manuel d'utilisation (html).
  • Open BEAGLE Compilation HOWTO
    Instructions détaillées sur la compilation des librairies et des exemples, et sur la configuration d'un nouveau projects de développements avec Open BEAGLE (html).
  • Open BEAGLE Reference Manual
    Manuel de référence doxygenéré à partir du code source (html, html-tarball, html-zip).
  • Open BEAGLE XML Schema
    Description formelle du dialecte XML (format de fichier) d'Open BEAGLE par un W3C XML Schema. (XML Schema, documentation HTML).
  • <dépassé>Open BEAGLE: A New Versatile C++ Framework for Evolutionary Computations</dépassé>
    Article introductif presenté comme late-breaking paper au GECCO 2002 (pdf).

Les auteurs d'articles scientifiques comportant des résultats générés avec Open BEAGLE sont priés de citer l'article qui suit.

Christian Gagné and Marc Parizeau. Genericity in Evolutionary Computation Software Tools: Principles and Case-Study. International Journal on Artificial Intelligence Tools, vol. 15, no. 2, p. 173-194, April 2006.

[Haut]


Téléchargement

La version stable la plus récente d'Open BEAGLE est 3.0.3 (tarball, zip, liste des changements).

La version en développement la plus récente est disponible dans le dépôt CVS sur SourceForge.

[Haut]


Installation

Les instructions d'installation détaillées sont désormais disponibles dans le Open BEAGLE Compilation HOWTO.

Pour compiler Open BEAGLE, vous devez utiliser un compilateur récent comprenant une version à jour de la STL et de la librairie standard du C++.

COMPILATEURS TESTES

Compilateur
Etat
Commentaires
gcc 4.x
gcc 3.x
gcc 2.96
OK
Suivez les directives d'installation pour Unix.
gcc 2.95
egcs 1.1.2
OK
Nécessite l'ajout du fichier sstream
Voir http://gcc.gnu.org/faq.html#2.95sstream.
Borland C++ Builder 5
OK
N'est plus supporté, mais devrait compiler la framework sans problème.
MS Visual C++ .NET 2003
OK
Copiez le fichier beagle/include/beagle/config.hpp.msvcpp comme le fichier beagle/include/beagle/config.hpp. Par la suite, utilisez les fichiers solutions dans les répertoires MSVCPP pour compiler les librairies et les exemples.
MS Visual C++ .NET 2002
OK
Les fichiers de solution et de projet doivent être régénérés par l'usager pour MS Visual C++ .NET 2002. Tout comme pour la version 2003, copiez le fichier config.hpp.msvcpp comme le fichier config.hpp dans le répertoire beagle/include/beagle.
MS Visual C++ 6.0
ECHEC
MS Visual C++ 6.0 supporte partiellement et incorrectement les patrons. Utilisez MS Visual C++ .NET à la place.

[Haut]


Copyright

Open BEAGLE : framework C++ générique pour algorithmes évolutionnaires.

Copyright © 1999-2007 par Christian Gagné et Marc Parizeau.

Contributeurs au projet : Matthew Walker, Jiachuan Wang, Jim Shepherd, Jianjun Hu, Vinod Valsalam, Alexandre Devert, Alain-Daniel Bourdage et Andrew Marek (Open BEAGLE); Marc Dubreuil (Distributed BEAGLE); Patrick-Emmanuel Boulanger-Nadeau et Vincent-Oliver Gravel (BEAGLE Visualizer).

Le projet a été effectué dans le cadre d'un doctorat au Laboratoire de Vision et Systèmes Numériques de l'Université Laval. Christian Gagné est maintenant analyste de recherche chez MacDonald, Dettwiler and Associates Ltd.

Cette librairie est un logiciel libre ; vous pouvez la redistribuer et/ou la modifier selon les termes de la version 2.1 de la GNU Lesser General Public License tel que publié par la Free Software Foundation.

Cette librairie est distribuée avec l'espoir quelle soit utile, mais elle ne comporte AUCUNE GARANTIE ; pas même la garantie implicite de COMMERCIABILITE ou d'APTITUDE À UN USAGE SPECIFIQUE. Consultez la GNU Lesser General Public License pour plus de détails.

La page suivante énumère quelques environnements logiciels d'AE disponibles.

[Haut]



$Id: index_f.html,v 1.27 2007/11/29 16:52:43 raspingoo Exp $
Christian Gagné et Julie Beaulieu