J'ai besoin de construire un graphique d'expansion d-régulier pour quelques petits d fixes (comme 3 ou 4) de n sommets.
Quelle est la méthode la plus simple pour le faire dans la pratique? Construire un graphique aléatoire régulier, qui s'est avéré être un expandeur?
J'ai également lu sur les constructions Margulis et les graphiques Ramanujan qui sont des expanseurs et une construction utilisant un produit en zig-zag. Wikipedia donne un aperçu agréable mais très court: http://en.wikipedia.org/wiki/Expander_graph#cite_note-10 Mais quelle méthode dois-je choisir dans la pratique?
Pour moi, ces méthodes semblent toutes très compliquées à mettre en œuvre et en particulier à comprendre et peut-être assez spécifiques. N'y a-t-il pas des méthodes plus faciles, peut-être basées sur des permutations ou ainsi, pour générer pratiquement une séquence de graphiques d'expansion d-regular?
Est-il peut-être plus facile de construire des graphes expanseurs bipartis d-regular?
J'ai aussi une autre question: qu'en est-il des familles de mauvais expandeurs d-regular? Une telle notion a-t-elle un sens? Peut-on construire une famille de graphes d-réguliers (qui sont bien sûr connectés) aussi mauvais que possible au sens d'un expandeur?
Merci d'avance.
Réponses:
Si cela ne vous dérange pas les graphiques avec auto-boucles, la famille d'extensions "la plus simple" est probablement celle-ci, donnant des expandeurs qui sont 3-réguliers.
Commencez par un nombre premier et construisez des sommets numérotés de 0 à p - 1 . Pour chaque sommet u ≠ 0 , connectez u à u - 1 et u + 1 , modulo p . Connectez également u au sommet unique v tel que u v ≡ 1p 0 p - 1 u ≠ 0 u u - 1 u + 1 p u v .u v ≡ 1modp
Voir /mathpro/124708/an-expander-graph pour plus de discussion et références. Il existe de nombreux pointeurs plus détaillés en recherchant «expander» dans CSTheory , Math.SE et MO .
Comme Yuval Filmus le fait remarquer, la construction aléatoire est susceptible de donner de meilleurs résultats en général, mais bien sûr, elle ne peut pas produire un expandeur (en particulier pour les petits graphiques).
la source
Étant donné qu'un graphique régulier aléatoire est un expanseur whp (suivez la référence donnée dans la documentation du code MATLAB lié ci-dessous), j'ai utilisé une fois ce qui suit:
http://www.mathworks.com/matlabcentral/fileexchange/29786-random-regular-generator/content/randRegGraph/createRandRegGraph.m
la source