Un ingénieur en recherche opérationnelle traduit un problème de décision en modèle mathématique, puis le fait résoudre par un solveur ou par un algorithme qu'il écrit. Il travaille sur des plannings d'équipes, des tournées de véhicules, des affectations de ressources, de l'ordonnancement ou des plans de production. Ses outils : la programmation linéaire en nombres entiers, les solveurs Gurobi, CPLEX, HiGHS ou OR-Tools, les métaheuristiques, la théorie des graphes, Python ou C++. On le recrute dans les équipes data des grands groupes industriels et de transport, chez des éditeurs de logiciels de planification et dans des cabinets spécialisés.
Le diplôme dit peu de choses. Beaucoup de candidats ont suivi un master ou une thèse en optimisation et récitent le simplexe, sans avoir vu un modèle tourner une heure sur des données réelles. L'écart apparaît dès qu'on parle d'une contrainte mal écrite qui affaiblit la relaxation, d'un solveur qui répond infaisable la veille d'une mise en production, ou d'un planning qu'il faut rendre en trente secondes.
Un modèle exact qui tourne la nuit et une heuristique qui répond en secondes ne demandent pas le même profil : faites préciser au manager le temps de calcul accepté en production et la taille des instances. Le PDF planifie des techniciens d'intervention.
Méthodes et solveurs d'un ingénieur en recherche opérationnelle
Programmation linéaire et en nombres entiers
La base du métier. Un objectif à minimiser ou maximiser, des contraintes linéaires et des variables continues ou entières, comme ouvrir ou non un entrepôt. Les variables entières rendent le problème beaucoup plus dur. La qualité de la formulation décide souvent si le modèle se résout en une minute ou jamais.
Solveurs commerciaux : Gurobi, CPLEX, FICO Xpress
Les solveurs les plus rapides sur les problèmes difficiles en nombres entiers. Ils sont payants, avec des licences qui pèsent dans le choix d'architecture quand le moteur tourne dans des conteneurs ou dans le cloud. Leurs paramètres et leurs journaux d'exécution doivent être familiers au candidat.
Solveurs open source : HiGHS, SCIP, CBC
HiGHS, sous licence MIT, s'est imposé pour la programmation linéaire et les problèmes en nombres entiers de taille moyenne. SCIP est passé sous licence Apache 2.0, ce qui facilite un usage commercial. Ils évitent un coût de licence, au prix de temps de résolution souvent plus longs sur les cas durs.
OR-Tools et la programmation par contraintes
La boîte à outils open source de Google. Son solveur CP-SAT traite des problèmes à variables entières uniquement et excelle sur l'ordonnancement et les contraintes logiques. OR-Tools fournit aussi une bibliothèque de tournées de véhicules utilisée en production par de nombreuses équipes.
Langages de modélisation
Pyomo, PuLP, JuMP en Julia, linopy ou l'API Python de Gurobi servent à écrire le modèle sans dépendre d'un seul solveur. Le choix pèse sur le temps de construction du modèle, qui dépasse parfois le temps de résolution sur les gros problèmes.
Heuristiques et métaheuristiques
Recherche locale, recuit simulé, recherche tabou, recherche à grand voisinage (ALNS) : des méthodes qui trouvent vite de bonnes solutions sans garantie d'optimalité. Des moteurs comme Hexaly, l'ancien LocalSolver, ou Timefold, issu d'OptaPlanner, les intègrent. Elles prennent le relais quand le problème est trop gros pour une méthode exacte.
Décomposition
Génération de colonnes, décomposition de Benders, relaxation lagrangienne : des techniques pour découper un très gros problème en morceaux résolus séparément. Elles servent aux plannings d'équipages, à la découpe ou à la planification sur plusieurs niveaux. C'est le marqueur d'un profil senior.
Théorie des graphes
Plus courts chemins, flots, couplages et arbres couvrants sont présents dans presque tous les problèmes de réseau, de transport ou d'affectation. Plusieurs de ces problèmes se résolvent exactement en temps court, à condition de les reconnaître.
Industrialisation : Python, C++, API
Un moteur d'optimisation vit dans une application : service web, limites de temps, journalisation, tests de non-régression sur des jeux d'instances. Python domine pour la modélisation, le C++ revient pour les heuristiques où les boucles pèsent lourd.
Les postes se trouvent dans les équipes data ou R&D des groupes de transport, d'énergie, d'industrie et de distribution, chez les éditeurs de logiciels de planification et dans les cabinets de conseil spécialisés. Certaines équipes cherchent un profil de recherche qui conçoit des méthodes de décomposition, d'autres un ingénieur qui met en service et maintient un moteur existant. L'intitulé varie : ingénieur RO, ingénieur optimisation, data scientist recherche opérationnelle. Le dialogue avec les planificateurs prend une large part du temps, car les règles métier sont rarement écrites. Selon le poste, le candidat travaille sur un solveur commercial déjà acheté ou doit défendre le choix d'un solveur open source.
Les compétences à vérifier chez un ingénieur optimisation
- Modélisation linéaire et en nombres entiers
- Réglage et diagnostic des solveurs
- Heuristiques, métaheuristiques et programmation par contraintes
- Méthodes de décomposition
- Algorithmique des graphes
- Industrialisation d'un moteur d'optimisation
Formulation, solveur, heuristique : cinq questions pour l'ingénieur RO
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · junior à confirmé
Comment écrivez-vous dans un modèle en nombres entiers la règle : si l'entrepôt est ouvert, il expédie au plus 500 palettes, sinon rien ?
Une bonne réponseUne variable binaire d'ouverture y et la contrainte x ≤ 500 y, avec un coût fixe d'ouverture dans l'objectif. Il précise que le coefficient doit être la vraie capacité : un grand M choisi trop grand affaiblit la relaxation linéaire et crée des difficultés numériques. Il cite les contraintes d'indicateur de Gurobi ou CPLEX comme alternative.
Signal d'alerteUn test « if » dans le code Python autour de la contrainte, ou un M fixé à un milliard « pour être tranquille ».
Question 2 · confirmé
Votre modèle en nombres entiers tourne depuis une heure avec un écart de 8 % entre la meilleure solution et la borne. Que regardez-vous ?
Une bonne réponseLe journal du solveur, pour savoir qui bloque : la meilleure solution qui ne progresse plus ou la borne qui stagne. Une borne qui stagne indique une relaxation faible, à renforcer par une meilleure formulation, des M plus serrés, des inégalités valides ou la rupture des symétries. Une solution qui stagne appelle une solution de départ issue d'une heuristique ou des paramètres orientés vers la recherche de solutions. Il demande aussi si 8 % est acceptable pour le métier.
Signal d'alerte« On prend une machine plus puissante », ou confondre la meilleure solution trouvée et la borne.
Question 3 · confirmé
Le solveur répond « infaisable » sur les données de production d'hier. Comment trouvez-vous la contrainte en cause ?
Une bonne réponseIl calcule un sous-ensemble irréductible de contraintes incompatibles (IIS dans Gurobi, conflict refiner dans CPLEX), ou relâche les contraintes avec des variables d'écart pénalisées pour voir lesquelles cèdent. Il vérifie les données (une demande supérieure à la capacité totale, une fenêtre horaire impossible) et présente aux planificateurs la règle à assouplir. Il conçoit ensuite le modèle avec des contraintes souples là où le métier l'accepte.
Signal d'alerteRetirer les contraintes une par une au hasard, ou renvoyer un écran vide aux utilisateurs.
Question 4 · confirmé
Pour des tournées de 200 livraisons avec fenêtres horaires, choisissez-vous un modèle exact ou une métaheuristique ?
Une bonne réponseÀ cette taille, un modèle compact en nombres entiers ne se résout pas dans un temps opérationnel ; les méthodes exactes de type branch-and-price relèvent de la recherche. En pratique : une métaheuristique (ALNS, recherche locale) ou la bibliothèque de tournées d'OR-Tools. Il mesure la qualité obtenue avec une borne inférieure, sur des petites instances résolues exactement, ou sur des jeux de référence comme les instances de Solomon.
Signal d'alerte« Le modèle exact donne l'optimum, donc toujours le modèle exact », ou une métaheuristique choisie sans aucune mesure de qualité.
Question 5 · senior
Expliquez la génération de colonnes sur un problème de rotations d'équipages ou de découpe.
Une bonne réponseUn problème maître choisit parmi des colonnes (rotations, motifs de découpe) ; on en résout la relaxation linéaire sur un sous-ensemble restreint. Les variables duales alimentent un sous-problème de tarification, sac à dos ou plus court chemin sous contraintes de ressources, qui cherche une colonne de coût réduit négatif. On s'arrête quand il n'en trouve plus. La solution entière s'obtient par branch-and-price ou, de façon heuristique, en résolvant le maître en nombres entiers sur les colonnes générées.
Signal d'alerteConfondre avec la création de variables explicatives en machine learning, ou ne pas savoir à quoi servent les duales.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Embaucher en recherche opérationnelle : réponses aux recruteurs
Ingénieur recherche opérationnelle ou data scientist : quel profil pour un projet d'optimisation ?
Le data scientist prédit : une demande, un temps de trajet, une probabilité de panne. L'ingénieur en recherche opérationnelle décide : quel véhicule part où, qui travaille quand, combien produire. Beaucoup de projets combinent les deux, la prévision servant d'entrée au modèle d'optimisation. Si le cœur du besoin est un planning ou une affectation sous contraintes, cherchez un profil RO et vérifiez en entretien qu'il sait formuler un modèle en nombres entiers.
Faut-il exiger un doctorat en recherche opérationnelle ?
Pas pour tous les postes. Un doctorat se justifie quand l'équipe conçoit des méthodes avancées, comme la génération de colonnes ou la décomposition sur de très gros problèmes. Pour mettre en service et faire évoluer un moteur existant, un master en optimisation et une expérience de production suffisent souvent. Dans les deux cas, jugez sur la capacité à formuler un modèle juste et à expliquer pourquoi il se résout lentement.
Le candidat connaît CPLEX, nous utilisons Gurobi : est-ce un problème ?
Rarement. Les solveurs commerciaux reposent sur les mêmes principes : séparation et évaluation, plans coupants, heuristiques internes. Les paramètres et l'API diffèrent, ce qui s'apprend en quelques semaines. Un passage d'un solveur exact à la programmation par contraintes, ou l'inverse, demande davantage d'adaptation. Vérifiez surtout que la personne sait lire le journal d'exécution et diagnostiquer un modèle lent, quel que soit l'outil.
Quelle forme donner au test technique d'un ingénieur optimisation ?
Un petit problème à formuler en direct fonctionne bien : une affectation avec quelques règles métier, un ordonnancement sur une machine, une tournée simple. L'exercice porte sur la formulation écrite au tableau ou sur papier, puis sur la discussion de ce qui se passerait à grande échelle. Un exercice de code à la maison, avec un solveur open source comme HiGHS ou OR-Tools, complète utilement pour un poste orienté production.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.




