Simplifiez votre flux de travail : Recherchez miniwebtool.
Ajouter
Page d'accueil > Mathématiques > Opérations mathématiques avancées > Vérificateur de Chemin Hamiltonien
 

Vérificateur de Chemin Hamiltonien

Vérifiez si un graphe contient un chemin ou un cycle hamiltonien. Exécute le backtracking avec élagage de Warnsdorff, vérifie la connectivité et les prérequis de degré, teste les conditions suffisantes de Dirac et Ore, et affiche le chemin témoin sur une visualisation SVG animée.

Vérificateur de Chemin Hamiltonien
Accepte A-B, A->B, A B, A,B ou des lignes de matrice comme 0 1 1 0. Utilisez des lettres, chiffres ou soulignés pour les étiquettes.
Étiquettes séparées par des virgules ou des espaces, une par ligne. A, B, C... par défaut si omis.

Embed Vérificateur de Chemin Hamiltonien Widget

Vérificateur de Chemin Hamiltonien

Le Vérificateur de Chemin Hamiltonien détermine si un graphe contient un chemin hamiltonien — une séquence qui visite chaque sommet exactement une fois — ou un cycle hamiltonien, qui revient en plus au sommet de départ. Il combine des pré-vérifications structurelles rapides (connectivité, conditions préalables de degré, théorème de Dirac, théorème d'Ore) avec une recherche par retour sur trace (backtracking) optimisée par l'heuristique de Warnsdorff, et visualise le chemin témoin avec une animation étape par étape.

Qu'est-ce qu'un chemin hamiltonien ?

Étant donné un graphe G = (V, E) à n sommets, un chemin hamiltonien est une séquence ordonnée v1, v2, …, vn de tous les sommets telle que chaque paire consécutive (vi, vi+1) est une arête de G, et chaque sommet apparaît exactement une fois. Si, de plus, (vn, v1) est une arête, la séquence est un cycle hamiltonien.

Chemin hamiltonien : v1 — v2 — v3 — … — vn (tous distincts, chaque paire consécutive est une arête) Cycle hamiltonien : v1 — v2 — v3 — … — vn — v1 (se referme sur le départ)

Le problème tire son nom de William Rowan Hamilton, qui inventa en 1857 le jeu icôsien — un casse-tête demandant au joueur de trouver un cycle visitant chaque sommet d'un dodécaèdre régulier exactement une fois.

Pourquoi c'est difficile : la NP-complétude

Le problème de décision du chemin hamiltonien et celui du cycle hamiltonien sont tous deux NP-complets (Karp, 1972). À moins que P = NP, il n'existe aucun algorithme en temps polynomial capable de résoudre chaque instance. Dans le pire des cas, le retour sur trace explore un arbre de recherche d'une taille allant jusqu'à (n−1)! pour un cycle. C'est pourquoi le calculateur limite l'entrée à 20 sommets — une faible augmentation polynomiale de n produit une augmentation explosive du temps d'exécution.

En pratique, l'heuristique de Warnsdorff (conçue à l'origine par Heinrich Warnsdorff en 1823 pour le problème du cavalier) rend la recherche considérablement plus rapide sur les graphes structurés : à chaque étape, l'algorithme prolonge le chemin actuel vers le voisin non visité ayant le plus petit nombre de voisins non visités restants. Cette règle gloutonne empêche la recherche de s'enfermer dans une impasse et trouve souvent un parcours hamiltonien sans aucun retour sur trace sur les graphes bien structurés.

Conditions nécessaires — Rejet rapide

Avant de lancer une recherche coûteuse, le calculateur rejette les graphes qui ne peuvent pas contenir de chemin hamiltonien :

Ces règles permettent de rejeter de nombreuses entrées sans issue en temps linéaire, évitant ainsi des efforts inutiles de backtracking.

Conditions suffisantes — Théorèmes classiques

Plusieurs théorèmes classiques donnent des conditions suffisantes (mais pas nécessaires) garantissant un cycle hamiltonien dans les graphes simples non orientés. Si l'une de ces conditions s'applique, le calculateur marque le résultat comme "GARANTIT" sans même lancer la recherche — bien qu'il affiche tout de même un cycle témoin.

Théorème de Dirac (1952)

Si G est un graphe simple non orienté à n ≥ 3 sommets et que chaque sommet a un degré au moins égal à n / 2, alors G possède un cycle hamiltonien.

δ(G) ≥ n / 2 ⟹ G est hamiltonien

Théorème d'Ore (1960)

Si pour chaque paire de sommets non adjacents u et v, nous avons deg(u) + deg(v) ≥ n, alors G possède un cycle hamiltonien. La condition d'Ore est strictement plus faible que celle de Dirac, donc Ore implique Dirac.

∀ u, v non adjacents : deg(u) + deg(v) ≥ n ⟹ G est hamiltonien

L'échec des conditions de Dirac ou d'Ore ne signifie pas que le graphe ne possède pas de cycle hamiltonien — de nombreux graphes ne satisfont ni l'un ni l'autre tout en en contenant un (par exemple, un cycle simple à n sommets a un degré minimum de 2, bien en dessous de n/2 pour de grandes valeurs de n).

L'algorithme de recherche interne

Lorsque les pré-vérifications ne permettent pas de trancher, le calculateur lance une recherche par retour sur trace sur la représentation d'adjacence du graphe. Tactiques clés :

  1. Masque de bits pour l'ensemble visité. Les sommets visités sont stockés sous forme de masque de bits (test d'appartenance rapide en O(1) jusqu'à 20 sommets).
  2. Heuristique de Warnsdorff. À chaque extension, les voisins sont essayés dans l'ordre de leur degré non visité restant (le plus petit en premier), imitant un ordre à "faible branchement".
  3. Sélection de la racine. Pour un cycle hamiltonien, un seul sommet de départ est nécessaire (les cycles sont invariants par rotation). Pour un chemin hamiltonien, les départs sont essayés par ordre croissant de degré sortant — les positions les plus rares en premier.
  4. Budget d'étapes. Une limite stricte empêche les instances pathologiques de s'exécuter indéfiniment ; l'interface signale le verdict comme "expiré" si le budget est épuisé.

Hamiltonien vs Eulérien

Il est facile de confondre les problèmes hamiltoniens et eulériens — ils semblent similaires mais sont fondamentalement différents :

Propriété Chemin / Cycle hamiltonien Trajet / Circuit eulérien
Visite chaque... Sommet exactement une fois Arête exactement une fois
Complexité NP-complet Polynomial (O(n+m))
Condition Pas de caractérisation simple Connexe + tous degrés pairs (circuit) ; max 2 impairs pour trajet
Nommé d'après W. R. Hamilton (1857) L. Euler (1736, ponts de Königsberg)
Exemple classique Voyageur de commerce, jeu icôsien Inspection de routes, problème du postier

Formats d'entrée pris en charge

Liste d'arêtes

Une arête par ligne, ou séparée par des virgules. Séparateurs pris en charge : A-B, A B, A,B, A--B, A->B, A<-B. Utilisez -> pour forcer une interprétation orientée.

A-B, B-C, C-D, D-A, A-C (graphe non orienté avec 5 arêtes) A->B, B->C, C->D, D->A (cycle orienté de 4)

Matrice d'adjacence

Matrice carrée de valeurs 0/1, une ligne par ligne, séparée par des espaces ou des virgules. Fournissez des étiquettes facultatives dans le champ Étiquettes de matrice ; sinon, A, B, C... sont utilisés automatiquement.

0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0

Comment utiliser ce vérificateur

  1. Choisissez un format d'entrée — Liste d'arêtes pour les petits graphes écrits à la main, Matrice d'adjacence pour les copier-coller de code ou de manuels.
  2. Collez votre graphe dans la zone de texte. Pour l'entrée matricielle, fournissez éventuellement des étiquettes de sommets.
  3. Choisissez quoi vérifier : Chemin uniquement, Cycle uniquement, ou Les deux en une seule fois.
  4. Sélectionnez le type de graphe — La détection automatique déduit l'orientation à partir du style de flèche (->) ou de la symétrie de la matrice.
  5. Cliquez sur Vérifier l'Hamiltonien. La page de résultats affiche un verdict, la pré-vérification des conditions nécessaires, les tests de conditions suffisantes de Dirac / Ore, le chemin témoin (s'il existe) et une visualisation interactive.
  6. Rejouez le témoin à l'aide des commandes Lecture / Étape. Observez le chemin s'allumer arête par arête sur le graphe.

Exemple pratique — Le graphe de Petersen

Le célèbre graphe de Petersen (10 sommets, 15 arêtes, 3-régulier) est un exemple classique de graphe possédant un chemin hamiltonien mais aucun cycle hamiltonien. Collez ceci dans le champ de liste d'arêtes et cliquez sur Vérifier :

1-2, 2-3, 3-4, 4-5, 5-1, 6-8, 8-10, 10-7, 7-9, 9-6, 1-6, 2-7, 3-8, 4-9, 5-10

Le vérificateur confirme : chemin hamiltonien trouvé (ex : 1 — 2 — 7 — 10 — 5 — 4 — 9 — 6 — 8 — 3), mais la recherche exhaustive ne trouve aucun moyen de fermer la boucle — un résultat prouvé pour la première fois dans les années 1890.

Applications courantes

Foire aux questions

Qu'est-ce qu'un chemin hamiltonien ?

Un chemin hamiltonien est un parcours dans un graphe qui visite chaque sommet exactement une fois. Il porte le nom de William Rowan Hamilton, qui a étudié le problème sur le graphe du dodécaèdre en 1857. Décider si un tel chemin existe est un problème NP-complet, donc aucun algorithme connu ne le résout en temps polynomial pour tous les graphes.

Quelle est la différence entre un cycle hamiltonien et un chemin hamiltonien ?

Un cycle hamiltonien est un chemin hamiltonien qui revient à son sommet de départ, formant une boucle fermée qui visite chaque sommet exactement une fois. Chaque cycle hamiltonien contient un chemin hamiltonien (il suffit de supprimer l'arête de fermeture), mais l'inverse n'est pas vrai : de nombreux graphes ont un chemin hamiltonien mais pas de cycle hamiltonien.

Que dit le théorème de Dirac ?

Le théorème de Dirac (1952) stipule que tout graphe simple non orienté à n ≥ 3 sommets dans lequel chaque sommet a un degré d'au moins n/2 contient un cycle hamiltonien. C'est une condition suffisante mais pas nécessaire : de nombreux graphes qui n'atteignent pas le seuil de Dirac ont tout de même des cycles hamiltoniens.

Que dit le théorème d'Ore ?

Le théorème d'Ore (1960) stipule que si, pour chaque paire de sommets non adjacents u et v dans un graphe simple à n ≥ 3 sommets, la somme de leurs degrés est au moins égale à n, alors le graphe possède un cycle hamiltonien. La condition d'Ore est plus faible que celle de Dirac, donc le théorème d'Ore s'applique chaque fois que le théorème de Dirac s'applique.

Pourquoi la recherche est-elle limitée à 20 sommets ?

Les problèmes de décision de chemin et de cycle hamiltoniens sont NP-complets. Le temps d'exécution dans le pire des cas augmente de manière exponentielle avec le nombre de sommets. Avec l'élagage et l'heuristique de Warnsdorff, le calculateur traite rapidement de nombreux petits graphes jusqu'à 20 sommets, mais les instances complexes peuvent expirer. Au-delà de 20 sommets, vous devriez utiliser des solveurs spécialisés tels que Concorde ou des formulations de programmation en nombres entiers.

Qu'est-ce que l'heuristique de Warnsdorff ?

La règle de Warnsdorff, proposée en 1823 pour le problème du cavalier, stipule qu'à chaque étape, vous devez visiter le sommet suivant qui possède le moins de voisins non visités restants. Cette règle d'apparence gloutonne élague considérablement l'arbre de recherche en pratique et trouve souvent des chemins hamiltoniens sans aucun retour sur trace sur les graphes réguliers.

Cet outil trouve-t-il tous les chemins hamiltoniens ?

Non — il trouve un seul chemin ou cycle témoin lorsqu'il en existe un. Compter le nombre total de chemins hamiltoniens est en soi un problème #P-complet et bien plus complexe que le problème de décision. Pour l'énumération, des outils spécialisés ou des solveurs de programmation en nombres entiers sont plus appropriés.

Lectures complémentaires

Citez ce contenu, cette page ou cet outil comme suit :

"Vérificateur de Chemin Hamiltonien" sur https://MiniWebtool.com/fr/verificateur-de-chemin-hamiltonien/ de MiniWebtool, https://MiniWebtool.com/

Par l'équipe miniwebtool. Mis à jour : 21 avr. 2026

Vous pouvez également essayer notre Résolveur Mathématique IA GPT pour résoudre vos problèmes mathématiques grâce à des questions-réponses en langage naturel.

Autres outils connexes:

Opérations mathématiques avancées:

Outils en vedette:

Calculatrice de Compatibilité AmoureuseConvertisseur cm en pieds et poucesCalculateur du Jour de l'Année - Quel jour de l'année sommes-nous aujourd'hui ?Convertisseur de Pieds et Pouces en Centimètresconvertisseur ppm en pourcentageConvertisseur de Pourcentage en PPMrecherche-d-adresse-MACExtracteur d'Images de VidéoGénérateur de Carte de Crédit AléatoireGénérateur d'Action ou Vérité AléatoireGénérateur de Couleurs AléatoiresCompteur de lignesCalculateur de Signe Solaire, Lunaire et Ascendant 🌞🌙✨Convertisseur de Temps en DécimalGénérateur de mots aléatoires en anglaisGénérateur de chaînes aléatoiresSélecteur de Nom AléatoireCalculatrice de MédianeCalculatrice de DuréeCalculatrice de SommeConvertisseur de décimales en tempsSélecteur de Films AléatoireCalculateur d'âgeParaphraseur IACalculateur de pas en distancecalculatrice-des-exposants-haute-précisionCalculatrice HexadécimaleGénérateur de numéros de loterieConvertisseur d'adresse IP en binaireGénérateur de Super-pouvoir AléatoireCalculatrice du Nombre d'ÂmeCalculatrice d'escalierSupprimer des accents du texteTrier les NombresRandomiseur de listeCalculateur de nombres angéliquesTrier les lignes par ordre alphabétiqueGénérateur de Cartes à Jouer AléatoireGénérateur de points à relier📅 Calculateur de Différence entre DatesConvertisseur de taille de fichierGénérateur de cartes de bingoCalculateur d'écart-typeConvertisseur de chiffres romainsGénérateur de lettres aléatoiresGénérateur de mots mêlésLanceur de PièceConvertisseur FPSSuppresseur de Caractères Invisibles📅 Calculatrice de DateCalculateur de Conversion d'Échelle de MaquetteConvertisseur de Livres en KilogrammesCalculatrice de test du khi-deuxCalculatrice OctaleCalculatrice de nombre de chiffresConvertisseur HEX en CMJNRecherche d'identifiant FacebookFormateur de TexteDiviseur AudioCalculatrice d'Écart-Type RelatifGénérateur aléatoire d'animauxCalculatrice de Formule QuadratiqueCalculateur de Déficit CaloriqueGénérateur de tableau de tournoi aléatoireCalculatrice d'Intervalle de ConfianceCalculatrice ModuloGénérateur de patron de cône à platListe des Années BissextilesCalculateur de pente et de niveauGénérateur de Pays AléatoireCalculateur de percentile de tailleGénérateur de LabyrinthesRecherche d'Identifiant InstagramGénérateur d'adresse MACGénérateur de Code MorseCalculateur de VitesseCalculateur de Numéro MaîtreGénérateur d'Anniversaire AléatoireSupprimer les espacesConvertisseur de Fraction en PourcentageFusionner des vidéosGénérateur de repas aléatoireGénérateur d'heure aléatoireGénérateur d'objet aléatoireGénérateur d'IMEI Aléatoirecalculatrice-de-hba1cCalculatrice CAGRGénérateur d'adresses fictives aléatoiresCréateur de Nuage de Points👙 Calculateur de Taille de Soutien-GorgeSupprimer les sauts de ligneCalculateur d'ArctangenteCalculateur de TangenteCalculateur de courbureCalculatrice du Pourcentage d'AugmentationCalculatrice de Rectangle d'OrConvertisseur Décimal en BinaireCalculatrice de numérologieCalculatrice du Nombre d'Expression🔍 Vérificateur de PlagiatVérificateur de Chemin HamiltonienSolveur du Voyageur de Commerce (TSP)Solveur de Programmation LinéaireCalculateur d'Inclusion-ExclusionSolveur de Relations de RécurrenceCalculateur de Matrice d'AdjacenceCalculateur de Tri TopologiqueCalculateur de Coloration de GraphesSimulateur de Portes LogiquesSolveur de Tableau de Karnaugh (K-Map)Simplificateur d'Algèbre de BooleCalculateur de Fonction de PartitionCalculateur de Racine NumériqueVérificateur de Nombre de FibonacciCalculateur de Fractions ÉgyptiennesCalculateur de Fonction de MöbiusVérificateur de la Conjecture de GoldbachVérificateur de Nombre Premier de MersenneChercheur de Nombres Premiers JumeauxVérificateur de Nombres AmiablesVérificateur de Nombre ParfaitCalculateur d'Exponentiation ModulaireCalculateur de Permutations avec RépétitionCalculateur de Taille d'EffetCalculateur de Risque RelatifCalculateur de Rapport des CotesCalculateur de Tableau de ContingenceCalculateur du Test Exact de FisherCalculateur de Corrélation de Rang de SpearmanCalculateur de Distribution BêtaCalculateur de Distribution de WeibullCalculateur de Distribution ExponentielleCalculateur de Distribution GéométriqueCalculateur de Distribution Binomiale NégativeCalculateur de Distribution HypergéométriqueCalculateur de Test F et Distribution FCalculateur du Théorème de BayesCalculateur de Polynôme CaractéristiqueCalculateur de Puissance de MatriceCalculateur de Décomposition de CholeskyCalculateur de Décomposition QRCalculateur de Diagonalisation de MatriceCalculateur Règle de CramerCalculateur d’Espace ColonneCalculateur d’Espace NulCalculateur d'Angle Entre VecteursCalculateur de Vecteur UnitaireCalculateur de Norme de VecteurCalculateur de Produit VectorielCalculateur de Produit ScalaireCalculateur de Multiplication de MatricesCalculateur de Matrice InverseCalculateur RREF (Forme Échelonnée Réduite)Calculateur de la Méthode de NewtonCalculateur de Matrice JacobienneCalculateur d'Intégrale de SurfaceCalculateur d'Intégrale CurviligneCalculateur de RotationnelCalculateur de DivergenceCalculateur de Gradient MultivariableCalculateur d'Optimisation de CalculSolveur de Taux LiésCalculateur de Taux de Variation InstantanéCalculateur de Taux de Variation MoyenCalculateur de Somme de Séries InfiniesCalculateur de Test de Convergence de SériesCalculateur de Séries EntièresCalculateur de Série de MaclaurinCalculateur Règle de l'HôpitalCalculateur d'Intégrale ImpropreCalculateur de la Règle de SimpsonCalculateur de la Règle du TrapèzeCalculateur de Somme de RiemannGrapheur de Courbes ParamétriquesCalculateur de Surface de RévolutionCalculateur de Volume de RévolutionCalculateur de Distance en Géométrie des CoordonnéesCalculateur Formule de HéronCalculateur de Tangente à un CercleCalculateur de Bissectrice d'AngleCalculateur de Cercle Inscrit (Incercle)Calculateur de Cercle CirconscritCalculateur de Distance du Grand CercleCalculateur de Distance 3DCalculateur de ToreCalculateur de Tronc de CôneCalculateur d’Aire de Polygone IrrégulierCalculateur de Polygone RégulierIdentificateur de Section ConiqueCalculateur d'HyperboleCalculateur de ParaboleCalculateur de Développement du Binôme de NewtonGénérateur du Triangle de PascalCalculateur de Notation Produit (Notation Pi)Calculateur de Notation Sigma (Sommation)Calculateur du Théorème des Racines RationnellesCalculateur de la Règle des Signes de DescartesCalculateur de Droites Parallèles et PerpendiculairesCalculateur d’Équation de DroiteConvertisseur Forme Standard vers Forme Pente-OrdonnéeCalculateur de Forme Point-PenteRésolveur de Système d'Équations Non LinéairesSolveur d'Équations RationnellesRésolveur d'Équations LittéralesSolveur d'Équations TrigonométriquesRésolveur d'Équations ExponentiellesSolveur d'Équations LogarithmiquesCalculateur d'Équation QuartiqueSolveur d’Équation CubiqueCalculateur d'EstimationConvertisseur Nombre en FractionGénérateur de Comptage par SautsCalculateur de Prix UnitaireCalculateur de Plafond et PlancherCalculateur de Valeur AbsolueChercheur de Motifs NumériquesGénérateur de Tableau de Valeur de PositionCalculateur d'Ordre des Opérations (PEMDAS)Calculateur d'Addition et Soustraction PoséeCalculateur de Multiplication LongueGénérateur de Tables de Multiplication🎮 Convertisseur de Monnaie de Jeu🎲 Calculateur de Probabilité de Loot🎰 Calculateur de Pity Gacha⚔️ Calculateur de DPS🎮 Convertisseur de Sensibilité de Jeux❄️ Calculateur de Jour de Neige🚚 Estimateur de Coût de Déménagement📷 OCR / Image en Texte📈 Créateur de Graphiques en Ligne🥧 Créateur de Diagramme Circulaire📊 Créateur de Graphiques en Barres🔊 Générateur de Tonalités🖱️ Compteur de ClicsBloc-notes en ligne⬛ Calculateur de Rapport d’Aspect🌍 Calculateur d'Empreinte CarboneCalculateur de Taille de PneusCalculateur de Coût de Carburant💧 Calculateur de Point de Rosée🌡️ Calculateur d'Indice de Chaleur🌬️ Calculateur de Refroidissement Éolien⏰ Réveil en Ligne⏰ Calculateur de Carte de Pointage🕐 Convertisseur d'Heure Militaire⏱️ Calculateur d'heures⏱️ Chronomètre en Ligne⏱️ Minuterie de Compte à Rebours🌐 Convertisseur de Fuseau HoraireCalculateur de MoquetteCalculateur de Mur de SoutènementCalculateur de Dimensionnement HVACCalculateur d'IsolationCalculateur de PavésCalculateur d'ArmatureCalculateur de BoisCalculateur de SurfaceCalculateur de Multiplication CroiséeCalculateur de Résumé en Cinq NombresCalculateur de PercentileCalculateur de Distribution NormaleCalculateur de Valeur pCalculateur de RatioCalculateur de Complétion du CarréCalculateur d'ArrondiCalculateur de Division LongueCalculatrice ScientifiqueMinuteur d’Étude PomodoroCalculateur de Chiffres SignificatifsCalculateur de Notes d'ExamenCalculateur de Notes PondéréesCalculateur de Note FinaleCalculateur de NotesCalculateur de fréquence de résonanceCalculateur d'impédanceCalculateur de Décibels (dB)Calculateur de Facteur de PuissanceCalculateur de Constante de Temps RCCalculateur de TransformateurCalculateur de Section de FilCalculateur de Minuteur 555Calculateur de condensateurCalculateur de Résistances en ParallèleCalculateur de Diviseur de TensionCalculateur de résistance pour LEDConvertisseur Mole/Gramme/ParticuleCalculateur de TitrageCalculateur de Point d’ÉbullitionCalculateur de Formule EmpiriqueCalculateur de Rendement en PourcentageCalculateur de StœchiométrieÉquilibreur d’Équations ChimiquesCalculateur de DilutionCalculateur de Chevaux VapeurCalculateur de CoupleCalculateur de Chute LibreCalculatrice de la Loi des Gaz ParfaitsCalculateur de PressionCalculateur de DensitéCalculateur de Travail et PuissanceCalculateur d’Énergie PotentielleCalculateur d'Énergie CinétiqueCalculateur de Mouvement de ProjectileCalculateur de Quantité de MouvementCalculateur d'AccélérationCalculateur de ForceCalculateur de ROI InfluenceurCalculateur de ROASCalculateur de CTRVérificateur de Nom d’Utilisateur sur les Réseaux SociauxOptimiseur de Temps de Publication sur les Réseaux SociauxCalculateur de ROI des Réseaux SociauxCalculateur de Coûts Publicitaires FacebookCalculateur de Monétisation YouTube ShortsCalculateur de Revenus TwitchCalculateur de Temps de Visionnage YouTubeConvertisseur de Timestamp Twitter/XStatistiques de Chaîne YouTubeCalculateur de Revenus TikTokGuide des Tailles d'Images Réseaux SociauxGénérateur de Polices InstagramCompteur de Caractères Twitter/XSélecteur de commentaires YouTubeExtracteur de tags YouTubeTéléchargeur de miniatures YouTubeEstimateur de revenus YouTubeGénérateur de personnage RPG aléatoire