|
[
Home
| Top ][ Présentation
| Ressources | Contact
]
Présentation
Julia?
C'est un langage de programmation de haut niveau, gratuit et
open source, pour le calcul scientifique. Il présente une
syntaxe proche de python et intègre les mécanismes pour
appeler des codes externes existants, notamment implémentés en
langage C.
Extrèmement facile à être pris en main par un public
informaticien (habitué à C, C++, Pascal, Ada, Java, lisp,
etc.) comme par un public mathématicien (habitué à Fortran,
Python, Mathlab, Octave, R, Sage, etc.), Julia m'est apparu
notamment intéressant en support aux enseignements en
optimisation.
Julia permet de réaliser rapidement des prototypes logiciel,
en amenant le concepteur de l'application à se concentrer sur
l'essentiel : les éléments algorithmiques du traitement à
réaliser. En outre et malgré qu'il s'agit un langage récent,
il dispose déjà de nombreuses librairies (numériques,
graphiques, calculs intensifs, etc).
jTeachOPT?
C'est un package (qui en est à ses débuts) implémentant en
Julia des algorithmes classiques en recherche opérationnelle
(problèmes d'optimisation combinatoire; algorithme
d'énumération implicite; heuristiques et métaheuristiques),
destiné à un usage pédagogique.
Il s'offre aux étudiants comme base de travail pour
accueillir d’autres composants/algorithmes exacts ou approché,
permet de travailler le calibrage de certains algorithmes de
type métaheuristiques et est destiné à s'étoffer en intégrant
d’autres problèmes d'optimisation combinatoires.
Mon « hello word » dans ce domaine étant le sac-à-dos
unidimensionnel en variables 01 (01UKP), c’est autour de ce
dernier que se construit ce package pour l'heure. Le package
est disponible sur GitHub, https://github.com/xgandibleux/jTeachOPT
. Toute personne intéressée par l'objectif de ce développement
est bienvenue pour y contribuer.
Dans la version actuelle (0.1.2), le package présente des
traitements de base sur le 01UKP (génération d'instance;
méthode de descente; relaxation linéaire), un recuit simulé
(avec deux voisinages pour le 01UKP), des sorties graphiques
(tracé du comportement du recuit simulé; tracé du schéma de
refroidissement).
Ce matériel sera utilisé à l'Université de Nantes dans le
cours "Metaheuristics" en M1 informatique parcours
"optimisation en recherche opérationnelle" à partir de la
rentrée 2016-2017.
Utilisation?
Un code Julia s'exécute soit en local (voir les
distributions sur http://julialang.org/),
soit en ligne (voir https://www.juliabox.org/).
jTeachOPT utilise le package PyPlot. Il sera
nécessaire d'ajouter à votre configuration locale ce package,
en invoquant sous l'interpréteur Julia la commande Pkg.add("PyPlot").
Pour exécuter jTeachOPT en local, il suffit de se placer
dans le répertoire de votre ordinateur où est localisé le
fichier jTeachOPTmain.jl et d'invoquer sous
l'interpréteur Julia la commande include("jTeachOPTmain.jl").
Après un court instant, le résultat de l'exécution de
l'algorithme apparait dans l'interpréteur Julia et un tracé
graphique résume l'ensemble des calculs dans une fenêtre
séparée. Enjoy!
[
Home
| Top ][ Présentation
| Ressources | Contact
]
Ressources
Julia
1) Le site de référence du langage
2) Programmer en Julia
3) Le volet « optimisation » sous Julia
4) Le volet « graphique » sous Julia
5) Quelques enseignements en optimisation où Julia
est utilisé
[
Home
| Top ][ Présentation
| Ressources | Contact]
Contact
Xavier Gandibleux
( Xavier[dot]Gandibleux[at]univ-nantes[dot]fr ).
Département d'informatique, Université de Nantes
2 rue de la Houssinière BP 92208, F44322 Nantes Cedex 03 -
FRANCE.
|