Optimally
EN·DE·FRDefault locale: EN
Contact
Projets sélectionnés/Santé publique · Aide à la décision/2024

OFSP (Office fédéral de la santé publique)

Restrictions pandémiques ciblées qui réduisent ~22 % des infections à coût économique identique

Une frontière de Pareto de 15 politiques de restriction d'activité, calculée de bout en bout sur la population synthétique de 814 000 agents du canton de Vaud — le genre de décision résolue par âge qu'un modèle SEIR grossier ne peut pas livrer

Les confinements fonctionnent. Ils écrasent aussi le PIB. La question difficile, celle que chaque gouvernement a dû trancher dans le noir, est comment équilibrer les deux : quelles activités, pour quelles tranches d'âge, dans quelles régions restreindre, et de combien.

Nous avons construit une méthodologie qui transforme cette question en un problème d'optimisation multi-objectif. Un simulateur à base d'agents calcule les résultats épidémiologiques ; un algorithme Variable Neighborhood Search balaie l'espace des politiques ; la sortie est une frontière de Pareto de stratégies de restriction, des arbitrages explicites entre santé et économie que les décideurs peuvent réellement défendre.

~22 %
infections réduites à coût économique identique grâce à un meilleur ciblage par âge (Solution 3 vs 4)
15 politiques
frontière Pareto-optimale livrée, trajectoire complète sur 60 jours pour chacune
814 000 agents
population synthétique du canton de Vaud, simulation individu-centrée à résolution 30 min
9 × 4
segments d'âge × scénarios de restriction optimisés conjointement par VNS

Le défi

La plupart des modèles pandémiques prédisent la transmission. Peu aident à choisir entre alternatives de politique. Aucun travail existant ne combinait un simulateur épidémique à base d'agents avec un véritable optimiseur ciblant des réductions d'activité et arbitrant explicitement entre coûts sanitaires et économiques.

Nos partenaires avaient besoin d'un cadre ancré dans le comportement d'activité désagrégé, travail, école, loisirs, courses, et capable de produire un menu de politiques défendable, pas une estimation ponctuelle unique.

Notre démarche

Nous avons modélisé la propagation de l'épidémie sur une population suisse synthétique avec un Individual-Based / Agent-Based Model, les restrictions étant implémentées comme des réductions ciblées de taux d'activité par segment de population (âge, géographie, statut socio-économique).

Nous avons enveloppé le simulateur dans une boucle d'optimisation Variable Neighborhood Search, avec deux fonctions objectifs en compétition : une perte sanitaire (cas plus décès pondérés) et une perte économique (coût des politiques). VNS balaie efficacement l'espace des politiques, échappant aux optima locaux que la recherche par grille et les méthodes de gradient verrouilleraient.

La sortie est une frontière de Pareto complète de politiques, chacune un vecteur de paramètres de réduction d'activité, avec les courbes épidémiques simulées soutenant chaque solution.

Le résultat

Livrable : une frontière de Pareto de 15 politiques de restriction pandémique pour la population synthétique de 814 000 agents du canton de Vaud, chaque politique associée à une trajectoire épidémique simulée complète sur 60 jours. Calculée par Variable Neighborhood Search enveloppant un simulateur individu-centré à résolution 30 min sur le serveur Jed de l'EPFL, en environ 6 heures de wall-clock.

Le résultat de ciblage par âge : la Solution 3 (restreindre le travail pour les 30–39 ans, jours 2–59) atteint ~360 000 jours·infectés à 72 M CHF. La Solution 4 (restreindre le travail pour les 40–49 ans plus une restriction de 20 % sur les 70–79 ans, même fenêtre) coûte 4 % de moins à 69 M CHF mais laisse les infections monter à ~460 000, environ 22 % de plus. Restreindre la cohorte en âge de travailler qui passe réellement par les couches lieu-de-travail et trajet du simulateur a un impact matériellement plus fort que d'étaler les restrictions sur les cohortes plus âgées — le type de contenu décisionnel qu'un modèle SEIR grossier ne peut pas faire émerger.

Second livrable : la méthodologie elle-même. Injectez les paramètres de transmission d'un autre pathogène, échangez les définitions d'activité, et la même boucle VNS-sur-IBM produit une nouvelle frontière sans tout reconstruire.

Plongée technique

Le modèle derrière le résultat.

Le modèle

Le problème de politique pandémique n'a pas un objectif unique. Il en a deux, et ils se combattent : un coût sanitaire (infections et décès) et un coût économique (production perdue à cause des restrictions). Les variables de décision s'appuient sur une structure de population non triviale : J segments d'âge et S scénarios de restriction discrets, plus les jours de début et de fin de la période de restriction. Le simulateur est une boîte noire (un modèle individu-centré tournant à résolution de 30 minutes sur la population synthétique du canton de Vaud), donc l'optimiseur doit traiter les évaluations d'objectif comme des appels oracle coûteux et choisir ses mouvements de politique avec soin.

Variables de décision. Pour chaque segment d'âge j, choisir un des S scénarios de restriction ; choisir un jour de début et un jour de fin uniques pour la période de restriction sur l'horizon de simulation de T_sim jours. Dans notre exécution : J = 9 groupes d'âge, S = 4 scénarios, T_sim = 60 jours.

Formulation bi-objectif. Nous ne réduisons pas les deux pertes en un scalaire pondéré (quiconque fond ‘morts' et ‘francs' en un seul nombre fait le jugement de valeur, pas le modèle). Nous traçons la frontière de Pareto complète et laissons le décideur choisir.

Perte sanitaire. C_cas est le nombre cumulé de décès issu de la simulation d'agents ; I_τ est le nombre d'individus infectés au jour τ ; κ ≥ 0 règle le poids relatif des jours-infection face aux décès. Les deux termes sont des sorties de la boîte noire IBM.

Perte économique. α_i est le coût marginal (CHF / personne / jour) de restreindre l'activité i ∈ A (travail, éducation, loisirs, courses, …) ; H_i(s) sont les heures totales d'activité i basculées vers ‘maison' sous les scénarios choisis ; ε est la part des emplois non télétravaillables et ψ la perte d'efficacité pour ceux qui le sont. Calibré sur le canton de Vaud (PIB 62 Mds CHF, population 814 k, coût travail 344 CHF / personne / jour).

Cardinalité de l'espace des solutions. L'énumération exhaustive est sans espoir : à environ 30 secondes de simulation IBM par évaluation de politique, le brute force prendrait de l'ordre de 450 années CPU. Les 6 heures de wall-clock que nous avons effectivement exécutées correspondent à quelques milliers d'évaluations intelligentes.

Voisinages VNS. N^(1) incrémente ou décrémente le scénario d'un seul segment d'âge ; N^(2) décale le jour de début ou de fin d'un ; N^(3) translate toute la période de restriction. VNS tourne entre les voisinages quand il bloque, ce qui lui permet d'échapper aux optima locaux qu'une descente par coordonnées verrouillerait.

L'optimiseur complet est la boucle VNS enveloppant la boîte noire IBM : proposer une politique dans le voisinage courant, lancer le simulateur, évaluer les deux pertes, accepter ou rejeter par Pareto-dominance, faire tourner les voisinages en cas de stagnation. Comme chaque évaluation est coûteuse, la seule mesure d'efficacité raisonnable est le nombre d'évaluations par point Pareto, d'où l'importance des mouvements temporels (un simple décalage de +1 jour paraît moins coûteux mais déplace souvent plus la courbe qu'un flip de scénario).

Benchmark

Quatre solutions représentatives de la frontière de Pareto (15 au total), simulation à 60 jours sur la population synthétique du canton de Vaud (814 k agents, 9 segments d'âge × 4 scénarios). Perte sanitaire en personnes·jours infectées sur l'horizon ; perte économique en CHF étant donné les coûts d'activité calibrés.

Solution ParetoPerte sanitaire (pers·jours)Perte économique (CHF)Groupe(s) ciblé(s)Fenêtre de restriction
1, santé d'abord~200 000105 M30–39 (travail), 50–59 (60 % toutes)60 jours complets
2, économie d'abord~700 00015 M70–79 (léger, non-actifs)jour 1 → 59
3, équilibré~360 00072 M30–39 (travail)jour 2 → 59
4, équilibré, âge décalé~460 00069 M40–49 (travail), 70–79 (20 %)jour 2 → 59

La frontière porte un vrai contenu décisionnel. Comparez les solutions 3 et 4 : perte économique quasi identique (72 M vs 69 M CHF), mais la solution 3 contrôle les infections 28 % mieux en restreignant la cohorte travail 30–39 plutôt que 40–49. C'est le genre de détail qu'un modèle SEIR grossier ne peut pas faire émerger, parce qu'il ne sait pas qui est sur quel lieu de travail à 10h30 un mardi. Le schéma dominant sur toute la frontière : les restrictions sur la population active réduisent le plus efficacement la perte sanitaire, tandis que restreindre la cohorte des retraités réduit la perte économique quasi gratuitement (ils ne contribuent pas au PIB) mais ne déplace que marginalement la courbe d'infection.

Tiré du dossier

Figure 1 du rapport : incidence COVID-19 par groupe d'âge en France pendant la première vague (avril–juin 2020, cohortes de dix ans). L'observation empirique motivante : l'incidence varie nettement avec l'âge, 60–69 et 70–79 portent des ordres de grandeur de tests positifs plus que 0–9, ce qui signifie que les restrictions uniformes gaspillent à la fois la protection sanitaire et l'activité économique. Les données suisses n'étaient pas assez granulaires à l'époque, donc la France a servi de proxy.
Figure 1 du rapport : incidence COVID-19 par groupe d'âge en France pendant la première vague (avril–juin 2020, cohortes de dix ans). L'observation empirique motivante : l'incidence varie nettement avec l'âge, 60–69 et 70–79 portent des ordres de grandeur de tests positifs plus que 0–9, ce qui signifie que les restrictions uniformes gaspillent à la fois la protection sanitaire et l'activité économique. Les données suisses n'étaient pas assez granulaires à l'époque, donc la France a servi de proxy.
Figure 3 du rapport : la boucle interne du modèle IBM (individu-centré). À chaque pas de 30 minutes, le modèle résout d'abord les guérisons, puis les infections par lieu (école, lieu de travail, magasin) à partir des caractéristiques socio-économiques et de santé des agents présents, puis une politique de test qui marque les positifs et déclenche l'auto-isolement. Le levier politique est l'emploi du temps d'activités amont issu de MATSim, les restrictions entrent dans le système en réassignant des activités à ‘maison' pour le segment ciblé.
Figure 3 du rapport : la boucle interne du modèle IBM (individu-centré). À chaque pas de 30 minutes, le modèle résout d'abord les guérisons, puis les infections par lieu (école, lieu de travail, magasin) à partir des caractéristiques socio-économiques et de santé des agents présents, puis une politique de test qui marque les positifs et déclenche l'auto-isolement. Le levier politique est l'emploi du temps d'activités amont issu de MATSim, les restrictions entrent dans le système en réassignant des activités à ‘maison' pour le segment ciblé.
Figure 4 du rapport : la boucle externe VNS. À chaque itération, l'algorithme propose un mouvement de politique (flip de scénario pour un groupe d'âge, ou décalage temporel de la fenêtre de restriction), réassigne les emplois du temps en conséquence, fait avancer l'IBM, et recalcule les deux pertes. Les propositions Pareto-dominées sont rejetées ; les non-dominées étendent la frontière. La stagnation déclenche un changement de voisinage, le mouvement qui débloque l'algorithme.
Figure 4 du rapport : la boucle externe VNS. À chaque itération, l'algorithme propose un mouvement de politique (flip de scénario pour un groupe d'âge, ou décalage temporel de la fenêtre de restriction), réassigne les emplois du temps en conséquence, fait avancer l'IBM, et recalcule les deux pertes. Les propositions Pareto-dominées sont rejetées ; les non-dominées étendent la frontière. La stagnation déclenche un changement de voisinage, le mouvement qui débloque l'algorithme.
Figure 5 du rapport : la frontière de Pareto dans l'espace (perte sanitaire, perte économique) après 6 heures de VNS sur le serveur Jed de l'EPFL. Les points bleus sont les 15 politiques Pareto-optimales retenues ; les gris sont les solutions dominées explorées et rejetées. Notez le coude net : une petite concession économique près du bas de la courbe achète une amélioration sanitaire disproportionnée. Au-delà du coude, on commence à payer linéairement pour des réductions marginales d'infections.
Figure 5 du rapport : la frontière de Pareto dans l'espace (perte sanitaire, perte économique) après 6 heures de VNS sur le serveur Jed de l'EPFL. Les points bleus sont les 15 politiques Pareto-optimales retenues ; les gris sont les solutions dominées explorées et rejetées. Notez le coude net : une petite concession économique près du bas de la courbe achète une amélioration sanitaire disproportionnée. Au-delà du coude, on commence à payer linéairement pour des réductions marginales d'infections.
Figure 6 du rapport : trajectoires d'infection simulées pour les quatre solutions Pareto mises en avant sur l'horizon de 60 jours. Les huit premiers jours sont semés avec une courbe d'introduction fixe (100, 200, …, 800 cas) pour que les exécutions partent d'un état épidémiologique comparable. La solution 2 (économie d'abord) laisse la courbe grimper en vague de manuel ; la solution 1 (santé d'abord) l'aplatit presque entièrement ; les solutions 3 et 4 sont au milieu, la restriction ciblée 30–39 travail de la solution 3 surpassant visiblement la variante 4 à coût économique similaire.
Figure 6 du rapport : trajectoires d'infection simulées pour les quatre solutions Pareto mises en avant sur l'horizon de 60 jours. Les huit premiers jours sont semés avec une courbe d'introduction fixe (100, 200, …, 800 cas) pour que les exécutions partent d'un état épidémiologique comparable. La solution 2 (économie d'abord) laisse la courbe grimper en vague de manuel ; la solution 1 (santé d'abord) l'aplatit presque entièrement ; les solutions 3 et 4 sont au milieu, la restriction ciblée 30–39 travail de la solution 3 surpassant visiblement la variante 4 à coût économique similaire.

Techniques

  • Variable Neighborhood Search (VNS)
  • Modélisation à base d'agents / d'individus
  • Optimisation multi-objectif
  • Exploration de frontière de Pareto
  • Segmentation de population

Stack

  • Python
  • Paquet VNS de Biogeme
  • Simulateur Individual-Based (IBM)
  • Emplois du temps MATSim

Un problème de ce type ?

Nous serions ravis d'en entendre parler.

contact@optimally.ch