Optimisateur des repas au Sénégal, par la méthode des couts minimums
# 🇸🇳 Plateforme d'Optimisation Nutritionnelle sous Contraintes Économiques
Ce projet a été développé dans le cadre d'un projet de recherche opérationnelle et de modélisation économique par un élève-ingénieur de l'**ENSAE Dakar**. Il propose un outil d'aide à la décision permettant de concevoir un panier alimentaire de coût minimum tout en garantissant un équilibre nutritionnel strict, adapté aux réalités socio-économiques du Sénégal.
---
## 📋 Problématique & Objectifs
Comment concilier les exigences physiologiques et sanitaires (recommandations de l'OMS et alertes du CRES sur le sodium) avec les contraintes budgétaires réelles des ménages sénégalais selon leur région ?
L'application s'appuie sur la **Programmation Linéaire par But (Goal Programming)** pour arbitrer entre :
* La minimisation du coût monétaire du panier.
* Le respect des apports nutritionnels de référence (BEE, protéines, lipides, glucides, micronutriments).
* Le bridage des nutriments critiques (limitation du sodium à 2000 mg selon le CRES).
* Les habitudes de consommation locales (contraintes de diversification et capacité stomacale de 1.8 kg).
---
## 📊 Données utilisées
Le modèle articule et interconnecte plusieurs bases de données :
1. **WAFCT 2019 (FAO)** : Table de composition des aliments d'Afrique de l'Ouest (nettoyée et redressée).
2. **Table des prix locaux** : Suivi de la variabilité spatiale des prix des denrées sur 4 pôles majeurs : *Dakar, Tambacounda, Saint-Louis, et Thiès*.
3. **Normes FAO/OMS** : Modélisation dynamique du Besoin Énergétique Estimé (BEE) selon le profil anthropométrique (âge, sexe, niveau d'activité, statut physiologique).
---
## 🛠️ Architecture Technique
* **Langage :** Python 3.x
* **Moteur d'optimisation :** `PuLP` avec le solveur open-source `CBC`
* **Interface Utilisateur :** `Streamlit` pour la visualisation interactive, l'analyse graphique des apports et l'exploration descriptive de la base WAFCT.
---
## 🚀 Installation et Lancement en Local
Si vous …