Graphes et premier nombre de Ramsey

Un article de Wikipedia.

(Différences entre les versions)
(Statistiques)
(Statistiques)
Ligne 194 : Ligne 194 :
{| border="1" align="center"
{| border="1" align="center"
|+ '''Statistiques'''
|+ '''Statistiques'''
-
! Nœuds !! Arrêtes !! Graphes !! Permutaions !! Graphes réduits !! Durée des calculs
+
! Nœuds !! Arrêtes !! Graphes !! Permutaions !! Graphes réduits !! Durée des calculs en secondes
|- align="right"
|- align="right"
| 2 || 1 || 2 || 2 || 2 || 0
| 2 || 1 || 2 || 2 || 2 || 0

Version du 24 mars 2008 à 10:03

Sommaire

Graphes et premier nombre de Ramsey

But

Déterminer les graphes équivalents ayant au plus 6 sommets et utiliser ces graphes pour vérifier le premier nombre de Ramsey R(3,3).

Introduction

Un graphe est constitué d'un nombre n de sommets parfois reliés entre eux par des arrêtes.

Deux graphes sont considérés ici comme équivalents si :

  • une permutation des sommets d'un graphe équivaut à l'autre
  • pour un graphe chaque arrête est éliminée et chaque absence d'arrête est remplacée par une arrête et qu'il existe une permutation des sommets du graphe qui équivaut à l'autre

Nombre de Ramsey

Le nombre de Ramsey R(n,k) est le nombre minimum de sommets nécessaires pour qu'un graphe contenant un nombre arbitraire d'arrêtes comporte soit n sommets tous reliés entre eux soit k sommets tous non reliés entre eux.

Une autre formulation est le nombre R(n,k) de personnes qu'il faut inviter pour que n personnes se connaissent toutes entre elles ou que k personnes ne se connaissent pas entre elles.

Certains nombres de Ramsey sont connus, entre autres (voir Ressources :

n k R(n,k)
3 3 6
3 4 9
4 4 18
5 5 entre 43 et 49
6 6 entre 102 et 165

Anecdote sur les nombres de Ramsey

Paul Erdos disait : "Imaginez une force extraterrestre, vigoureuse et plus puissante que nous qui atérit sur la Terre et demande la valeur de R(5, 5) où sinon ils détruiront notre planète. Dans ce cas, nous devrions regrouper l'ensemble des ordinateurs et tous nos mathématiciens pour trouver la valeur. Mais supposons, par contre, qu'ils demandent la valeur R(6, 6), nous devrions alors tenter de détruire les extraterrestres."

Permutations

Pour déterminer l'équivalence d'un graphe de n sommets, il faut disposer de la liste complète des permutations pour n éléments donnés.

L'algorithme utilisé est celui décrit dans les ressources.

Il consiste à partir de toutes les permutations de n = 2,

1 2
2 1

de déterminer toutes les permutations pour n = 3 en triplant chaque ligne du cas n = 2

1 2
1 2
1 2
2 1
2 1
2 1

et en insérant le chiffre 3 dans chaque ligne en commençant par la dernière position jusqu'à la première et une fois la première position atteinte, recommencer depuis la première jusqu'à la dernière :

1 2 3
1 3 2
3 1 2
3 2 1
2 3 1
2 1 3

Pour n = 4 il faut quadrupler chaque ligne du cas n = 3 et insérer le chiffre 4 de la même manière que précédemment :

1 2 3
1 2 3
1 2 3
1 2 3
1 3 2
1 3 2
1 3 2
1 3 2
3 1 2
3 1 2
3 1 2
3 1 2
3 2 1
3 2 1
3 2 1
3 2 1
2 3 1
2 3 1
2 3 1
2 3 1
2 1 3
2 1 3
2 1 3
2 1 3

en insérant le chiffre 4 :

1 2 3 4
1 2 4 3
1 4 2 3
4 1 2 3
4 1 3 2
1 4 3 2
1 3 4 2
1 3 2 4
3 1 2 4
3 1 4 2
3 4 1 2
4 3 1 2
4 3 2 1
3 4 2 1
3 2 4 1
3 2 1 4
2 3 1 4
2 3 4 1
2 4 3 1
4 2 3 1
4 2 1 3
2 4 1 3
2 1 4 3
2 1 3 4

Cliques

Un graphe dont tous les sommets sont reliés entre eux s'appelle une clique.

La détermination de la clique maximale d'un graphe s'inspire de l'algorithme décrit dans les ressources (Using Constraint Programming to Solve the Maximum Clique Problem).

Le principe de l'algorithme se base sur le fait que dans une clique d'ordre n, si un sommet et ses arrêtes qui le reliait aux autres sont supprimés, alors le graphe est une clique d'ordre n - 1.

La fonction omega implémente cette détermination, associée à la fonction gamma qui détermine les nœuds associés à un sommet et la fonction limitlinks qui supprime un sommet et les arrêtes associées.

Résultats

Statistiques

Statistiques
Nœuds Arrêtes Graphes Permutaions Graphes réduits Durée des calculs en secondes
2 1 2 2 2 0
3 3 8 6 4 0
4 6 64 24 11 0
5 10 1024 120 34 1
6 15 32768 720 156 220
  • Nœuds : n
  • Arrêtes : n x (n - 1) / 2
  • Graphes : 2 ^ (n x (n - 1) / 2)
  • Permutations : n!
  • Graphes réduits : graphes équivalents sous les permutations

Graphes réduits pour n = 2

Nombre d'arrêtes Arretes
0
1 par complément de 0

Graphes réduits pour n = 3

Nombre d'arrêtes Arretes
0
1
  1. [(1,2)]
2 par complément de 1
3 par complément de 0

Graphes réduits pour n = 4

Nombre d'arrêtes Arretes
0
1
  1. [(1,2)]
2
  1. [(1,2),(1,3)]
  2. [(1,2),(3,4)]
3
  1. [(1,2),(1,3),(1,4)]
  2. [(1,2),(1,3),(2,3)]
  3. [(1,2),(1,3),(2,4)]
4 par complément de 2
5 par complément de 1
6 par complément de 0

Graphes réduits pour n = 5

Nombre d'arrêtes Arretes
0
1
  1. [(1,2)]
2
  1. [(1,2),(1,3)]
  2. [(1,2),(3,4)]
3
  1. [(1,2),(1,3),(1,4)]
  2. [(1,2),(1,3),(2,3)]
  3. [(1,2),(1,3),(2,4)]
  4. [(1,2),(1,3),(4,5)]
4
  1. [(1,2),(1,3),(1,4),(1,5)]
  2. [(1,2),(1,3),(1,4),(2,3)]
  3. [(1,2),(1,3),(1,4),(2,5)]
  4. [(1,2),(1,3),(2,3),(4,5)]
  5. [(1,2),(1,3),(2,4),(3,4)]
  6. [(1,2),(1,3),(2,4),(3,5)]
5
  1. [(1,2),(1,3),(1,4),(1,5),(2,3)]
  2. [(1,2),(1,3),(1,4),(2,3),(2,4)]
  3. [(1,2),(1,3),(1,4),(2,3),(2,5)]
  4. [(1,2),(1,3),(1,4),(2,3),(4,5)]
  5. [(1,2),(1,3),(1,4),(2,5),(3,5)]
  6. [(1,2),(1,3),(2,4),(3,5),(4,5)]
6 par complément de 4
7 par complément de 3
8 par complément de 2
9 par complément de 1
10 par complément de 0

Graphes réduits pour n = 6

Nombre d'arrêtes Arretes
0
1
  1. [(1,2)]
2
  1. [(1,2),(1,3)]
  2. [(1,2),(3,4)]
3
  1. [(1,2),(1,3),(1,4)]
  2. [(1,2),(1,3),(2,3)]
  3. [(1,2),(1,3),(2,4)]
  4. [(1,2),(1,3),(4,5)]
  5. [(1,2),(3,4),(5,6)]
4
  1. [(1,2),(1,3),(1,4),(1,5)]
  2. [(1,2),(1,3),(1,4),(2,3)]
  3. [(1,2),(1,3),(1,4),(2,5)]
  4. [(1,2),(1,3),(1,4),(5,6)]
  5. [(1,2),(1,3),(2,3),(4,5)]
  6. [(1,2),(1,3),(2,4),(3,4)]
  7. [(1,2),(1,3),(2,4),(3,5)]
  8. [(1,2),(1,3),(2,4),(5,6)]
  9. [(1,2),(1,3),(4,5),(4,6)]
5
  1. [(1,2),(1,3),(1,4),(1,5),(1,6)]
  2. [(1,2),(1,3),(1,4),(1,5),(2,3)]
  3. [(1,2),(1,3),(1,4),(1,5),(2,6)]
  4. [(1,2),(1,3),(1,4),(2,3),(2,4)]
  5. [(1,2),(1,3),(1,4),(2,3),(2,5)]
  6. [(1,2),(1,3),(1,4),(2,3),(4,5)]
  7. [(1,2),(1,3),(1,4),(2,3),(5,6)]
  8. [(1,2),(1,3),(1,4),(2,5),(2,6)]
  9. [(1,2),(1,3),(1,4),(2,5),(3,5)]
  10. [(1,2),(1,3),(1,4),(2,5),(3,6)]
  11. [(1,2),(1,3),(1,4),(2,5),(5,6)]
  12. [(1,2),(1,3),(2,3),(4,5),(4,6)]
  13. [(1,2),(1,3),(2,4),(3,4),(5,6)]
  14. [(1,2),(1,3),(2,4),(3,5),(4,5)]
  15. [(1,2),(1,3),(2,4),(3,5),(4,6)]
6
  1. [(1,2),(1,3),(1,4),(1,5),(1,6),(2,3)]
  2. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4)]
  3. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,6)]
  4. [(1,2),(1,3),(1,4),(1,5),(2,3),(4,5)]
  5. [(1,2),(1,3),(1,4),(1,5),(2,3),(4,6)]
  6. [(1,2),(1,3),(1,4),(1,5),(2,6),(3,6)]
  7. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]
  8. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,5)]
  9. [(1,2),(1,3),(1,4),(2,3),(2,4),(5,6)]
  10. [(1,2),(1,3),(1,4),(2,3),(2,5),(3,6)]
  11. [(1,2),(1,3),(1,4),(2,3),(2,5),(4,5)]
  12. [(1,2),(1,3),(1,4),(2,3),(2,5),(4,6)]
  13. [(1,2),(1,3),(1,4),(2,3),(4,5),(4,6)]
  14. [(1,2),(1,3),(1,4),(2,3),(4,5),(5,6)]
  15. [(1,2),(1,3),(1,4),(2,5),(2,6),(3,5)]
  16. [(1,2),(1,3),(1,4),(2,5),(3,5),(4,5)]
  17. [(1,2),(1,3),(1,4),(2,5),(3,5),(4,6)]
  18. [(1,2),(1,3),(1,4),(2,5),(3,5),(5,6)]
  19. [(1,2),(1,3),(1,4),(2,5),(3,6),(5,6)]
  20. [(1,2),(1,3),(2,3),(4,5),(4,6),(5,6)]
  21. [(1,2),(1,3),(2,4),(3,5),(4,6),(5,6)]
7
  1. [(1,2),(1,3),(1,4),(1,5),(1,6),(2,3),(2,4)]
  2. [(1,2),(1,3),(1,4),(1,5),(1,6),(2,3),(4,5)]
  3. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)]
  4. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,6)]
  5. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(3,4)]
  6. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(3,5)]
  7. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(3,6)]
  8. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(5,6)]
  9. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,6),(3,6)]
  10. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,6),(4,5)]
  11. [(1,2),(1,3),(1,4),(1,5),(2,3),(2,6),(4,6)]
  12. [(1,2),(1,3),(1,4),(1,5),(2,3),(4,6),(5,6)]
  13. [(1,2),(1,3),(1,4),(1,5),(2,6),(3,6),(4,6)]
  14. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4),(5,6)]
  15. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,5),(4,5)]
  16. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,5),(4,6)]
  17. [(1,2),(1,3),(1,4),(2,3),(2,4),(3,5),(5,6)]
  18. [(1,2),(1,3),(1,4),(2,3),(2,5),(3,6),(4,5)]
  19. [(1,2),(1,3),(1,4),(2,3),(2,5),(4,5),(4,6)]
  20. [(1,2),(1,3),(1,4),(2,3),(2,5),(4,6),(5,6)]
  21. [(1,2),(1,3),(1,4),(2,3),(4,5),(4,6),(5,6)]
  22. [(1,2),(1,3),(1,4),(2,5),(2,6),(3,5),(3,6)]
  23. [(1,2),(1,3),(1,4),(2,5),(2,6),(3,5),(4,6)]
  24. [(1,2),(1,3),(1,4),(2,5),(3,5),(4,6),(5,6)]
8 par complément de 7
9 par complément de 6
10 par complément de 5
11 par complément de 4
12 par complément de 3
13 par complément de 2
14 par complément de 1
15 par complément de 0

Conclusions

  • La vérification du nombre de Ramsey R(3,3) = 6 prend environ 4 minutes (la première fois).
  • La lecture des arrêtes des graphes réduits est possible, il serait néanmoins judicieux de disposer des équivalents graphiques.
  • L'affichage des graphes réduits pour n = 6 et un nombre d'arrêtes supérieur à 6 est difficile à lire.
  • Il faudrait pouvoir sauvegarder les résultats des graphes réduits sous forme d'un texte, dans un mémo par exemple.

Ressources