SAÉ 2.01 - Application voyageur du commerce
Application Java interactive de visualisation et de résolution du problème du voyageur de commerce. Elle permet de placer des points sur un plan euclidien ou une carte OpenStreetMap pour comparer en temps réel l'efficacité d'algorithmes d'optimisation (glouton, insertion, 2-opt). Un module d'import/export CSV asynchrone est intégré pour garantir une interface fluide durant les calculs lourds.

Fonctionnalités Principales
Stack Technique
Back-end
Base de données
Environnement
Autres
Défis
L'application intègre un module d'exportation de masse permettant d'exécuter séquentiellement plusieurs algorithmes combinatoires (Glouton, Insertion et 2-opt) sur un lot complet de fichiers de données. Lors de l'analyse simultanée de grands ensembles de points, le volume de calculs mathématiques et d'opérations d'écriture sur le disque (génération des fichiers CSV et des rapports de voyage) provoquait initialement le gel complet de l'interface graphique (EDT - Event Dispatch Thread). L'application devenait alors "instable" ou "ne répondait plus", altérant l'expérience utilisateur.
Solutions
Pour résoudre ce problème de performance, l'intégralité de la logique de calcul algorithmique et de gestion des flux d'entrée/sortie a été isolée du thread d'affichage principal. En implémentant la classe abstraite SwingWorker, le traitement lourd est entièrement déporté en arrière-plan dans la méthode doInBackground(). En parallèle, une boîte de dialogue d'attente non bloquante est affichée à l'écran, puis automatiquement détruite via la méthode done() dès la fin des calculs, avant d'ouvrir nativement le dossier des résultats pour l'utilisateur. Cette approche garantit une interface utilisateur fluide, réactive et professionnelle, peu importe la charge de données traitée.
Compétences Universitaires Appliquées
CE1.01
Réaliser en respectant les besoins décrits par le client.
CE1.04
Réaliser en veillant à la qualité du code et à sa documentation.
CE1.03
Réaliser en appliquant les principes algorithmiques.
CE6.04
Collaborer en developpant une communication efficace et collaborative.