Ce projet implémente un solveur pour le raisonnement sur des Systèmes d'Argumentation Abstraits. L'application permet de résoudre six problèmes décisionnels liés aux sémantiques Stable (ST) et Préférée (PR).
L'objectif est de fournir une réponse sur des graphes pouvant atteindre quelques dizaines d'arguments, en traitant des
problèmes de complexité allant de polynomiale à
Les problèmes traités sont :
-
VE (Verification) : Vérifier si un ensemble
$S$ est une extension valide. -
DC (Credulous Acceptance) : Est-ce qu'un argument
$a$ appartient à au moins une extension ? -
DS (Skeptical Acceptance) : Est-ce qu'un argument
$a$ appartient à toutes les extensions ?
SolveurArgumentation/
│
├── Makefile # Script de compilation
├── solveur # Exécutable final
│
├── README.md # Documentation
│
├── include/ # Fichiers d'en-tête (.hpp)
│ ├── SystemeArgumentation.hpp # Structure de données
│ ├── Parseur.hpp # Analyse des fichiers .apx
│ ├── Utilitaires.hpp # Propriétés (sans-conflit, défense, ...)
│ ├── Semantiques.hpp # Moteur de résolution
│ └── Solveur.hpp # Interface d'adaptation (String <-> Int)
│
├── src/ # Fichiers sources (.cpp)
│ ├── main.cpp # Point d'entrée
│ ├── SystemeArgumentation.cpp
│ ├── Parseur.cpp
│ ├── Utilitaires.cpp
│ ├── Semantiques.cpp
│ └── Solveur.cpp
│
├── obj/ # Fichiers objets (.o) et dépendances (.d) générés
│
└── tests/ # Jeux de tests
├── verifier_tout.py # Script Python pour validation exhaustive
└── cas_test/ # Fichiers de tests (.apx)
├── traffic1.apx
└── ...
Le projet est développé en C++17. Aucun gestionnaire de paquets externe n'est requis, seule la bibliothèque standard est utilisée.
- Compilateur C++ compatible C++17 (
g++ouclang++)
À la racine du projet, exécutez :
makePour nettoyer les fichiers de compilation et recompiler à zéro, exécutez :
make rebuildAprès compilation, le programme s'exécute en ligne de commande et respecte le format suivant :
./solveur -p <PROBLEME> -f <FICHIER.apx> -a <ARGUMENTS>-p: Type de problème :VE-PR,DC-PR,DS-PR,VE-ST,DC-ST,DS-ST.-f: Chemin vers le fichier.apxdécrivant le graphe.-a: Arguments de la requête (séparés par des virgules).
Vérifier si {a, c, d} est une extension préférée du système défini dans test_af5.apx :
./solveur -p VE-PR -f tests/cas_test/test_af1.apx -a a,c,dLe programme affiche uniquement sur la sortie standard stdout :
- YES si la propriété est vérifiée.
- NO sinon.
Les erreurs éventuelles (fichier introuvable, syntaxe invalide) sont affichées sur la sortie d'erreur stderr.
Le projet inclut un script de validation basé sur la force brute pour vérifier la correction logique sur de petits systèmes d'argumentation.
Pour lancer ce script (après la compilation) :
python tests/verifier_tout.py <FICHIER.apx>Aidoudi Aaron
UE Représentation des Connaissances et Raisonnement - Master 1 Intelligence Artificielle Distribuée à l'Université Paris Cité
Année Universitaire 2025-2026