Simulation multi-agents à large échelle

Par Jean-Daniel Kant , 9 janvier, 2017

Les systèmes multi-agents sont de plus en plus utilisés pour étudier des systèmes complexes et les simuler.

Ce projet s’inscrit dans le cadre du projet WorkSim dirigé par Jean-Daniel Kant (équipe Systèmes Multi-Agents du LIP6), et Gérard Ballot, professeur en économie à l’université Paris 2. WorkSim (Goudet et al., 2016) est un simulateur Multi-Agents (MA) du marché du travail français. Il est composé d’agents logiciels en interaction qui modélisent le comportement des individus et des entreprises. Les paramètres de WorkSim sont automatiquement calibrés par un algorithme puissant (CMA-ES pour reproduire les résultats du marché réel (e.g. taux de chômage) et permet d’expliquer ces résultats en analysant les comportements des agents.

C’est actuellement le modèle le plus complet d’un marché du travail et nous l’avons utilisé pour analyser les raisons du chômage en France et pour évaluer plusieurs politiques de l’emploi (contrat de génération, réduction des charges, etc.). Récemment, nous avons été les seuls à proposer – grâce à WorkSim – une évaluation quantitative de la loi travail « El Khomri » (Kant et al. 2016 ; voir le site http://worksim.lip6.fr pour plus de détails).

----

WorkSim est écrit sous la forme d’un gros code (50 000 lignes) en Java. Les simulations sont réalisées sur le cluster du LIP6 (48 nœuds) mais il faut encore 2 à 3 jours pour obtenir une calibration, avec 20 000 agents (i.e. une reproduction du marché réel à l’échelle 1/2300).

----

<a> Objectifs du projet </a>

Nous souhaitons pouvoir augmenter le nombre d’agents pour aller vers une simulation à large échelle (au delà de 100 000 agents), afin par exemple d’avoir plus de grandes entreprises dans le système.

Nous souhaitons aussi réduire le temps de calcul d’une simulation, pour obtenir une calibration dans un temps plus court.

----

<a> Méthode </a>

Nous proposons la méthode suivante :

<ol>
<li> analyse minutieuse du code Java de WorkSim, afin de déterminer les parties du code qui sont les plus lentes ; </li>

<li> optimisation des parties lentes. Pour ce faire, on proposera des solutions qui seront discutées et validées par l’encadrant, parmi lesquelles on peut citer :

<ul>
<li> l’optimisation de Java ; </li>
<li> le passage des parties lentes en C++ ; </li>
<li> la parallélisation du calcul (en Java, en C++ ou en Scala). </li>
</ul>
</li>

<li> Tests, expérimentations, et analyse des performances. Pour les tests et selon leurs goûts, les étudiant(e)s pourront par exemple étudier une politique ou analyser le marché du travail français.</li>

</ol>
----
<a> Pré-requis </a>
• Maîtrise de Java et de la programmation
• La connaissance de C++ et/ou Scala est un plus (mais non obligatoire)
• Connaissances de base en génie logiciel (analyse, conception, tests…)
• Un intérêt pour les systèmes multi-agents et les applications économiques

----

N’hésitez pas à me contacter pour toute information complémentaire.

Encadrant
Jean-Daniel Kant
Nombre d'étudiants
4
Attribué
Oui
Obsolète
Non
Tags