Projet Scolaire (S2)

Aide à la décision

Application JavaFX exploitant la théorie des graphes pour calculer et optimiser l'affectation entre hôtes et visiteurs lors de séjours linguistiques.

Capture d'écran du projet

L'objectif

Ce projet consiste en une application de bureau dotée d'une interface graphique en JavaFX, conçue pour automatiser l'organisation de séjours linguistiques. Le système importe les données des participants au format CSV et se charge de trouver les meilleures correspondances possibles entre les familles d'accueil et les visiteurs afin de garantir un séjour optimal.

Capture d'écran du projet

Modélisation

Le cœur de la logique décisionnelle repose sur la modélisation des données sous forme de graphes. L'algorithme croise des critères stricts, comme les régimes alimentaires ou les allergies, avec des préférences plus souples telles que les hobbies, le genre ou la différence d'âge. Chaque incompatibilité détectée ajoute un poids spécifique sur l'arête reliant deux profils, permettant de quantifier mathématiquement la pertinence d'une association.

Capture d'écran du projet

Résolution

Une fois le graphe pondéré établi, l'application utilise un algorithme glouton pour parcourir les connexions et extraire les paires les plus optimisées, minimisant ainsi les conflits globaux. Les résultats générés peuvent ensuite être facilement exportés en CSV pour être exploités par les organisateurs du séjour.

Analyse réflexive

Une analyse honnête du parcours, des obstacles rencontrés et des compétences acquises durant ce projet.

Mon rôle

Conception de l'algorithme de pondération des graphes et gestion de l'import/export CSV.

Défis & Solutions

Le plus grand défi a été de traduire des critères humains (hobbies, affinités) en poids mathématiques cohérents pour l'algorithme glouton.

Apprentissages

J'ai appris à manipuler des structures de données complexes (graphes) et à comprendre comment l'algorithmique peut résoudre des problèmes logistiques concrets.

Compétences transversales

Travail en équipe

Coordination avec le groupe via Git pour fusionner nos travaux sur l'interface et le moteur de calcul.

Esprit d'analyse

Capacité à transformer un cahier des charges fonctionnel en une modélisation mathématique rigoureuse.