| 
          
            
               
                [
                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. 
               
                
             
           |