Orateurs :
- Mathieu Besançon (Centrale Lille et Polytechnique Montréal)
- François Févotte (TriScale Innov)
- Rémi Garcia (Université de Nantes)
- Benoît Legat (Université catholique de Louvain)
- Pierre Navaro (IRMAR Rennes)
- Francois Pacaud (Artelys FRANCE)
- Xavier Pillet (Université de Nantes)
- Anthony Przybylski (Université de Nantes)
- Didier Robbes (Université de Nantes)
- Charlie Vanaret (Fraunhofer ITWM kaiserslautern)
- François Vanderbeck (Atoptima)
- Diego Javier Zea (Sorbonne Université)
Planning.
Les exposés seront présentés en français.
17 Juin, 9:00-09:20 – Accueil
17 Juin, 9:20-18:00 – Programme scientifique
Programme scientifique (amphithéatre bâtiment 34) :
09:20 – 09:30 : Ouverture : Xavier Gandibleux, Frédéric Hérau (Directeur de la Fédération Recherche Mathématiques des Pays de Loire) et Claude Jard (Directeur du Laboratoire des Sciences du Numérique).
Exposé
09:30 – 12:20 : Tutoriaux
Chair: Marc Sevaux (Université Bretagne-Sud)
- 09:30 – 10:20 :
Mathieu Besançon (Centrale Lille et Polytechnique Montréal)
Co-auteurs : JuliaGraphs
LightGraphs, structure, abstractions and algorithms.LightGraphs has become the central package for working with graphs in Julia, exposing an interface for both directed and undirected graphs, a concrete and simple implementation of this interface and a set of essential graph algorithms. After a quick tour of the package features, we will show how algorithms developed using the interface work with different graph types, and how to develop our own specialized graph type as a user.
Exposé | vidéo | https://github.com/JuliaGraphs
- 10:30 – 11:20 :
François Vanderbeck (Atoptima)
Coluna.jl : une implémentation générique d’un algorithme de « branch-and-price-and-cut » accessible via l'interface de modélisation JuMP.Ce tutoriel est destiné à accompagner les utilisateurs de Coluna.jl dans la mise en place d’une résolution par génération de colonnes d’un problème structuré d’optimisation linéaire en variables entières.
Exposé | vidéo | https://github.com/atoptima/Coluna.jl
- 11:30 – 12:20 :
Anthony Przybylski (Université de Nantes)
Co-auteurs : vOpt
Optimisation combinatoire multi-objectif : méthodes de résolution exacte et solveur vOpt.Ce tutoriel a pour objet l’optimisation combinatoire multi-objectif et présente les définitions, propriétés et grandes lignes de quelques méthodes de résolution exacte. Une distinction sera faite entre les méthodes dites génériques s’appuyant fortement sur l’utilisation d’un solveur MILP, et les méthodes spécifiques qui sont dédiées à un problème d’optimisation combinatoire particulier. Cette distinction se retrouve naturellement dans les deux packages du solveur vOpt, dont l’utilisation sera présentée.
vidéo | https://github.com/vOptSolver
12:20 – 13:45 : Pause repas
13:45 – 15:00 : Session régulière 1
Chair: François Vanderbeck (Atoptima)
- 13:45 – 14:15 :
Pierre Navaro (Institut de Recherche Mathématique de Rennes)
Résolution numérique du système de Vlasov-Poisson en JuliaLe modèle cinétique de Vlasov-Poisson est un système d’équations aux dérivées partielles qui permet de modéliser l’évolution d’une distribution de particules chargées dans le temps et l’espace des phases. Ce modèle est couramment utilisé dans la simulation des plasmas impliqués dans le mécanisme de la fusion magnétique. Dans un premier temps, je montre un exemple de programmation en Julia d’une équation d’advection dans un espace plan à l’aide d’une méthode spectrale avec les différentes étapes de l’optimisation du code. Nous verrons ensuite l’exemple du système de Vlasov-Poisson résolu numériquement à l’aide de la méthode semi-lagrangienne.
Cette présentation est l’occasion de discuter des avantages et des inconvénients de Julia dans la résolution numérique d’équations aux dérivées partielles par rapport à d’autres langages couramment utilisés : Fortran, Matlab et Numpy.
Exposé | vidéo - 14:15 – 14:45 :
Benoît Legat (Université catholique de Louvain)
Co-auteurs : Chris Coey (MIT), Robin Deits (MIT), Joey Huchette (Rice University), Amelia Perry (MIT) et Tillmann Weisser (Los Alamos National Laboratory)
L'extension de JuMP à la programmation Sum-of-Squares.La version 0.19 de JuMP basée sur MathOptInterface (MOI) a été conçue pour être étendue de façon naturelle afin que de nouvelles classes de problèmes d’optimization puissent être modelisées avec JuMP. Les paquetages PolyJuMP.jl et SumOfSquares.jl étendent JuMP en permettant de créer des variables polynômiales et des contraintes d’égalité ou de positivité sur des polynômes. Le système de bridges de MOI est exploité pour exprimer le cone des polynômes Sum-of-Squares en l’intersection entre un sous-espace affine et le cone des matrices semi-définie positive.
Exposé | vidéo | JuMP — MathOptInterface — PolyJuMP — SumOfSquares - 14:45 – 15:00 :
Xavier Gandibleux (Université de Nantes)
Table ronde.Moment d’échange d’information et de discussion avec l’ensemble des participants.
Exposé | vidéo
15:15 – 16:50 : Session régulière 2
Chair: Frédéric Goualard (Université de Nantes)
- 15:15 – 15:45 :
Francois Pacaud (Artelys France)
Solving large-scale NLP problems with JuMP and Knitro.Artelys Knitro is a general purpose solver for nonlinear optimization problems (NLP). Knitro 11.0 release introduced a new modeling API allowing to incrementally build non-linear optimization models and provide problem structure to Knitro. This recent update enables a better integration of Knitro with Julia modeling tools, especially the MathOptInterface layer whose the Julia modeling language JuMP depends on. In this talk, we will explain how to specify NLP models in Knitro with MathOptInterface, and how the release of JuMP 0.19 enables more coarse grain control on Knitro internals at the user level. We illustrate numerically on a benchmark the performance gains allowed by the new MathOptInterface wrapper of Knitro. We will also discuss future improvements of the Knitro Julia interface.
Exposé | vidéo | Knitro-Zoo - 15:45 – 16:15 :
François Févotte (TriScale Innov)
Co-auteurs : Pascal Benchimol, Laurent Plagne
Quelques expériences autour de l'arithmétique flottante en Julia.L’arithmétique flottante génère des erreurs d’arrondi qui impactent tous les algorithmes informatiques opérant sur des flottants. Les algorithmes d’optimisation mathématique s’appuyant sur des flottants n’échappent pas à cette règle et un contrôle de l’impact des erreurs d’arrondi sur les résultats numériques est nécessaire pour en garantir la pertinence. Le langage Julia qui facilite (1) la définition de nouveaux types numériques, et (2) la méta-programmation de haut niveau, permet le développement rapide d’outils tels que la bibliothèque StochasticArithmetic.jl, qui permettent de contrôler les erreurs d’arrondi pour n’importe quel algorithme écrit en Julia. A titre d’exemple, nous montrerons comment StochasticArithmetic.jl peut être utilisé pour analyser la stabilité d’une implémentation de l’algorithme du simplexe. En guise d’ouverture, nous montrerons comment des outils externes comme le logiciel Open Source Verrou peuvent étendre ce type de vérification aux cas de logiciels non intégralement implémentés en Julia mais faisant appel à des bibliothèques externes.
vidéo | StochasticArithmetic.jl - 16:15 – 16:45 :
Charlie Vanaret (Fraunhofer ITWM kaiserslautern)
Solving distillation column equilibrium using interval methods.Nonlinearly constrained optimization problems naturally arise in distillation processes, a branch of chemical engineering. Distillation columns separate a liquid mixture into its component parts, based on the differences of their volatilities. Vapor-liquid equilibrium holds at every stage of the column and is modeled by a set of nonlinear equations, the so-called MESH equations. Chemical companies are faced with the challenge of maximizing the distillate purity or minimizing the heat duty, subject to the MESH equations.
In this talk, we briefly introduce MESH equations that govern a distillation column, then we focus on interval methods for solving global optimization problems, even in the presence of roundoff errors. We present preliminary results for binary mixtures using the interval arithmetic library in Julia.
vidéo
16:45 – 17h15 : Pause café et poster session
- Analyzing protein structure and evolution using Julia with MIToS.jl par Diego Javier Zea (Sorbonne Université – LCQB UMR 7238).
- Heuristique Feasibility Pump pour problèmes en variables 01 par Rémi Garcia (Université de Nantes)
Poster - Réseaux de neurones à valeurs complexes par Xavier Pillet (Université de Nantes)
Poster - Algorithmes de chemins multi-objectif en Julia par Didier Robbes (Université de Nantes)
Poster
17:15 – 18:00 : Ateliers
- Atelier 1 :
Using Knitro efficiently with JuMP par Francois Pacaud (Artelys France)
(résumé)This session is particularly devoted to the resolving of large-scale non-linear problems with JuMP and Knitro. We will present how to leverage Knitro to solve difficult optimization problems, such as:
– Powerflow models;
– MINLP problems;
– (MI)SOCP problems;
– Optimal control problem;
– MPEC problems;
– and others…
Matériel - Atelier 2 :
Getting started with Julia tools for reproducible science par Mathieu Besançon (Centrale Lille et Polytechnique Montréal)
(résumé)Julia comes with different tools helping us create new projects, managing our dependencies and making our code reproducible anywhere. This tutorial will comprise an overview of best software practices to manage projects in computational science and hands-on tools of the Julia ecosystem. We will start with a crash-course in git, the dominant version control system for code, start a Julia package from scratch, and add some code as a library or a notebook. Finally, we will see how to interact and contribute to open-source Julia projects on GitHub.
Matériel
- Atelier 3 :
Premiers pas de l’utilisateur de Coluna dans l’implémentation d’une approche de génération de colonnes par François Vanderbeck (Atoptima)
(résumé)résumé de l’atelier.
Matériel
18:00 : Cocktail de clôture de la journée