Pour l'instant il y en a peu, mais la suite, notamment mes programmes sur HP48 (si j'arrive retrouver les sources) et quelques programmes sur Mac, devrait arriver un jour ou l'autre.
This page is also available in English.
TNC est une implémentation en C de TNBC, un logiciel d'optimisation par méthode de Newton tronquée développée à l'origine par Stephen G. Nash en Fortran.
Le source d'origine est disponible sur la page des logiciels de Stephen G. Nash.
Ce logiciel cherche à déterminer le minimum d'une fonction non-linéaire dont les variables sont éventuellement soumises à des contraintes de bornes. Il nécessite de pouvoir calculer la valeur de la fonction ainsi que son gradient et est particulièrement adapté aux problèmes de grande taille.
Le source, un exemple, ainsi que les informations relatives à la licence et au copyright, sont inclus dans la distribution. Ce logiciel a été testé sur la majorité des systèmes UNIX ainsi que sur Windows.
Depuis la version 1.0.5, un module d'interface avec Python est fourni. Cette interface est aussi présente dans SciPy.
Vous pouvez le télécharger (version 1.3, 28/01/2005) : tnc-1.3.tgz (Source C, 23 ko)
PuLP es modeleur de programmes linéaires en Python. PuLP peut générer des fichier .LP et .MPS et appeler GLPK, COIN CLP/SBB, CPLEX ou XPRESS pour résoudre des programmes linéaires.
PuLP fournit une syntaxe claire et intuitive pour l'écriture de programmes linéaires et un moyen simple d'appel aux solveurs.
Plusieurs exemples sont fournis.
Vous pouvez le télécharger (version 1.1, 3/5/2004) : pulp-1.1.tgz (source C et Python, 36 ko)
from pulp import *
prob = LpProblem("test1", LpMinimize)
# Variables
x = LpVariable("x", 0, 4)
y = LpVariable("y", -1, 1)
z = LpVariable("z", 0)
# Objectif
prob += x + 4*y + 9*z
# Contraintes
prob += x+y <= 5
prob += x+z >= 10
prob += -y+z == 7
GLPK().solve(prob)
# Solution
for v in prob.variables():
print v.name, "=", v.varValue
print "objective=", value(prob.objective)
Ce logiciel est une version C de COBYLA2, un logiciel d'optimisation sous contraintes par approximation linéaire développé par Michael J. D. Powell en Fortran. Ce logiciel ne fait pas usage des dérivées et peut prendre en compte des contraintes non linéaires. Il est très utile pour les problèmes de petite taille.
A part une interface C, cette version propose une interface Python, conçue initialement pour faciliter l'intégration de COBYLA dans SciPy.
Le source code Fortran d'origine peut être téléchargé sur la page de la section optimisation non linéaire contrainte de l'abre de décision pour les logiciels d'optimisation de Hans Mittelmann et Peter Spellucci. C'est une excellente resource pour les logiciels d'optimisation.
Merci infiniment à Michael J. D. Powell pour avoir permi la redistribution libre de son logiciel !
Vous pouvez le télécharger (version 1.1, 18/04/2004) : cobyla2c-1.1.tgz (Source C, 20 kb)
Cette bibliothèque portable (unix, windows) de fonctions C permet de manipuler simplement des dictionnaires (similaires aux hash_map de la STL ou aux dictionnaires Python).
De nombreux types pour les clés et les valeurs sont fournis (int, double, chaînes de caractères,...), et la possibilité de définir une valeur par défaut qui n'est pas stockée en fait un bon candidat pour certains calculs vectoriels et matriciels en creux.
Vous pouvez la télécharger (version 1.4, 16/04/2004) : mapkit-1.4.tgz (source C, 58 ko)
Randomkit est une bibliothèque C portable (unix, windows) et "thread-safe", conçue pour générer des nombres aléaoires à l'aide du générateur Mersenne Twister, du générateur à discrépance faible de Sobol en dimension quelconque, ou du générateur cryptographique ISAAC de Bob Jenkins.
Par ailleurs, Ramdomkit fournit une interface portable aux fonctions spécifiques du système (/dev/random sous Unix et l'API Crypto sous Windows) pour la génération de nombres aléatoires, ainsi que la possibilité de tirer des nombres selon une loi gaussienne.
Vous pouvez la télécharger (version 1.6, 20/02/2006) : randomkit-1.6.tgz (Source C, 31 ko)
MDMalloc est un ensemble de fonctions assez pratiques pour créer des tableaux sans avoir à faire des quantités de malloc et de free.
Exemple avec un tableau bi-dimensionnel :
double **array;
array = vmdmalloc(sizeof(double), 2, 10, 20);
array[5][17] = 3.0;
free(array);
Vous pouvez le télécharger (version du 25/1/2003) : mdmalloc.tgz (Source C, 3 ko)
Texttable est une bibliothèque C portable (unix, windows) conçue pour lire et écrire des fichiers texte délimités (type fichiers CSV ou fichiers tabulés) de manière sûre et très simple.
Vous pouvez la télécharger (version 1.2 du 26/10/2004) : texttable-1.2.tgz (Source C, 8 ko)
NetCDFStruct fournit des fonctions pour lire l'intégralité du contenu d'un fichier NetCDF et en disposer ensuite à travers une structure C. L'opération inverse (écriture du fichier NetCDF à partir de la structure) est aussi possible.
La définition de la structure peut être automatiquement générée à partir d'un fichier d'exemple.
Vous pouvez la télécharger (version du 25/2/2003) : netcdfstruct.tgz (Source C, 8 ko)
Une toute petite classe Python pour lire certains types de fichiers formatés en colonnes (style Fortran).
Vous pouvez le télécharger : FortranLineReader.py (Source Python, 3 ko)
Un module Python pour expérimenter la méthode CESTAC d'arithmétique stochastique. Voir la page de la librairie CADNA pour une implémentation performante pour C/C++/Fortran.
Vous pouvez le télécharger : py-cestac.tgz (Source C et Python, 5 ko)
Quelques lignes de C pour résoudre le problème du "Compte est bon" dans le jeu "Les Chiffres et les Lettres" d'Armand Jammot.
Ce petit programme a été écrit un soir pour illustrer l'utilisation d'Imake
lors d'une présentation de quelques minutes à ce sujet le lendemain.
(le but était juste de le compiler, pas qu'il fonctionne)
Il a ensuite été un peu modifié pour expliquer l'utilisation de CVS,
ce qui n'a rien arrangé... mais a généré plein de versions dans les
Id CVS.
Vous pouvez le télécharger : lesChiffres.tgz (Source C, 3 ko)
Un script-fu GIMP qui dessine une horloge analogique (taille et heure au choix) exactement comme celle utilisée pour le film d'Aladdin.
Vous pouvez le télécharger : horloge-analogique.scm (Source Script-fu, 3 ko)
Ce programme convertit une image en un fond d'agenda pour Palm Tungsten T3/TE. Il est nécessaire d'installer Khroma ou Screen Prefs et de l'utiliser pour fixer le mode d'affichage à 65536 couleurs. Il est aussi nécessaire d'installer F3T3AgendaBG pour changer le fond de la vue agenda.
Vous pouvez utiliser ce logiciel en ligne pour personaliser votre fond d'agenda de T3/TE.
Vous pouvez le télécharger : image2agenda.tgz (Source C, 178 ko)
Vous pouvez le télécharger : png2agenda.tgz (Source C, 221 ko)
Vous pouvez aussi télécharger quelques exemples de fonds (fichiers ZIP, env. 200 ko) :