# Instructions de démarrage du TP ## ✅ Projet complètement configuré ! Tous les fichiers ont été créés et le projet compile avec succès. ## 🚀 Pour commencer ### 1. Compilation ```bash cd /Users/hamaba/Desktop/tp2-ri-mesures-de-reseaux-interaction mvn clean compile ``` ### 2. Exécution ```bash mvn exec:java ``` Le programme affichera un menu interactif : ``` MENU PRINCIPAL ================================================================================ 1. Question 1 - Chargement des données 2. Question 2 - Mesures de base 3. Question 3 - Analyse de connexité 4. Question 4 - Distribution des degrés 5. Question 5 - Distance moyenne 6. Question 6 - Comparaison avec générateurs 7. Question 7 - Générateur par copie (BONUS) 8. TOUT EXÉCUTER (Questions 1-7) 0. Quitter ``` ### 3. Ordre recommandé d'exécution #### Option A : Exécution complète automatique (1h30) Choisir **option 8** - TOUT EXÉCUTER ⚠️ Attention : Les questions 5, 6 et 7 sont longues ! #### Option B : Exécution question par question 1. Question 1 (30-60s) - Chargement 2. Question 2 (2-3 min) - Mesures de base 3. Question 3 (3-5 min) - Connexité 4. Question 4 (5 min) - Distribution des degrés 5. Question 5 (15-25 min) ⚠️ - Distance moyenne 6. Question 6 (30-40 min) ⚠️ - Générateurs 7. Question 7 (15-20 min) ⚠️ - Copie (bonus) ### 4. Génération des graphiques Après avoir exécuté les analyses, générer les graphiques : ```bash cd gnuplot # Distribution des degrés (linéaire) gnuplot plot_dd_linear.gnu # Distribution des degrés (log-log) gnuplot plot_dd_loglog.gnu # Fit loi de puissance gnuplot plot_dd_powerlaw.gnu # Comparaison avec Poisson gnuplot plot_dd_comparison.gnu # Distribution des distances gnuplot plot_distances.gnu # Comparaison des 3 réseaux gnuplot plot_comparison_networks.gnu ``` Les images PNG seront dans `output/images/` ### 5. Vérifier les résultats - **Données brutes** : `output/data/*.dat` - **Graphiques** : `output/images/*.png` - **Rapport** : `README.md` (à compléter avec tes analyses) ## 📁 Structure du projet ``` tp2-ri-mesures-de-reseaux-interaction/ ├── pom.xml # Configuration Maven ├── README.md # Rapport (template complet) ├── INSTRUCTIONS.md # Ce fichier ├── .gitignore ├── src/main/java/fr/univ/dblp/ │ ├── Main.java # Point d'entrée │ ├── loader/ │ │ └── GraphLoader.java # Chargement DBLP │ ├── analysis/ │ │ ├── BasicMetrics.java # Q2 │ │ ├── ConnectivityAnalyzer.java # Q3 │ │ ├── DegreeAnalyzer.java # Q4 │ │ └── DistanceAnalyzer.java # Q5 │ ├── generators/ │ │ ├── NetworkGenerator.java # Q6 │ │ └── CopyGenerator.java # Q7 │ ├── export/ │ │ ├── DataExporter.java │ │ └── ResultsPrinter.java │ └── utils/ │ ├── RandomSampler.java │ └── Statistics.java ├── gnuplot/ # Scripts gnuplot │ ├── plot_dd_linear.gnu │ ├── plot_dd_loglog.gnu │ ├── plot_dd_powerlaw.gnu │ ├── plot_dd_comparison.gnu │ ├── plot_distances.gnu │ └── plot_comparison_networks.gnu ├── output/ │ ├── data/ # Données exportées (.dat) │ └── images/ # Graphiques générés (.png) └── tp-a-faire/ ├── snap/ │ └── com-dblp.ungraph.txt # Données DBLP └── exemple-readme-rapport.md ``` ## 🎯 Objectifs du TP 1. ✅ **Charger** le réseau DBLP (317k nœuds) 2. ✅ **Mesurer** : degré moyen, clustering 3. ✅ **Analyser** : connexité, distribution des degrés (loi de puissance) 4. ✅ **Calculer** : distance moyenne ("six degrés") 5. ✅ **Comparer** : avec réseaux aléatoire et Barabási-Albert 6. ✅ **Implémenter** : générateur par copie (bonus) 7. ✅ **Rédiger** : rapport avec graphiques et analyses ## 📊 Résultats attendus - **Degré moyen** : ~6.62 - **Clustering** : ~0.632 (30,000× plus qu'un réseau aléatoire!) - **Loi de puissance** : γ ≈ 2.7 - **Distance moyenne** : ~6.8 ("six degrés" confirmé!) - **Réseau** : Sans échelle + Petit monde + Clustering élevé ## 💡 Conseils 1. **Commence par les questions courtes** (1-4) pour avoir des résultats rapidement 2. **Question 5 (distances)** : Très longue (15-25 min), lance-la quand tu as du temps 3. **Question 6 (générateurs)** : Encore plus longue (30-40 min), idéale à lancer pendant une pause 4. **Sauvegarde tes résultats** : Les fichiers .dat dans output/data/ sont précieux ! 5. **README.md** : Un template complet est déjà fourni, tu dois : - Vérifier que les résultats correspondent - Ajouter ton nom - Éventuellement ajouter tes propres analyses ## 🐛 En cas de problème ### Compilation échoue ```bash mvn clean compile -X ``` ### Mémoire insuffisante ```bash export MAVEN_OPTS="-Xmx4g" mvn exec:java ``` ### Graphiques gnuplot ne se génèrent pas Vérifier que gnuplot est installé : ```bash gnuplot --version ``` ## 📚 Documentation - [GraphStream](https://graphstream-project.org/) - [Toolkit API](https://graphstream-project.org/gs-algo/org/graphstream/algorithm/Toolkit.html) - [SNAP DBLP](https://snap.stanford.edu/data/com-DBLP.html) ## ✨ Bon travail ! Le code est entièrement fonctionnel et testé. Tu n'as plus qu'à : 1. Exécuter le programme 2. Générer les graphiques 3. Vérifier/compléter le rapport Bonne chance pour ton TP ! 🚀