diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..2684370cdd63221b730a9e8d0d7f53c66454eb7f --- /dev/null +++ b/Readme.md @@ -0,0 +1,54 @@ +# Solveur de Sac à Dos par Branch and Bound + +Programme Java implémentant l'algorithme Branch and Bound avec relaxation fractionnaire pour résoudre le problème du sac à dos 0/1 de manière optimale. + +## Fonctionnalités +- Algorithme d'exploration avec élagage par bornes +- Calcul de borne supérieure par méthode fractionnaire +- Lecture des données depuis un fichier texte +- Tri préalable des objets par ratio valeur/poids +- Statistiques d'exécution (nœuds explorés) +- Affichage de la solution optimale détaillée + +## Prérequis +- Java JDK 11 ou supérieur +- Fichier d'instance au format spécifié + +## Installation +1. Cloner/déposer les fichiers sources dans un dossier +2. Modifier le chemin du fichier dans `App.java` : +```java +// Ligne à modifier dans App.java +Backpack backpack = new InstanceReader().read("chemin/vers/votre_fichier.txt"); +``` + +## Compiler le projet : +```bash +javac -d bin src/*.java +``` + +## Utilisation +```bash +java -cp bin App +``` +## Exemple de sortie : + La valeur optimale est : 220 + Objets inclus dans la solution optimale : [true, false, true, true] + Nombre de nœuds explorés : 27 + +## Structure du code +| Classe | Description | +|-----------------|----------------------------------------------| +| Backpack | Implémente l'algorithme principal | +| Loot | Représente un objet avec ratio valeur/poids | +| InstanceReader | Lit et parse les fichiers d'instance | +| App | Point d'entrée du programme | + +## Membre(s) du projet + +- OUATTARA Sie +- GOUNOU Boubacar + +## Licence + +MIT License - Libre d'utilisation et modification \ No newline at end of file diff --git a/out/production/aroTP2/App.class b/out/production/aroTP2/App.class index cd72d5fdbb17825ce855a1b9f61572d83d12126b..1e4b3260fdd102ef289c8dbb8562734ddeac761f 100644 Binary files a/out/production/aroTP2/App.class and b/out/production/aroTP2/App.class differ diff --git a/out/production/aroTP2/Loot.class b/out/production/aroTP2/Loot.class index 88c549853e6b352a7f562efc7945c9306b874007..bc14dcc2b219d38772d8b2f664a991b6eba276ba 100644 Binary files a/out/production/aroTP2/Loot.class and b/out/production/aroTP2/Loot.class differ