diff --git a/README.md b/README.md index bdf654a..a9e631a 100644 --- a/README.md +++ b/README.md @@ -1,84 +1,62 @@ -# Algorithmes des Graphes - L3 Sociologie Quantitative +# Algorithme des graphes -[![Licence CC BY-NC-SA 4.0](https://img.shields.io/badge/Licence-CC%20BY--NC--SA%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-nc-sa/4.0/) +[![Licence CC BY-SA 4.0](https://img.shields.io/badge/Licence-CC%20BY--SA%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-sa/4.0/) [![Jupyter Notebook](https://img.shields.io/badge/Jupyter-Notebook-orange.svg)](https://jupyter.org/) -Cours d'**algorithmes des graphes** pour les étudiants de L3 en sociologie quantitative. +Cours d'algorithmes des graphes en L3 de sociologie quantitative. -## Objectifs +Un graphe, c'est un ensemble de points reliés entre eux. C'est aussi la façon la plus directe +de représenter un réseau de relations : qui connaît qui, qui parle à qui, qui influence qui. +Ce cours vous apprend à construire ces objets, à les mesurer et à les interroger, pour : -Comprendre et utiliser les graphes pour analyser les **réseaux sociaux** et les **relations entre individus** : -- Modéliser des interactions sociales -- Identifier les individus influents -- Détecter des communautés -- Analyser la diffusion d'information +- modéliser des interactions sociales +- repérer les personnes qui occupent une position influente +- détecter des communautés +- suivre la diffusion d'une information ou d'une innovation ## Ouvrir les notebooks -| Outil | Installation | -|-------|--------------| -| **[Basthon](https://basthon.fr)** | En ligne, sans installation | -| **Jupyter Notebook** | `pip install notebook` puis `jupyter notebook` | -| **Google Colab** | [colab.research.google.com](https://colab.research.google.com) | +Les séances sont des notebooks Python, des fichiers `.ipynb`. Vous pouvez les ouvrir de trois +façons, au choix. -## Programme — 12 séances (24h) +| Outil | Comment | +|-------|---------| +| [Basthon](https://basthon.fr) | En ligne, rien à installer | +| [Google Colab](https://colab.research.google.com) | En ligne, avec un compte Google | +| Jupyter | `pip install notebook` puis `jupyter notebook` | -Aligné sur le programme officiel de la maquette (BCC5, EC "Algorithme des graphes"). Une séance tampon (11) est explicitement réservée pour absorber le retard selon le niveau réel de la promo plutôt que de préparer un second parcours en parallèle, notamment s'il y a du retard sur Python. +Chaque séance est également consultable directement en ligne depuis le menu de gauche, sans +rien télécharger. -| # | Séance | Statut | -|---|--------|--------| -| 1 | Définitions, typologie des graphes, prise en main de NetworkX | Fait | -| 2 | Représentations : matrice et liste d'adjacence, matrice/liste d'incidence | Fait | -| 3 | Mesures statistiques avancées (clustering, distribution des degrés...) | Fait | -| 4 | Parcours BFS/DFS | Fait | -| 5 | Composantes connexes + diffusion d'information (BFS) | Fait | -| 6-7 | Graphes pondérés et algorithme de Dijkstra (allégé) | Fait | -| 8 | Centralité (degré, proximité, intermédiarité) | Fait | -| 9 | Coloration de graphes | Fait | -| 10 | Page-rank et propagation d'étiquettes (label propagation) | Fait | -| 11 | Séance tampon / rattrapage | réservée, pas de contenu fixe | -| 12 | Révisions + partiel blanc | Fait | +## Les séances -### Applications sociologiques (fil rouge de tout le cours) +| # | Séance | À télécharger | +|---|--------|---------------| +| 1 | Définitions, typologie des graphes, prise en main de NetworkX | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_1/Seance_1.ipynb), [TP](https://florianmathieu.prof/hub-docs/socio/Seance_1_TP/Seance_1_TP.ipynb) | +| 2 | Représentations : matrice et liste d'adjacence, matrice et liste d'incidence | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_2_Representations/Seance_2_Representations.ipynb) | +| 3 | Mesures statistiques : clustering, distribution des degrés | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_3_Mesures_Statistiques/Seance_3_Mesures_Statistiques.ipynb) | +| 4 | Parcours de graphes : BFS et DFS | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_4_BFS_DFS/Seance_4_BFS_DFS.ipynb) | +| 5 | Composantes connexes et diffusion d'information | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_5_Composantes_Diffusion/Seance_5_Composantes_Diffusion.ipynb), [TP](https://florianmathieu.prof/hub-docs/socio/Seance_5_TP_Contamination/Seance_5_TP_Contamination.ipynb) | +| 6 | Graphes pondérés : de la force brute à l'intuition de Dijkstra | [partie 1](https://florianmathieu.prof/hub-docs/socio/Dijkstra/Seance_6_Dijkstra_1_RecapForceBrute/Seance_6_Dijkstra_1_RecapForceBrute.ipynb), [partie 2](https://florianmathieu.prof/hub-docs/socio/Dijkstra/Seance_6_Dijkstra_2_Intuition/Seance_6_Dijkstra_2_Intuition.ipynb) | +| 7 | Algorithme de Dijkstra : mise en œuvre | [cours](https://florianmathieu.prof/hub-docs/socio/Dijkstra/Seance_7_Dijkstra_Implementation/Seance_7_Dijkstra_Implementation.ipynb) | +| 8 | Centralité : degré, proximité, intermédiarité | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_8_Centralite/Seance_8_Centralite.ipynb) | +| 9 | Coloration de graphes | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_9_Coloration/Seance_9_Coloration.ipynb) | +| 10 | Page-rank et propagation d'étiquettes | [cours](https://florianmathieu.prof/hub-docs/socio/Seance_10_PageRank_LabelPropagation/Seance_10_PageRank_LabelPropagation.ipynb) | +| 11 | Rattrapage et approfondissement | | +| 12 | Révisions et partiel blanc | [sujet](Seance_12_Partiel.md) | -- Analyse des réseaux sociaux, identification des individus influents -- Détection de communautés -- Étude des inégalités d'accès aux ressources -- Diffusion des idées et innovations +## Cours et exercices -## Structure du dépôt - -``` -├── COURS.md # Chapitre 1 : introduction contextuelle -├── FONDAMENTAUX.md # Chapitre 2 : concepts de base -├── Seance_1.ipynb / Seance_1_TP.ipynb # Séance 1 : prise en main de NetworkX -├── Seance_2_Representations.ipynb # Séance 2 : matrice/liste d'adjacence, incidence -├── Seance_3_Mesures_Statistiques.ipynb # Séance 3 : mesures statistiques avancées -├── Seance_4_BFS_DFS.ipynb # Séance 4 : parcours & distances (BFS/DFS) -├── Seance_5_Composantes_Diffusion.ipynb (+ Corrigé) # Séance 5 : composantes connexes & diffusion -├── Dijkstra/ # Séance 6 (recap + intuition), Séance 7 (implémentation), annexes optionnelles (preuve/complexité, version dictionnaire) -├── Seance_8_Centralite.ipynb # Séance 8 : centralité -├── Seance_9_Coloration.ipynb # Séance 9 : coloration de graphes -├── Seance_10_PageRank_LabelPropagation.ipynb # Séance 10 : page-rank & label propagation -├── Exercices_1.md, Exercices_2.md # Exercices complémentaires -├── Seance_12_Partiel.md / Seance_12_Partiel_Corrige.md # Partiel blanc et son corrigé -├── Exercices/, copies/ # Travaux et rendus d'étudiants -└── assets/ # Images et schémas -``` - -## Ressources - -- [Introduction contextuelle (cours)](COURS.md) -- [Concepts fondamentaux (cours)](FONDAMENTAUX.md) -- [Exercices — série 1](Exercices_1.md) -- [Exercices — série 2](Exercices_2.md) -- [Partiel blanc](Seance_12_Partiel.md) *(le corrigé reste privé, non publié)* +- [Introduction contextuelle](COURS.md) +- [Concepts fondamentaux](FONDAMENTAUX.md) +- [Exercices, série 1](Exercices_1.md) +- [Exercices, série 2](Exercices_2.md) ## Licence -Licence Creative Commons +Licence Creative Commons -Ce cours est sous licence [CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/). +Ce cours est sous licence [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/). ---