C C++ code source compilation configuration email framework gestionnaire de fenêtres latex librairie libre linux php programmation python réseau shell ssh statistique SVG xml audio humour image jeu philosophie point de vue web bibliographie colonies de fourmis conférence estimation de distribution livre métaheuristique rapport
Comment effectuer un tirage aléatoire suivant une loi gaussienne multi-variante (également appelée loi multinormale) ? La réponse et un code C++ en prime.
Une possibilité est de considérer que chaque variable est indépendante des autres. On tire alors chaque variable dans une loi normale, en utilisant la méthode de Box-Muller :
En C++, tirer un chiffre y dans une loi normale de moyenne mean et d’écart-type std, ça donne quelque chose comme : double x1, x2, w, y ;
do x1 = 2.0 * (...)
[Lire la suite]
Quel est l’algorithme correct pour effectuer un tirage aléatoire suivant une distribution aléatoire uniforme hypersphèrique ? Pas si évident...
La première solution venant à l’esprit consiste a se placer dans un espace en coordonnées polaires et à tirer dans une loi uniforme chaque coordonnées. Dans un espace à N dimensions, on tire ainsi le rayon r et les angles a1...a2...ai...aN. Puis on passe en coordonnées rectangulaires pour avoir les les angles x1...x2...xi...xN.
Or, comme on peut le (...)
[Lire la suite]
Si vous utilisez Kdevelop (un environnement de programmation) et que vous aimez le principe de SCons (un outils de compilation, comme les autotools mais en bien), alors ces bouts de codes sont faits pour vous.
L’idée générale est de s’affranchir des immondes automake et autoconf, tout en ajoutant des fonctionnalités rigolotes, en étant partisant du moindre effort.
Pour ce faire, j’ai développé un petit script à coller dans votre SConstruct, qui facilite le travail.
Cela permet de (...)
[Lire la suite]
Le C++ permet de gérer des hierarchies d’exceptions et la plupart des compilateurs permettent d’obtenir des informations sur le code source au moment de la compilation. Comment concilier les deux tout en évitant le moindre effort ?
L’avantage d’une hierarchie de classes d’exceptions réside dans la capacité de gérer différents niveaux d’erreurs. La librairie standard fournie les bases d’une telle hierarchie, mais ne permet en général que la gestion d’une seule chaine de caractère (...)
[Lire la suite]
The following archive comprise the HCIAC source code along with two example of simple sampling methods and a benchmark of test functions.
NOTE : this code has been transfered to the Open Metaheuristic project. The version presented here is no longer maintened.
The code is written in C++, and has been tested on Linux (Fedora Core 1) with gcc 3.3.2 and on Windows (using Cygwin), with gcc 3.3.1-3.
Download Download and uncompress this archive, it will create a directory named (...)
[Lire la suite]
Open Metaheuristics est un « framework » libre, pour la conception de métaheuristiques d’optimisation difficile. Il est disponible sous licence LGPL et est orienté sur les tests et la comparaison d’algorithmes génériques, mais facilite également leur utilisation. [Lire la suite]