[{"data":1,"prerenderedAt":3448},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours":585,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours__counterpart":1956,"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours__slides":2460,"annexes-memo:\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours":2772,"annexes-slides:\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours":3203},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":570,"bo":587,"body":589,"description":1943,"eval":1944,"extension":1945,"labo":1944,"meta":1946,"navigation":879,"path":571,"quizzes":1947,"readingTime":648,"seo":1954,"stem":572,"tp":1944,"__hash__":1955},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.md",[588],"TE02",{"type":590,"value":591,"toc":1933},"minimark",[592,597,610,624,627,631,634,759,763,779,1003,1135,1161,1165,1185,1300,1393,1481,1485,1488,1693,1697,1712,1864,1885,1889,1902,1915,1919,1929],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609],"p",{},"Un ",[602,603,604],"strong",{},"graphe"," modélise des entités reliées entre elles : pages web et\nhyperliens, villes et routes, routeurs et liaisons réseau, cases d'un\nlabyrinthe et passages entre elles. Le ",[602,607,608],{},"parcours"," d'un graphe est\nl'opération de base : visiter chaque sommet une fois, dans un ordre choisi,\npour répondre à une question — « ce sommet est-il atteignable ? », « y a-t-il\nun cycle ? », « quel est le chemin le plus court ? ».",[598,611,612,613,616,617,619,620,623],{},"Cette section suppose la familiarité avec la ",[602,614,615],{},"représentation"," d'un graphe\npar matrice d'adjacence ou liste de successeurs — voir le chapitre\n",[602,618,451],{}," (TA02). Ici, on les ",[602,621,622],{},"explore",".",[625,626],"bo-ref",{"code":588},[593,628,630],{"id":629},"représentation-liste-de-successeurs","Représentation : liste de successeurs",[598,632,633],{},"On utilise la représentation la plus économique pour les graphes peu denses :\nun dictionnaire qui à chaque sommet associe la liste de ses voisins.",[635,636,641],"pre",{"className":637,"code":638,"language":639,"meta":640,"style":640},"language-python shiki shiki-themes github-light github-light github-dark","# Graphe orienté à 6 sommets — exemple du cours.\ngraphe = {\n    'A': ['B', 'C'],\n    'B': ['D'],\n    'C': ['D', 'E'],\n    'D': ['F'],\n    'E': ['F'],\n    'F': []\n}\n","python","",[642,643,644,653,667,689,702,719,732,744,753],"code",{"__ignoreMap":640},[645,646,649],"span",{"class":647,"line":648},"line",1,[645,650,652],{"class":651},"sCsY4","# Graphe orienté à 6 sommets — exemple du cours.\n",[645,654,656,660,664],{"class":647,"line":655},2,[645,657,659],{"class":658},"sxrX7","graphe ",[645,661,663],{"class":662},"s8jYJ","=",[645,665,666],{"class":658}," {\n",[645,668,670,674,677,680,683,686],{"class":647,"line":669},3,[645,671,673],{"class":672},"sIIMD","    'A'",[645,675,676],{"class":658},": [",[645,678,679],{"class":672},"'B'",[645,681,682],{"class":658},", ",[645,684,685],{"class":672},"'C'",[645,687,688],{"class":658},"],\n",[645,690,692,695,697,700],{"class":647,"line":691},4,[645,693,694],{"class":672},"    'B'",[645,696,676],{"class":658},[645,698,699],{"class":672},"'D'",[645,701,688],{"class":658},[645,703,705,708,710,712,714,717],{"class":647,"line":704},5,[645,706,707],{"class":672},"    'C'",[645,709,676],{"class":658},[645,711,699],{"class":672},[645,713,682],{"class":658},[645,715,716],{"class":672},"'E'",[645,718,688],{"class":658},[645,720,722,725,727,730],{"class":647,"line":721},6,[645,723,724],{"class":672},"    'D'",[645,726,676],{"class":658},[645,728,729],{"class":672},"'F'",[645,731,688],{"class":658},[645,733,735,738,740,742],{"class":647,"line":734},7,[645,736,737],{"class":672},"    'E'",[645,739,676],{"class":658},[645,741,729],{"class":672},[645,743,688],{"class":658},[645,745,747,750],{"class":647,"line":746},8,[645,748,749],{"class":672},"    'F'",[645,751,752],{"class":658},": []\n",[645,754,756],{"class":647,"line":755},9,[645,757,758],{"class":658},"}\n",[593,760,762],{"id":761},"parcours-en-profondeur-dfs","Parcours en profondeur (DFS)",[598,764,765,766,769,770,774,775,778],{},"Le ",[602,767,768],{},"parcours en profondeur"," (",[771,772,773],"em",{},"Depth-First Search",") plonge le plus loin\npossible le long d'une branche avant de remonter pour explorer une autre.\nNaturellement récursif, il peut aussi s'écrire de manière itérative avec\nune ",[602,776,777],{},"pile explicite",". C'est exactement la façon dont on explore un\nlabyrinthe en s'enfonçant toujours dans le couloir le plus profond — quand\non rencontre un cul-de-sac, on revient en arrière jusqu'au dernier\nembranchement non exploré.",[635,780,782],{"className":637,"code":781,"language":639,"meta":640,"style":640},"def dfs(graphe, depart):\n    visite = set()\n    def explore(s):\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                explore(voisin)\n    explore(depart)\n    return visite\n\n# Version itérative — utile quand la récursion risque de déborder la pile.\ndef dfs_iter(graphe, depart):\n    visite = set()\n    pile = [depart]\n    while pile:\n        s = pile.pop()                # LIFO\n        if s in visite:\n            continue\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                pile.append(voisin)\n    return visite\n",[642,783,784,796,810,821,826,840,856,861,866,874,881,887,897,908,919,928,942,955,961,966,977,990,996],{"__ignoreMap":640},[645,785,786,789,793],{"class":647,"line":648},[645,787,788],{"class":662},"def",[645,790,792],{"class":791},"snPdu"," dfs",[645,794,795],{"class":658},"(graphe, depart):\n",[645,797,798,801,803,807],{"class":647,"line":655},[645,799,800],{"class":658},"    visite ",[645,802,663],{"class":662},[645,804,806],{"class":805},"sBjJW"," set",[645,808,809],{"class":658},"()\n",[645,811,812,815,818],{"class":647,"line":669},[645,813,814],{"class":662},"    def",[645,816,817],{"class":791}," explore",[645,819,820],{"class":658},"(s):\n",[645,822,823],{"class":647,"line":691},[645,824,825],{"class":658},"        visite.add(s)\n",[645,827,828,831,834,837],{"class":647,"line":704},[645,829,830],{"class":662},"        for",[645,832,833],{"class":658}," voisin ",[645,835,836],{"class":662},"in",[645,838,839],{"class":658}," graphe[s]:\n",[645,841,842,845,847,850,853],{"class":647,"line":721},[645,843,844],{"class":662},"            if",[645,846,833],{"class":658},[645,848,849],{"class":662},"not",[645,851,852],{"class":662}," in",[645,854,855],{"class":658}," visite:\n",[645,857,858],{"class":647,"line":734},[645,859,860],{"class":658},"                explore(voisin)\n",[645,862,863],{"class":647,"line":746},[645,864,865],{"class":658},"    explore(depart)\n",[645,867,868,871],{"class":647,"line":755},[645,869,870],{"class":662},"    return",[645,872,873],{"class":658}," visite\n",[645,875,877],{"class":647,"line":876},10,[645,878,880],{"emptyLinePlaceholder":879},true,"\n",[645,882,884],{"class":647,"line":883},11,[645,885,886],{"class":651},"# Version itérative — utile quand la récursion risque de déborder la pile.\n",[645,888,890,892,895],{"class":647,"line":889},12,[645,891,788],{"class":662},[645,893,894],{"class":791}," dfs_iter",[645,896,795],{"class":658},[645,898,900,902,904,906],{"class":647,"line":899},13,[645,901,800],{"class":658},[645,903,663],{"class":662},[645,905,806],{"class":805},[645,907,809],{"class":658},[645,909,911,914,916],{"class":647,"line":910},14,[645,912,913],{"class":658},"    pile ",[645,915,663],{"class":662},[645,917,918],{"class":658}," [depart]\n",[645,920,922,925],{"class":647,"line":921},15,[645,923,924],{"class":662},"    while",[645,926,927],{"class":658}," pile:\n",[645,929,931,934,936,939],{"class":647,"line":930},16,[645,932,933],{"class":658},"        s ",[645,935,663],{"class":662},[645,937,938],{"class":658}," pile.pop()                ",[645,940,941],{"class":651},"# LIFO\n",[645,943,945,948,951,953],{"class":647,"line":944},17,[645,946,947],{"class":662},"        if",[645,949,950],{"class":658}," s ",[645,952,836],{"class":662},[645,954,855],{"class":658},[645,956,958],{"class":647,"line":957},18,[645,959,960],{"class":662},"            continue\n",[645,962,964],{"class":647,"line":963},19,[645,965,825],{"class":658},[645,967,969,971,973,975],{"class":647,"line":968},20,[645,970,830],{"class":662},[645,972,833],{"class":658},[645,974,836],{"class":662},[645,976,839],{"class":658},[645,978,980,982,984,986,988],{"class":647,"line":979},21,[645,981,844],{"class":662},[645,983,833],{"class":658},[645,985,849],{"class":662},[645,987,852],{"class":662},[645,989,855],{"class":658},[645,991,993],{"class":647,"line":992},22,[645,994,995],{"class":658},"                pile.append(voisin)\n",[645,997,999,1001],{"class":647,"line":998},23,[645,1000,870],{"class":662},[645,1002,873],{"class":658},[598,1004,1005,1008,1009,1012,1013,1134],{},[602,1006,1007],{},"Invariant"," : à chaque appel récursif, l'ensemble ",[642,1010,1011],{},"visite"," contient tous les\nsommets atteints par la branche en cours. Tout sommet inséré sera traité\nexactement une fois — le coût total est en ",[645,1014,1017,1068],{"className":1015},[1016],"katex",[645,1018,1021],{"className":1019},[1020],"katex-mathml",[1022,1023,1025],"math",{"xmlns":1024},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[1026,1027,1028,1063],"semantics",{},[1029,1030,1031,1036,1041,1045,1048,1050,1053,1055,1058,1060],"mrow",{},[1032,1033,1035],"mi",{"mathvariant":1034},"script","O",[1037,1038,1040],"mo",{"stretchy":1039},"false","(",[1032,1042,1044],{"mathvariant":1043},"normal","∣",[1032,1046,1047],{},"V",[1032,1049,1044],{"mathvariant":1043},[1037,1051,1052],{},"+",[1032,1054,1044],{"mathvariant":1043},[1032,1056,1057],{},"E",[1032,1059,1044],{"mathvariant":1043},[1037,1061,1062],{"stretchy":1039},")",[1064,1065,1067],"annotation",{"encoding":1066},"application\u002Fx-tex","\\mathcal{O}(|V| + |E|)",[645,1069,1073,1114],{"className":1070,"ariaHidden":1072},[1071],"katex-html","true",[645,1074,1077,1082,1088,1092,1095,1100,1103,1107,1111],{"className":1075},[1076],"base",[645,1078],{"className":1079,"style":1081},[1080],"strut","height:1em;vertical-align:-0.25em;",[645,1083,1035],{"className":1084,"style":1087},[1085,1086],"mord","mathcal","margin-right:0.0278em;",[645,1089,1040],{"className":1090},[1091],"mopen",[645,1093,1044],{"className":1094},[1085],[645,1096,1047],{"className":1097,"style":1099},[1085,1098],"mathnormal","margin-right:0.2222em;",[645,1101,1044],{"className":1102},[1085],[645,1104],{"className":1105,"style":1099},[1106],"mspace",[645,1108,1052],{"className":1109},[1110],"mbin",[645,1112],{"className":1113,"style":1099},[1106],[645,1115,1117,1120,1123,1127,1130],{"className":1116},[1076],[645,1118],{"className":1119,"style":1081},[1080],[645,1121,1044],{"className":1122},[1085],[645,1124,1057],{"className":1125,"style":1126},[1085,1098],"margin-right:0.0576em;",[645,1128,1044],{"className":1129},[1085],[645,1131,1062],{"className":1132},[1133],"mclose"," : chaque\nsommet ouvert une fois, chaque arête parcourue une fois.",[1136,1137,1140,1146],"self-eval-qcm",{"correct":1138,"slug":1139},"1","graphes-parcours-c1",[1141,1142,1143],"template",{"v-slot:question":640},[598,1144,1145],{},"La version itérative de DFS utilise une…",[1141,1147,1148],{"v-slot:choices":640},[1149,1150,1151,1155,1158],"ul",{},[1152,1153,1154],"li",{},"file",[1152,1156,1157],{},"pile",[1152,1159,1160],{},"liste triée",[593,1162,1164],{"id":1163},"parcours-en-largeur-bfs","Parcours en largeur (BFS)",[598,1166,765,1167,769,1170,1173,1174,1177,1178,1180,1181,1184],{},[602,1168,1169],{},"parcours en largeur",[771,1171,1172],{},"Breadth-First Search",") visite les sommets par\n",[602,1175,1176],{},"ordre de distance"," au sommet de départ : tous les voisins immédiats d'abord,\npuis les voisins de voisins, etc. Il utilise une ",[602,1179,1154],{}," (FIFO). On peut le\nvisualiser comme les ",[602,1182,1183],{},"ondes concentriques"," d'un caillou jeté dans l'eau —\nchaque cercle agrandit la zone explorée d'une unité de distance.",[635,1186,1188],{"className":637,"code":1187,"language":639,"meta":640,"style":640},"from collections import deque\n\ndef bfs(graphe, depart):\n    visite = {depart}\n    file = deque([depart])\n    while file:\n        s = file.popleft()\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                visite.add(voisin)\n                file.append(voisin)\n    return visite\n",[642,1189,1190,1204,1208,1217,1226,1238,1248,1259,1269,1281,1286,1294],{"__ignoreMap":640},[645,1191,1192,1195,1198,1201],{"class":647,"line":648},[645,1193,1194],{"class":662},"from",[645,1196,1197],{"class":658}," collections ",[645,1199,1200],{"class":662},"import",[645,1202,1203],{"class":658}," deque\n",[645,1205,1206],{"class":647,"line":655},[645,1207,880],{"emptyLinePlaceholder":879},[645,1209,1210,1212,1215],{"class":647,"line":669},[645,1211,788],{"class":662},[645,1213,1214],{"class":791}," bfs",[645,1216,795],{"class":658},[645,1218,1219,1221,1223],{"class":647,"line":691},[645,1220,800],{"class":658},[645,1222,663],{"class":662},[645,1224,1225],{"class":658}," {depart}\n",[645,1227,1228,1232,1235],{"class":647,"line":704},[645,1229,1231],{"class":1230},"sP4rz","    file",[645,1233,1234],{"class":662}," =",[645,1236,1237],{"class":658}," deque([depart])\n",[645,1239,1240,1242,1245],{"class":647,"line":721},[645,1241,924],{"class":662},[645,1243,1244],{"class":1230}," file",[645,1246,1247],{"class":658},":\n",[645,1249,1250,1252,1254,1256],{"class":647,"line":734},[645,1251,933],{"class":658},[645,1253,663],{"class":662},[645,1255,1244],{"class":1230},[645,1257,1258],{"class":658},".popleft()\n",[645,1260,1261,1263,1265,1267],{"class":647,"line":746},[645,1262,830],{"class":662},[645,1264,833],{"class":658},[645,1266,836],{"class":662},[645,1268,839],{"class":658},[645,1270,1271,1273,1275,1277,1279],{"class":647,"line":755},[645,1272,844],{"class":662},[645,1274,833],{"class":658},[645,1276,849],{"class":662},[645,1278,852],{"class":662},[645,1280,855],{"class":658},[645,1282,1283],{"class":647,"line":876},[645,1284,1285],{"class":658},"                visite.add(voisin)\n",[645,1287,1288,1291],{"class":647,"line":883},[645,1289,1290],{"class":1230},"                file",[645,1292,1293],{"class":658},".append(voisin)\n",[645,1295,1296,1298],{"class":647,"line":889},[645,1297,870],{"class":662},[645,1299,873],{"class":658},[598,1301,1302,1303,1388,1389,1392],{},"Coût identique : ",[645,1304,1306,1337],{"className":1305},[1016],[645,1307,1309],{"className":1308},[1020],[1022,1310,1311],{"xmlns":1024},[1026,1312,1313,1335],{},[1029,1314,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333],{},[1032,1316,1035],{"mathvariant":1034},[1037,1318,1040],{"stretchy":1039},[1032,1320,1044],{"mathvariant":1043},[1032,1322,1047],{},[1032,1324,1044],{"mathvariant":1043},[1037,1326,1052],{},[1032,1328,1044],{"mathvariant":1043},[1032,1330,1057],{},[1032,1332,1044],{"mathvariant":1043},[1037,1334,1062],{"stretchy":1039},[1064,1336,1067],{"encoding":1066},[645,1338,1340,1370],{"className":1339,"ariaHidden":1072},[1071],[645,1341,1343,1346,1349,1352,1355,1358,1361,1364,1367],{"className":1342},[1076],[645,1344],{"className":1345,"style":1081},[1080],[645,1347,1035],{"className":1348,"style":1087},[1085,1086],[645,1350,1040],{"className":1351},[1091],[645,1353,1044],{"className":1354},[1085],[645,1356,1047],{"className":1357,"style":1099},[1085,1098],[645,1359,1044],{"className":1360},[1085],[645,1362],{"className":1363,"style":1099},[1106],[645,1365,1052],{"className":1366},[1110],[645,1368],{"className":1369,"style":1099},[1106],[645,1371,1373,1376,1379,1382,1385],{"className":1372},[1076],[645,1374],{"className":1375,"style":1081},[1080],[645,1377,1044],{"className":1378},[1085],[645,1380,1057],{"className":1381,"style":1126},[1085,1098],[645,1383,1044],{"className":1384},[1085],[645,1386,1062],{"className":1387},[1133],". La différence avec DFS est l'",[602,1390,1391],{},"ordre\nde découverte"," — BFS garantit la plus courte distance en nombre d'arêtes,\nDFS ne le garantit pas.",[1394,1395,1396,1412],"table",{},[1397,1398,1399],"thead",{},[1400,1401,1402,1406,1409],"tr",{},[1403,1404,1405],"th",{},"Critère",[1403,1407,1408],{},"DFS",[1403,1410,1411],{},"BFS",[1413,1414,1415,1430,1441,1455,1471],"tbody",{},[1400,1416,1417,1421,1424],{},[1418,1419,1420],"td",{},"Structure auxiliaire",[1418,1422,1423],{},"pile (ou récursion)",[1418,1425,1426,1427,1062],{},"file (",[642,1428,1429],{},"deque",[1400,1431,1432,1435,1438],{},[1418,1433,1434],{},"Ordre de visite",[1418,1436,1437],{},"profondeur d'abord",[1418,1439,1440],{},"distance croissante",[1400,1442,1443,1450,1453],{},[1418,1444,1445,1446,1449],{},"Trouve ",[602,1447,1448],{},"un"," chemin",[1418,1451,1452],{},"oui",[1418,1454,1452],{},[1400,1456,1457,1464,1467],{},[1418,1458,1459,1460,1463],{},"Trouve le ",[602,1461,1462],{},"plus court"," chemin (en arêtes)",[1418,1465,1466],{},"non",[1418,1468,1469],{},[602,1470,1452],{},[1400,1472,1473,1476,1479],{},[1418,1474,1475],{},"Coût",[1418,1477,1478],{},"$\\mathcal{O}(",[1418,1480,1047],{},[593,1482,1484],{"id":1483},"recherche-dun-chemin","Recherche d'un chemin",[598,1486,1487],{},"Adapter le BFS pour reconstruire un chemin : on mémorise le prédécesseur de\nchaque sommet à mesure qu'on le découvre, puis on remonte.",[635,1489,1491],{"className":637,"code":1490,"language":639,"meta":640,"style":640},"def chemin_bfs(graphe, depart, arrivee):\n    if depart == arrivee:\n        return [depart]\n    pred = {depart: None}\n    file = deque([depart])\n    while file:\n        s = file.popleft()\n        for voisin in graphe[s]:\n            if voisin not in pred:\n                pred[voisin] = s\n                if voisin == arrivee:        # reconstruction\n                    chemin = [arrivee]\n                    while pred[chemin[-1]] is not None:\n                        chemin.append(pred[chemin[-1]])\n                    return list(reversed(chemin))\n                file.append(voisin)\n    return None                              # arrivée inatteignable\n",[642,1492,1493,1503,1517,1524,1539,1547,1555,1565,1575,1588,1598,1613,1623,1650,1662,1678,1684],{"__ignoreMap":640},[645,1494,1495,1497,1500],{"class":647,"line":648},[645,1496,788],{"class":662},[645,1498,1499],{"class":791}," chemin_bfs",[645,1501,1502],{"class":658},"(graphe, depart, arrivee):\n",[645,1504,1505,1508,1511,1514],{"class":647,"line":655},[645,1506,1507],{"class":662},"    if",[645,1509,1510],{"class":658}," depart ",[645,1512,1513],{"class":662},"==",[645,1515,1516],{"class":658}," arrivee:\n",[645,1518,1519,1522],{"class":647,"line":669},[645,1520,1521],{"class":662},"        return",[645,1523,918],{"class":658},[645,1525,1526,1529,1531,1534,1537],{"class":647,"line":691},[645,1527,1528],{"class":658},"    pred ",[645,1530,663],{"class":662},[645,1532,1533],{"class":658}," {depart: ",[645,1535,1536],{"class":805},"None",[645,1538,758],{"class":658},[645,1540,1541,1543,1545],{"class":647,"line":704},[645,1542,1231],{"class":1230},[645,1544,1234],{"class":662},[645,1546,1237],{"class":658},[645,1548,1549,1551,1553],{"class":647,"line":721},[645,1550,924],{"class":662},[645,1552,1244],{"class":1230},[645,1554,1247],{"class":658},[645,1556,1557,1559,1561,1563],{"class":647,"line":734},[645,1558,933],{"class":658},[645,1560,663],{"class":662},[645,1562,1244],{"class":1230},[645,1564,1258],{"class":658},[645,1566,1567,1569,1571,1573],{"class":647,"line":746},[645,1568,830],{"class":662},[645,1570,833],{"class":658},[645,1572,836],{"class":662},[645,1574,839],{"class":658},[645,1576,1577,1579,1581,1583,1585],{"class":647,"line":755},[645,1578,844],{"class":662},[645,1580,833],{"class":658},[645,1582,849],{"class":662},[645,1584,852],{"class":662},[645,1586,1587],{"class":658}," pred:\n",[645,1589,1590,1593,1595],{"class":647,"line":876},[645,1591,1592],{"class":658},"                pred[voisin] ",[645,1594,663],{"class":662},[645,1596,1597],{"class":658}," s\n",[645,1599,1600,1603,1605,1607,1610],{"class":647,"line":883},[645,1601,1602],{"class":662},"                if",[645,1604,833],{"class":658},[645,1606,1513],{"class":662},[645,1608,1609],{"class":658}," arrivee:        ",[645,1611,1612],{"class":651},"# reconstruction\n",[645,1614,1615,1618,1620],{"class":647,"line":889},[645,1616,1617],{"class":658},"                    chemin ",[645,1619,663],{"class":662},[645,1621,1622],{"class":658}," [arrivee]\n",[645,1624,1625,1628,1631,1634,1636,1639,1642,1645,1648],{"class":647,"line":899},[645,1626,1627],{"class":662},"                    while",[645,1629,1630],{"class":658}," pred[chemin[",[645,1632,1633],{"class":662},"-",[645,1635,1138],{"class":805},[645,1637,1638],{"class":658},"]] ",[645,1640,1641],{"class":662},"is",[645,1643,1644],{"class":662}," not",[645,1646,1647],{"class":805}," None",[645,1649,1247],{"class":658},[645,1651,1652,1655,1657,1659],{"class":647,"line":910},[645,1653,1654],{"class":658},"                        chemin.append(pred[chemin[",[645,1656,1633],{"class":662},[645,1658,1138],{"class":805},[645,1660,1661],{"class":658},"]])\n",[645,1663,1664,1667,1670,1672,1675],{"class":647,"line":921},[645,1665,1666],{"class":662},"                    return",[645,1668,1669],{"class":805}," list",[645,1671,1040],{"class":658},[645,1673,1674],{"class":805},"reversed",[645,1676,1677],{"class":658},"(chemin))\n",[645,1679,1680,1682],{"class":647,"line":930},[645,1681,1290],{"class":1230},[645,1683,1293],{"class":658},[645,1685,1686,1688,1690],{"class":647,"line":944},[645,1687,870],{"class":662},[645,1689,1647],{"class":805},[645,1691,1692],{"class":651},"                              # arrivée inatteignable\n",[593,1694,1696],{"id":1695},"détection-de-cycle","Détection de cycle",[598,1698,1699,1700,1703,1704,1707,1708,1711],{},"Dans un ",[602,1701,1702],{},"graphe non orienté",", on détecte un cycle par DFS : en explorant\ndepuis un sommet ",[642,1705,1706],{},"s",", si l'on rencontre un voisin déjà visité ",[602,1709,1710],{},"autre que\ncelui d'où l'on vient",", c'est un cycle.",[635,1713,1715],{"className":637,"code":1714,"language":639,"meta":640,"style":640},"def a_un_cycle(graphe):\n    visite = set()\n    def explore(s, parent):\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                if explore(voisin, s):\n                    return True\n            elif voisin != parent:           # déjà vu et pas le père : cycle\n                return True\n        return False\n    for s in graphe:\n        if s not in visite:\n            if explore(s, None):\n                return True\n    return False\n",[642,1716,1717,1727,1737,1746,1750,1760,1772,1779,1786,1802,1809,1816,1828,1840,1852,1858],{"__ignoreMap":640},[645,1718,1719,1721,1724],{"class":647,"line":648},[645,1720,788],{"class":662},[645,1722,1723],{"class":791}," a_un_cycle",[645,1725,1726],{"class":658},"(graphe):\n",[645,1728,1729,1731,1733,1735],{"class":647,"line":655},[645,1730,800],{"class":658},[645,1732,663],{"class":662},[645,1734,806],{"class":805},[645,1736,809],{"class":658},[645,1738,1739,1741,1743],{"class":647,"line":669},[645,1740,814],{"class":662},[645,1742,817],{"class":791},[645,1744,1745],{"class":658},"(s, parent):\n",[645,1747,1748],{"class":647,"line":691},[645,1749,825],{"class":658},[645,1751,1752,1754,1756,1758],{"class":647,"line":704},[645,1753,830],{"class":662},[645,1755,833],{"class":658},[645,1757,836],{"class":662},[645,1759,839],{"class":658},[645,1761,1762,1764,1766,1768,1770],{"class":647,"line":721},[645,1763,844],{"class":662},[645,1765,833],{"class":658},[645,1767,849],{"class":662},[645,1769,852],{"class":662},[645,1771,855],{"class":658},[645,1773,1774,1776],{"class":647,"line":734},[645,1775,1602],{"class":662},[645,1777,1778],{"class":658}," explore(voisin, s):\n",[645,1780,1781,1783],{"class":647,"line":746},[645,1782,1666],{"class":662},[645,1784,1785],{"class":805}," True\n",[645,1787,1788,1791,1793,1796,1799],{"class":647,"line":755},[645,1789,1790],{"class":662},"            elif",[645,1792,833],{"class":658},[645,1794,1795],{"class":662},"!=",[645,1797,1798],{"class":658}," parent:           ",[645,1800,1801],{"class":651},"# déjà vu et pas le père : cycle\n",[645,1803,1804,1807],{"class":647,"line":876},[645,1805,1806],{"class":662},"                return",[645,1808,1785],{"class":805},[645,1810,1811,1813],{"class":647,"line":883},[645,1812,1521],{"class":662},[645,1814,1815],{"class":805}," False\n",[645,1817,1818,1821,1823,1825],{"class":647,"line":889},[645,1819,1820],{"class":662},"    for",[645,1822,950],{"class":658},[645,1824,836],{"class":662},[645,1826,1827],{"class":658}," graphe:\n",[645,1829,1830,1832,1834,1836,1838],{"class":647,"line":899},[645,1831,947],{"class":662},[645,1833,950],{"class":658},[645,1835,849],{"class":662},[645,1837,852],{"class":662},[645,1839,855],{"class":658},[645,1841,1842,1844,1847,1849],{"class":647,"line":910},[645,1843,844],{"class":662},[645,1845,1846],{"class":658}," explore(s, ",[645,1848,1536],{"class":805},[645,1850,1851],{"class":658},"):\n",[645,1853,1854,1856],{"class":647,"line":921},[645,1855,1806],{"class":662},[645,1857,1785],{"class":805},[645,1859,1860,1862],{"class":647,"line":930},[645,1861,870],{"class":662},[645,1863,1815],{"class":805},[1136,1865,1867,1872],{"correct":1138,"slug":1866},"graphes-parcours-c2",[1141,1868,1869],{"v-slot:question":640},[598,1870,1871],{},"DFS et BFS ont un coût en…",[1141,1873,1874],{"v-slot:choices":640},[1149,1875,1876,1879,1882],{},[1152,1877,1878],{},"O(V × E)",[1152,1880,1881],{},"O(V + E)",[1152,1883,1884],{},"O(V²)",[593,1886,1888],{"id":1887},"deux-exemples-concrets","Deux exemples concrets",[598,1890,1891,1894,1895,1898,1899,1901],{},[602,1892,1893],{},"Labyrinthe"," : chaque case est un sommet, chaque passage une arête. Un BFS\ndepuis l'entrée trouve la sortie en ",[602,1896,1897],{},"un minimum de pas"," ; un DFS explore\nrécursivement les couloirs et fonctionne très bien quand on cherche juste\n",[602,1900,1448],{}," chemin.",[598,1903,1904,1907,1908,1911,1912,623],{},[602,1905,1906],{},"Routage Internet"," : le réseau est un graphe de routeurs reliés par des\nliaisons physiques. Le protocole OSPF (vu au chapitre ",[602,1909,1910],{},"Architectures\nmatérielles, systèmes d'exploitation et réseaux",", TC03) construit la table\nde routage en cherchant les plus courts chemins — il utilise une variante\npondérée de BFS appelée ",[602,1913,1914],{},"algorithme de Dijkstra",[593,1916,1918],{"id":1917},"pour-aller-plus-loin","Pour aller plus loin",[598,1920,1921,1922,1924,1925,1928],{},"L'",[602,1923,1914],{}," étend le BFS aux graphes ",[602,1926,1927],{},"pondérés"," (chaque\narête a un coût) : il utilise une file de priorité au lieu d'une file\nordinaire. Hors programme strict de Terminale, mais incontournable dès\nqu'on parle de plus court chemin réel — c'est lui qui fait fonctionner OSPF\net, en partie, votre GPS.",[1930,1931,1932],"style",{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":640,"searchDepth":655,"depth":655,"links":1934},[1935,1936,1937,1938,1939,1940,1941,1942],{"id":595,"depth":655,"text":596},{"id":629,"depth":655,"text":630},{"id":761,"depth":655,"text":762},{"id":1163,"depth":655,"text":1164},{"id":1483,"depth":655,"text":1484},{"id":1695,"depth":655,"text":1696},{"id":1887,"depth":655,"text":1888},{"id":1917,"depth":655,"text":1918},"Explorer un graphe en profondeur ou en largeur, détecter un cycle, chercher un chemin — du labyrinthe au routage Internet.",null,"md",{},[1948,1952],{"slug":1139,"kind":1949,"question":1145,"choices":1950,"correct":1138,"multi":1951,"explanation":640},"qcm",[1154,1157,1160],false,{"slug":1866,"kind":1949,"question":1871,"choices":1953,"correct":1138,"multi":1951,"explanation":640},[1878,1881,1884],{"title":570,"description":1943},"FqRBAtOWWx0MbQZMTz6CFDBBw4hV1LsJrMGJTzZW4uk",{"id":1957,"title":1958,"bo":1959,"body":1960,"description":2453,"eval":1944,"extension":1945,"labo":1944,"meta":2454,"navigation":1951,"path":2455,"quizzes":2456,"readingTime":648,"seo":2457,"stem":2458,"tp":1944,"__hash__":2459},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.memo.md","Parcours de graphes — l'essentiel",[588],{"type":590,"value":1961,"toc":2445},[1962,1966,2070,2074,2207,2211,2270,2274,2319,2323,2338,2342,2442],[593,1963,1965],{"id":1964},"en-une-phrase","En une phrase",[598,1967,1968,1970,1971,1973,1974,1976,1977,1979,1980,2065,2066,2069],{},[602,1969,1408],{}," plonge avec une ",[602,1972,1157],{}," (ou récursion), ",[602,1975,1411],{}," étale avec une ",[602,1978,1154],{}," ;\nles deux coûtent ",[645,1981,1983,2014],{"className":1982},[1016],[645,1984,1986],{"className":1985},[1020],[1022,1987,1988],{"xmlns":1024},[1026,1989,1990,2012],{},[1029,1991,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010],{},[1032,1993,1035],{"mathvariant":1034},[1037,1995,1040],{"stretchy":1039},[1032,1997,1044],{"mathvariant":1043},[1032,1999,1047],{},[1032,2001,1044],{"mathvariant":1043},[1037,2003,1052],{},[1032,2005,1044],{"mathvariant":1043},[1032,2007,1057],{},[1032,2009,1044],{"mathvariant":1043},[1037,2011,1062],{"stretchy":1039},[1064,2013,1067],{"encoding":1066},[645,2015,2017,2047],{"className":2016,"ariaHidden":1072},[1071],[645,2018,2020,2023,2026,2029,2032,2035,2038,2041,2044],{"className":2019},[1076],[645,2021],{"className":2022,"style":1081},[1080],[645,2024,1035],{"className":2025,"style":1087},[1085,1086],[645,2027,1040],{"className":2028},[1091],[645,2030,1044],{"className":2031},[1085],[645,2033,1047],{"className":2034,"style":1099},[1085,1098],[645,2036,1044],{"className":2037},[1085],[645,2039],{"className":2040,"style":1099},[1106],[645,2042,1052],{"className":2043},[1110],[645,2045],{"className":2046,"style":1099},[1106],[645,2048,2050,2053,2056,2059,2062],{"className":2049},[1076],[645,2051],{"className":2052,"style":1081},[1080],[645,2054,1044],{"className":2055},[1085],[645,2057,1057],{"className":2058,"style":1126},[1085,1098],[645,2060,1044],{"className":2061},[1085],[645,2063,1062],{"className":2064},[1133]," ; seul le BFS garantit le ",[602,2067,2068],{},"plus\ncourt chemin"," en nombre d'arêtes.",[593,2071,2073],{"id":2072},"à-mémoriser","À mémoriser",[1149,2075,2076,2086,2095,2102,2192,2197],{},[1152,2077,2078,2081,2082,2085],{},[602,2079,2080],{},"Représentation"," : ",[642,2083,2084],{},"graphe = {sommet: [voisins]}"," (liste de successeurs).",[1152,2087,2088,2091,2092,623],{},[602,2089,2090],{},"DFS récursif"," ou ",[602,2093,2094],{},"DFS itératif avec pile",[1152,2096,2097,2081,2099,623],{},[602,2098,1411],{},[642,2100,2101],{},"from collections import deque",[1152,2103,2104,2106,2107,623],{},[602,2105,1475],{}," : DFS et BFS en ",[645,2108,2110,2141],{"className":2109},[1016],[645,2111,2113],{"className":2112},[1020],[1022,2114,2115],{"xmlns":1024},[1026,2116,2117,2139],{},[1029,2118,2119,2121,2123,2125,2127,2129,2131,2133,2135,2137],{},[1032,2120,1035],{"mathvariant":1034},[1037,2122,1040],{"stretchy":1039},[1032,2124,1044],{"mathvariant":1043},[1032,2126,1047],{},[1032,2128,1044],{"mathvariant":1043},[1037,2130,1052],{},[1032,2132,1044],{"mathvariant":1043},[1032,2134,1057],{},[1032,2136,1044],{"mathvariant":1043},[1037,2138,1062],{"stretchy":1039},[1064,2140,1067],{"encoding":1066},[645,2142,2144,2174],{"className":2143,"ariaHidden":1072},[1071],[645,2145,2147,2150,2153,2156,2159,2162,2165,2168,2171],{"className":2146},[1076],[645,2148],{"className":2149,"style":1081},[1080],[645,2151,1035],{"className":2152,"style":1087},[1085,1086],[645,2154,1040],{"className":2155},[1091],[645,2157,1044],{"className":2158},[1085],[645,2160,1047],{"className":2161,"style":1099},[1085,1098],[645,2163,1044],{"className":2164},[1085],[645,2166],{"className":2167,"style":1099},[1106],[645,2169,1052],{"className":2170},[1110],[645,2172],{"className":2173,"style":1099},[1106],[645,2175,2177,2180,2183,2186,2189],{"className":2176},[1076],[645,2178],{"className":2179,"style":1081},[1080],[645,2181,1044],{"className":2182},[1085],[645,2184,1057],{"className":2185,"style":1126},[1085,1098],[645,2187,1044],{"className":2188},[1085],[645,2190,1062],{"className":2191},[1133],[1152,2193,2194,2196],{},[602,2195,1696],{}," non orienté : DFS qui mémorise le parent ; voisin\ndéjà vu ≠ parent ⇒ cycle.",[1152,2198,2199,2202,2203,2206],{},[602,2200,2201],{},"Reconstruire un chemin"," : mémoriser le prédécesseur (",[642,2204,2205],{},"pred[voisin] = s",").",[593,2208,2210],{"id":2209},"dfs-vs-bfs","DFS vs BFS",[1394,2212,2213,2224],{},[1397,2214,2215],{},[1400,2216,2217,2220,2222],{},[1403,2218,2219],{},"Aspect",[1403,2221,1408],{},[1403,2223,1411],{},[1413,2225,2226,2237,2250,2259],{},[1400,2227,2228,2230,2233],{},[1418,2229,1420],{},[1418,2231,2232],{},"pile \u002F récursion",[1418,2234,1426,2235,1062],{},[642,2236,1429],{},[1400,2238,2239,2242,2245],{},[1418,2240,2241],{},"Premier chemin trouvé",[1418,2243,2244],{},"quelconque",[1418,2246,2247],{},[602,2248,2249],{},"plus court (en arêtes)",[1400,2251,2252,2255,2257],{},[1418,2253,2254],{},"Mémoire en pire cas",[1418,2256,1478],{},[1418,2258,1047],{},[1400,2260,2261,2264,2267],{},[1418,2262,2263],{},"Naturel pour",[1418,2265,2266],{},"atteignabilité, cycles",[1418,2268,2269],{},"distance, plus court chemin",[593,2271,2273],{"id":2272},"à-savoir-reconnaître","À savoir reconnaître",[1394,2275,2276,2286],{},[1397,2277,2278],{},[1400,2279,2280,2283],{},[1403,2281,2282],{},"Situation",[1403,2284,2285],{},"Algorithme",[1413,2287,2288,2295,2303,2311],{},[1400,2289,2290,2293],{},[1418,2291,2292],{},"Sortir d'un labyrinthe en un minimum de pas",[1418,2294,1411],{},[1400,2296,2297,2300],{},[1418,2298,2299],{},"Tester si un graphe contient un cycle",[1418,2301,2302],{},"DFS avec parent",[1400,2304,2305,2308],{},[1418,2306,2307],{},"Énumérer une composante connexe",[1418,2309,2310],{},"DFS ou BFS, indifférent",[1400,2312,2313,2316],{},[1418,2314,2315],{},"Plus court chemin pondéré",[1418,2317,2318],{},"Dijkstra (hors programme)",[593,2320,2322],{"id":2321},"pièges-courants","Pièges courants",[1149,2324,2325,2332,2335],{},[1152,2326,2327,2328,2331],{},"Oublier le test ",[642,2329,2330],{},"if voisin not in visite"," → boucle infinie sur un cycle.",[1152,2333,2334],{},"Confondre DFS itératif (pile) et BFS (file) — c'est l'unique différence\nstructurelle entre les deux versions itératives.",[1152,2336,2337],{},"Détection de cycle : ne pas confondre orienté et non orienté ; en orienté\nil faut distinguer arête « avant » et « retour ».",[593,2339,2341],{"id":2340},"syntaxe-python-à-retenir","Syntaxe Python (à retenir)",[635,2343,2345],{"className":637,"code":2344,"language":639,"meta":640,"style":640},"from collections import deque\n\ndef bfs(g, depart):\n    vu, file = {depart}, deque([depart])\n    while file:\n        s = file.popleft()\n        for v in g[s]:\n            if v not in vu:\n                vu.add(v); file.append(v)\n    return vu\n",[642,2346,2347,2357,2361,2370,2382,2390,2400,2412,2425,2435],{"__ignoreMap":640},[645,2348,2349,2351,2353,2355],{"class":647,"line":648},[645,2350,1194],{"class":662},[645,2352,1197],{"class":658},[645,2354,1200],{"class":662},[645,2356,1203],{"class":658},[645,2358,2359],{"class":647,"line":655},[645,2360,880],{"emptyLinePlaceholder":879},[645,2362,2363,2365,2367],{"class":647,"line":669},[645,2364,788],{"class":662},[645,2366,1214],{"class":791},[645,2368,2369],{"class":658},"(g, depart):\n",[645,2371,2372,2375,2377,2379],{"class":647,"line":691},[645,2373,2374],{"class":658},"    vu, ",[645,2376,1154],{"class":1230},[645,2378,1234],{"class":662},[645,2380,2381],{"class":658}," {depart}, deque([depart])\n",[645,2383,2384,2386,2388],{"class":647,"line":704},[645,2385,924],{"class":662},[645,2387,1244],{"class":1230},[645,2389,1247],{"class":658},[645,2391,2392,2394,2396,2398],{"class":647,"line":721},[645,2393,933],{"class":658},[645,2395,663],{"class":662},[645,2397,1244],{"class":1230},[645,2399,1258],{"class":658},[645,2401,2402,2404,2407,2409],{"class":647,"line":734},[645,2403,830],{"class":662},[645,2405,2406],{"class":658}," v ",[645,2408,836],{"class":662},[645,2410,2411],{"class":658}," g[s]:\n",[645,2413,2414,2416,2418,2420,2422],{"class":647,"line":746},[645,2415,844],{"class":662},[645,2417,2406],{"class":658},[645,2419,849],{"class":662},[645,2421,852],{"class":662},[645,2423,2424],{"class":658}," vu:\n",[645,2426,2427,2430,2432],{"class":647,"line":755},[645,2428,2429],{"class":658},"                vu.add(v); ",[645,2431,1154],{"class":1230},[645,2433,2434],{"class":658},".append(v)\n",[645,2436,2437,2439],{"class":647,"line":876},[645,2438,870],{"class":662},[645,2440,2441],{"class":658}," vu\n",[1930,2443,2444],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":640,"searchDepth":655,"depth":655,"links":2446},[2447,2448,2449,2450,2451,2452],{"id":1964,"depth":655,"text":1965},{"id":2072,"depth":655,"text":2073},{"id":2209,"depth":655,"text":2210},{"id":2272,"depth":655,"text":2273},{"id":2321,"depth":655,"text":2322},{"id":2340,"depth":655,"text":2341},"Mémo de révision sur DFS, BFS, détection de cycle et chemins.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours.memo",[],{"title":1958,"description":2453},"2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.memo","DW_SojHCouoZMjuk1P1wuatTuzjcSese2CiQ6vab9Mo",{"id":2461,"title":2462,"body":2463,"description":2766,"extension":1945,"meta":2767,"navigation":1951,"path":2768,"seo":2769,"stem":2770,"__hash__":2771},"coursSlides\u002F2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.slides.md","Parcours de graphes — diapositives",{"type":590,"value":2464,"toc":2764},[2465,2470,2473,2476,2480,2550,2553,2555,2559,2573,2575,2579,2597,2599,2601,2654,2656,2660,2667,2669,2673,2680,2698,2700,2704,2707,2726,2728,2732,2744,2746,2750,2761],[2466,2467,2469],"h1",{"id":2468},"parcours-de-graphes","Parcours de graphes",[598,2471,2472],{},"TE02 — DFS, BFS, cycles, chemins.",[2474,2475],"hr",{},[2466,2477,2479],{"id":2478},"représentation-en-python","Représentation en Python",[635,2481,2483],{"className":637,"code":2482,"language":639,"meta":640,"style":640},"graphe = {\n    'A': ['B', 'C'],\n    'B': ['D'],\n    'C': ['D', 'E'],\n    'D': ['F'],\n    ...\n}\n",[642,2484,2485,2493,2507,2517,2531,2541,2546],{"__ignoreMap":640},[645,2486,2487,2489,2491],{"class":647,"line":648},[645,2488,659],{"class":658},[645,2490,663],{"class":662},[645,2492,666],{"class":658},[645,2494,2495,2497,2499,2501,2503,2505],{"class":647,"line":655},[645,2496,673],{"class":672},[645,2498,676],{"class":658},[645,2500,679],{"class":672},[645,2502,682],{"class":658},[645,2504,685],{"class":672},[645,2506,688],{"class":658},[645,2508,2509,2511,2513,2515],{"class":647,"line":669},[645,2510,694],{"class":672},[645,2512,676],{"class":658},[645,2514,699],{"class":672},[645,2516,688],{"class":658},[645,2518,2519,2521,2523,2525,2527,2529],{"class":647,"line":691},[645,2520,707],{"class":672},[645,2522,676],{"class":658},[645,2524,699],{"class":672},[645,2526,682],{"class":658},[645,2528,716],{"class":672},[645,2530,688],{"class":658},[645,2532,2533,2535,2537,2539],{"class":647,"line":704},[645,2534,724],{"class":672},[645,2536,676],{"class":658},[645,2538,729],{"class":672},[645,2540,688],{"class":658},[645,2542,2543],{"class":647,"line":721},[645,2544,2545],{"class":805},"    ...\n",[645,2547,2548],{"class":647,"line":734},[645,2549,758],{"class":658},[598,2551,2552],{},"Liste de successeurs : économe pour graphes peu denses.",[2474,2554],{},[2466,2556,2558],{"id":2557},"dfs-plonger-dabord","DFS — plonger d'abord",[1149,2560,2561,2564,2570],{},[1152,2562,2563],{},"Récursif : naturel.",[1152,2565,2566,2567,2569],{},"Itératif : avec une ",[602,2568,1157],{}," explicite.",[1152,2571,2572],{},"Marque chaque sommet visité.",[2474,2574],{},[2466,2576,2578],{"id":2577},"bfs-étaler-en-largeur","BFS — étaler en largeur",[1149,2580,2581,2588,2591],{},[1152,2582,2583,2584,769,2586,2206],{},"Utilise une ",[602,2585,1154],{},[642,2587,1429],{},[1152,2589,2590],{},"Visite niveau par niveau.",[1152,2592,2593,2596],{},[602,2594,2595],{},"Plus court chemin"," garanti (en arêtes).",[2474,2598],{},[2466,2600,2210],{"id":2209},[1394,2602,2603,2613],{},[1397,2604,2605],{},[1400,2606,2607,2609,2611],{},[1403,2608],{},[1403,2610,1408],{},[1403,2612,1411],{},[1413,2614,2615,2624,2635,2646],{},[1400,2616,2617,2620,2622],{},[1418,2618,2619],{},"Aux.",[1418,2621,1157],{},[1418,2623,1154],{},[1400,2625,2626,2629,2632],{},[1418,2627,2628],{},"Ordre",[1418,2630,2631],{},"profondeur",[1418,2633,2634],{},"distance",[1400,2636,2637,2640,2642],{},[1418,2638,2639],{},"Plus court",[1418,2641,1466],{},[1418,2643,2644],{},[602,2645,1452],{},[1400,2647,2648,2650,2652],{},[1418,2649,1475],{},[1418,2651,1478],{},[1418,2653,1047],{},[2474,2655],{},[2466,2657,2659],{"id":2658},"visualisation","Visualisation",[2661,2662],"illustration",{"alt":2663,"kind":2664,"src":2665,"svg":2666},"DFS vs BFS sur un même graphe","mermaid","\u002Fillustrations\u002F2.nsi-tale\u002Fte-algorithmique\u002Fgraphe-parcours.svg","\u003Csvg id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\" class=\"illustration-svg flowchart\" viewBox=\"0 0 134.19140625 285.671875\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\">\u003Cstyle>#ill-2-nsi-tale-te-algorithmique-graphe-parcours{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:14px;fill:var(--diagram-text);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .error-icon{fill:#fdecec;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .error-text{fill:var(--diagram-text);stroke:var(--diagram-text);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-thickness-normal{stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-thickness-thick{stroke-width:3.5px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-pattern-solid{stroke-dasharray:0;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-thickness-invisible{stroke-width:0;fill:none;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-pattern-dashed{stroke-dasharray:3;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edge-pattern-dotted{stroke-dasharray:2;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .marker{fill:var(--diagram-line);stroke:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .marker.cross{stroke:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours svg{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:14px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours p{margin:0;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .label{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;color:var(--diagram-text);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label text{fill:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label span{color:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label span p{background-color:transparent;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .label text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours span{fill:var(--diagram-text);color:var(--diagram-text);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node circle,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node ellipse,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node polygon,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node path{fill:var(--diagram-node-bg);stroke:var(--diagram-node-border);stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .rough-node .label text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node .label text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .image-shape .label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .icon-shape .label{text-anchor:middle;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .rough-node .label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node .label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .image-shape .label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .icon-shape .label{text-align:center;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node.clickable{cursor:pointer;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .root .anchor path{fill:var(--diagram-line)!important;stroke-width:0;stroke:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .arrowheadPath{fill:rgba(255, 255, 255, 0);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgePath .path{stroke:var(--diagram-line);stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .flowchart-link{stroke:var(--diagram-line);fill:none;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel{background-color:var(--diagram-surface);text-align:center;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel p{background-color:var(--diagram-surface);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel rect{opacity:0.5;background-color:var(--diagram-surface);fill:var(--diagram-surface);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .labelBkg{background-color:rgba(250, 251, 252, 0.5);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster rect{fill:var(--diagram-surface);stroke:var(--diagram-border);stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster text{fill:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster span{color:var(--diagram-line);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:12px;background:var(--diagram-surface);border:1px solid var(--diagram-border);border-radius:2px;pointer-events:none;z-index:100;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--diagram-text);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours rect.text{fill:none;stroke-width:0;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .icon-shape,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .image-shape{background-color:var(--diagram-surface);text-align:center;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .icon-shape p,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .image-shape p{background-color:var(--diagram-surface);padding:2px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .icon-shape .label rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .image-shape .label rect{opacity:0.5;background-color:var(--diagram-surface);fill:var(--diagram-surface);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node .neo-node{stroke:var(--diagram-node-border);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].cluster rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node polygon{stroke:url(#ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node path{stroke:url(#ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient);stroke-width:1px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node .neo-line path{stroke:var(--diagram-node-border);filter:none;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node circle{stroke:url(#ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].node circle .state-start{fill:var(--diagram-text);}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].icon-shape .icon{fill:url(#ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node circle,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node ellipse,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node polygon,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node path{stroke-width:1.5px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgePath .path{stroke-width:1.5px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .nodeLabel,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .messageText,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .actor text{font-family:Geist,Inter,system-ui,sans-serif!important;font-weight:500!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .nodeLabel,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .nodeLabel p,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster-label p{color:var(--diagram-text)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .nodeLabel .markdown-node-label,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .nodeLabel .markdown-node-label p{color:var(--diagram-text)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .stateLabel text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .stateLabel{fill:var(--diagram-text)!important;font-weight:600!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel{padding:0px 6px;background-color:var(--diagram-surface)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel rect.background,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel rect{fill:var(--diagram-surface)!important;opacity:1!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel .label text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .edgeLabel text{fill:var(--diagram-line)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .cluster rect{rx:4px;ry:4px;stroke-width:1px!important;stroke-dasharray:3,3!important;fill:transparent!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node rect,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .node polygon,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .stateGroup rect{rx:4px;ry:4px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours marker,#ill-2-nsi-tale-te-algorithmique-graphe-parcours marker path{fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .marker{fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .actor{stroke-width:1.5px;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .messageText,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .messageText tspan{fill:var(--diagram-text)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .titleText{fill:var(--diagram-text)!important;font-weight:600!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .note text,#ill-2-nsi-tale-te-algorithmique-graphe-parcours .note .nodeLabel{fill:var(--diagram-line)!important;color:var(--diagram-line)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .statediagram-cluster rect{fill:transparent!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours .statediagram-state .divider{stroke:var(--diagram-border)!important;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours :root{--mermaid-font-family:Geist,Inter,system-ui,-apple-system,sans-serif;}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#eef0fc\"]{fill:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#eef0fc\"]{stroke:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#eef0fc\"]{stop-color:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(238, 240, 252)\"]{fill:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(238, 240, 252)\"]{stroke:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(238, 240, 252)\"]{stop-color:var(--diagram-node-bg)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#4948b8\"]{fill:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#4948b8\"]{stroke:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#4948b8\"]{stop-color:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(73, 72, 184)\"]{fill:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(73, 72, 184)\"]{stroke:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(73, 72, 184)\"]{stop-color:var(--diagram-node-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#c8cdf5\"]{fill:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#c8cdf5\"]{stroke:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#c8cdf5\"]{stop-color:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(200, 205, 245)\"]{fill:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(200, 205, 245)\"]{stroke:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(200, 205, 245)\"]{stop-color:var(--diagram-accent-soft)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#1f2127\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#1f2127\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#1f2127\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(31, 33, 39)\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(31, 33, 39)\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(31, 33, 39)\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#000000\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#000000\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#000000\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(0, 0, 0)\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(0, 0, 0)\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(0, 0, 0)\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#56595e\"]{fill:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#56595e\"]{stroke:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#56595e\"]{stop-color:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(86, 89, 94)\"]{fill:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(86, 89, 94)\"]{stroke:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(86, 89, 94)\"]{stop-color:var(--diagram-line)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#fafbfc\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#fafbfc\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#fafbfc\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(250, 251, 252)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(250, 251, 252)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(250, 251, 252)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#f3f4f6\"]{fill:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#f3f4f6\"]{stroke:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#f3f4f6\"]{stop-color:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(243, 244, 246)\"]{fill:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(243, 244, 246)\"]{stroke:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(243, 244, 246)\"]{stop-color:var(--diagram-surface-alt)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#c4c8cd\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#c4c8cd\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#c4c8cd\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(196, 200, 205)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(196, 200, 205)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(196, 200, 205)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#e5e7eb\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#e5e7eb\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#e5e7eb\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(229, 231, 235)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(229, 231, 235)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(229, 231, 235)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#e0e0e0\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#e0e0e0\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#e0e0e0\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(224, 224, 224)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(224, 224, 224)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(224, 224, 224)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#EDF2AE\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#EDF2AE\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#EDF2AE\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(237, 242, 174)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(237, 242, 174)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(237, 242, 174)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#fff5ad\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#fff5ad\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#fff5ad\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(255, 245, 173)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(255, 245, 173)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(255, 245, 173)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"#666\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"#666\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"#666\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [fill=\"rgb(0, 6, 102)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stroke=\"rgb(0, 6, 102)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-te-algorithmique-graphe-parcours [stop-color=\"rgb(0, 6, 102)\"]{stop-color:var(--diagram-border)}\u003C\u002Fstyle>\u003Cg>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\u003Cpath d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\u003Cpath d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\">\u003Cpath d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\">\u003Cpolygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Cpath d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Cpath d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\">\u003Cpath d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\">\u003Cpath d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cg class=\"root\">\u003Cg class=\"clusters\"\u002F>\u003Cg class=\"edgePaths\">\u003Cpath d=\"M57.607,29.198L51.442,34.592C45.277,39.986,32.947,50.774,26.782,60.899C20.617,71.023,20.617,80.484,20.617,85.215L20.617,89.945\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_A_B_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_B_0\" data-points=\"W3sieCI6NTcuNjA3NDkxODY3NjU5NzksInkiOjI5LjE5NzUzMzcyNDU3NTI0NH0seyJ4IjoyMC42MTcxODc1LCJ5Ijo2MS41NjI1fSx7IngiOjIwLjYxNzE4NzUsInkiOjg5Ljk0NTMxMjV9XQ==\" data-look=\"classic\"\u002F>\u003Cpath d=\"M75.79,30.269L80.498,35.485C85.205,40.7,94.62,51.131,99.328,61.014C104.035,70.896,104.035,80.229,104.035,84.896L104.035,89.563\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_A_C_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_A_C_0\" data-points=\"W3sieCI6NzUuNzkwMzE2MTYzMzIzMSwieSI6MzAuMjY5MjY3NDMwMjMzNzk2fSx7IngiOjEwNC4wMzUxNTYyNSwieSI6NjEuNTYyNX0seyJ4IjoxMDQuMDM1MTU2MjUsInkiOjg5LjU2MjV9XQ==\" data-look=\"classic\"\u002F>\u003Cpath d=\"M20.617,115.18L20.617,119.91C20.617,124.641,20.617,134.102,21.769,143.561C22.92,153.019,25.223,162.476,26.375,167.205L27.526,171.933\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_B_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_B_D_0\" data-points=\"W3sieCI6MjAuNjE3MTg3NSwieSI6MTE1LjE3OTY4NzV9LHsieCI6MjAuNjE3MTg3NSwieSI6MTQzLjU2MjV9LHsieCI6MjcuNTI2Mzk0NjE0MjQwOTcsInkiOjE3MS45MzM0MzE3MTI4NTE5OH1d\" data-look=\"classic\"\u002F>\u003Cpath d=\"M95.377,112.259L90.718,117.477C86.06,122.694,76.743,133.128,67.403,143.568C58.063,154.008,48.699,164.453,44.018,169.676L39.336,174.898\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_C_D_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_D_0\" data-points=\"W3sieCI6OTUuMzc2NjU3NTAzMzE5ODYsInkiOjExMi4yNTk0MjczMjAyMjU2NH0seyJ4Ijo2Ny40MjU3ODEyNSwieSI6MTQzLjU2MjV9LHsieCI6MzkuMzM2MTk4MjU3NTk2NTIsInkiOjE3NC44OTgzNDgwNzU1NzUyM31d\" data-look=\"classic\"\u002F>\u003Cpath d=\"M107.116,115.192L108.269,119.921C109.422,124.649,111.729,134.106,112.882,143.652C114.035,153.198,114.035,162.833,114.035,167.651L114.035,172.469\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_C_E_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_C_E_0\" data-points=\"W3sieCI6MTA3LjExNTU4NjU5MjQ4MzEsInkiOjExNS4xOTIyNjQ0MDQxODA2OX0seyJ4IjoxMTQuMDM1MTU2MjUsInkiOjE0My41NjI1fSx7IngiOjExNC4wMzUxNTYyNSwieSI6MTcyLjQ2ODc1fV0=\" data-look=\"classic\"\u002F>\u003Cpath d=\"M30.617,197.688L30.617,202.354C30.617,207.021,30.617,216.354,35.369,226.212C40.121,236.07,49.625,246.452,54.377,251.643L59.129,256.834\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_D_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_D_F_0\" data-points=\"W3sieCI6MzAuNjE3MTg3NSwieSI6MTk3LjY4NzV9LHsieCI6MzAuNjE3MTg3NSwieSI6MjI1LjY4NzV9LHsieCI6NTkuMTI5MTczMTAyMTU0NjIsInkiOjI1Ni44MzQwNzU4MjEwNDc3fV0=\" data-look=\"classic\"\u002F>\u003Cpath d=\"M114.035,196.781L114.035,201.599C114.035,206.417,114.035,216.052,107.753,226.237C101.471,236.422,88.908,247.156,82.626,252.523L76.344,257.89\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-L_E_F_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_E_F_0\" data-points=\"W3sieCI6MTE0LjAzNTE1NjI1LCJ5IjoxOTYuNzgxMjV9LHsieCI6MTE0LjAzNTE1NjI1LCJ5IjoyMjUuNjg3NX0seyJ4Ijo3Ni4zNDQxNTg5MjA5NTQ0NCwieSI6MjU3Ljg4OTgyMjUxMTQ1NTN9XQ==\" data-look=\"classic\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabels\">\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_A_B_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_A_C_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_B_D_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_C_D_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_C_E_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_D_F_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabel\">\u003Cg class=\"label\" data-id=\"L_E_F_0\" transform=\"translate(0, 0)\">\u003Ctext y=\"-10.1\" text-anchor=\"middle\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\"\u002F>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003Cg>\u003Crect class=\"background\" style=\"stroke: none\"\u002F>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"nodes\">\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-A-0\" data-look=\"classic\" transform=\"translate(67.2265625, 20.78125)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"12.78125\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-4.78125, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"9.5625\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>A\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-B-1\" data-look=\"classic\" transform=\"translate(20.6171875, 102.5625)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"12.6171875\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-4.6171875, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"9.234375\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>B\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-C-2\" data-look=\"classic\" transform=\"translate(104.03515625, 102.5625)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"13\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-5, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"10\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>C\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-D-3\" data-look=\"classic\" transform=\"translate(30.6171875, 184.625)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"13.0625\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-5.0625, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"10.125\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>D\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-E-4\" data-look=\"classic\" transform=\"translate(114.03515625, 184.625)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"12.15625\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-4.15625, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"8.3125\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>E\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-flowchart-F-5\" data-look=\"classic\" transform=\"translate(67.2265625, 265.6796875)\">\u003Ccircle class=\"basic label-container\" style=\"\" r=\"11.9921875\" cx=\"0\" cy=\"0\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-3.9921875, -10.5)\">\u003Crect\u002F>\u003CforeignObject width=\"7.984375\" height=\"21\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>F\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003Cdefs>\u003Cfilter id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-drop-shadow\" height=\"130%\" width=\"130%\">\u003CfeDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"\u002F>\u003C\u002Ffilter>\u003C\u002Fdefs>\u003Cdefs>\u003Cfilter id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-drop-shadow-small\" height=\"150%\" width=\"150%\">\u003CfeDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"\u002F>\u003C\u002Ffilter>\u003C\u002Fdefs>\u003ClinearGradient id=\"ill-2-nsi-tale-te-algorithmique-graphe-parcours-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\u003Cstop offset=\"0%\" stop-color=\"#4948b8\" stop-opacity=\"1\"\u002F>\u003Cstop offset=\"100%\" stop-color=\"#c4c8cd\" stop-opacity=\"1\"\u002F>\u003C\u002FlinearGradient>\u003C\u002Fsvg>",[2474,2668],{},[2466,2670,2672],{"id":2671},"détection-de-cycle-non-orienté","Détection de cycle (non orienté)",[598,2674,2675,2676,2679],{},"DFS récursif avec mémoire du ",[602,2677,2678],{},"parent"," :",[1149,2681,2682,2689],{},[1152,2683,2684,2685,2688],{},"voisin ",[602,2686,2687],{},"non vu"," → on continue ;",[1152,2690,2684,2691,2694,2695,623],{},[602,2692,2693],{},"vu ≠ parent"," → ",[602,2696,2697],{},"cycle",[2474,2699],{},[2466,2701,2703],{"id":2702},"reconstituer-un-chemin","Reconstituer un chemin",[598,2705,2706],{},"À chaque découverte, mémoriser le prédécesseur.",[635,2708,2710],{"className":637,"code":2709,"language":639,"meta":640,"style":640},"pred[voisin] = s\n# remonter pred[...] depuis l'arrivée\n",[642,2711,2712,2721],{"__ignoreMap":640},[645,2713,2714,2717,2719],{"class":647,"line":648},[645,2715,2716],{"class":658},"pred[voisin] ",[645,2718,663],{"class":662},[645,2720,1597],{"class":658},[645,2722,2723],{"class":647,"line":655},[645,2724,2725],{"class":651},"# remonter pred[...] depuis l'arrivée\n",[2474,2727],{},[2466,2729,2731],{"id":2730},"deux-applications","Deux applications",[1149,2733,2734,2739],{},[1152,2735,2736,2738],{},[602,2737,1893],{}," : BFS → sortie en un minimum de pas.",[1152,2740,2741,2743],{},[602,2742,1906],{}," (OSPF, cf. chapitre Réseaux) : variante pondérée\n(Dijkstra) sur le graphe des routeurs.",[2474,2745],{},[2466,2747,2749],{"id":2748},"à-retenir","À retenir",[598,2751,2752,2753,2081,2756,2091,2758,2760],{},"DFS et BFS ne diffèrent que par ",[602,2754,2755],{},"un mot",[771,2757,1157],{},[771,2759,1154],{},". Tout le\nreste est identique.",[1930,2762,2763],{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":640,"searchDepth":655,"depth":655,"links":2765},[],"Deck projetable pour la séance sur DFS, BFS et cycles.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours.slides",{"title":2462,"description":2766},"2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.slides","0J2-iN6c-BqMbFEoLABRy-GUfm13ro4B36--uavR-qw",{"id":1957,"title":1958,"bo":2773,"body":2774,"description":2453,"eval":1944,"extension":1945,"labo":1944,"meta":3200,"navigation":1951,"path":2455,"quizzes":3201,"readingTime":648,"seo":3202,"stem":2458,"tp":1944,"__hash__":2459},[588],{"type":590,"value":2775,"toc":3192},[2776,2778,2875,2877,2996,2998,3048,3050,3086,3088,3098,3100,3190],[593,2777,1965],{"id":1964},[598,2779,2780,1970,2782,1973,2784,1976,2786,1979,2788,2065,2873,2069],{},[602,2781,1408],{},[602,2783,1157],{},[602,2785,1411],{},[602,2787,1154],{},[645,2789,2791,2822],{"className":2790},[1016],[645,2792,2794],{"className":2793},[1020],[1022,2795,2796],{"xmlns":1024},[1026,2797,2798,2820],{},[1029,2799,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818],{},[1032,2801,1035],{"mathvariant":1034},[1037,2803,1040],{"stretchy":1039},[1032,2805,1044],{"mathvariant":1043},[1032,2807,1047],{},[1032,2809,1044],{"mathvariant":1043},[1037,2811,1052],{},[1032,2813,1044],{"mathvariant":1043},[1032,2815,1057],{},[1032,2817,1044],{"mathvariant":1043},[1037,2819,1062],{"stretchy":1039},[1064,2821,1067],{"encoding":1066},[645,2823,2825,2855],{"className":2824,"ariaHidden":1072},[1071],[645,2826,2828,2831,2834,2837,2840,2843,2846,2849,2852],{"className":2827},[1076],[645,2829],{"className":2830,"style":1081},[1080],[645,2832,1035],{"className":2833,"style":1087},[1085,1086],[645,2835,1040],{"className":2836},[1091],[645,2838,1044],{"className":2839},[1085],[645,2841,1047],{"className":2842,"style":1099},[1085,1098],[645,2844,1044],{"className":2845},[1085],[645,2847],{"className":2848,"style":1099},[1106],[645,2850,1052],{"className":2851},[1110],[645,2853],{"className":2854,"style":1099},[1106],[645,2856,2858,2861,2864,2867,2870],{"className":2857},[1076],[645,2859],{"className":2860,"style":1081},[1080],[645,2862,1044],{"className":2863},[1085],[645,2865,1057],{"className":2866,"style":1126},[1085,1098],[645,2868,1044],{"className":2869},[1085],[645,2871,1062],{"className":2872},[1133],[602,2874,2068],{},[593,2876,2073],{"id":2072},[1149,2878,2879,2885,2891,2897,2986,2990],{},[1152,2880,2881,2081,2883,2085],{},[602,2882,2080],{},[642,2884,2084],{},[1152,2886,2887,2091,2889,623],{},[602,2888,2090],{},[602,2890,2094],{},[1152,2892,2893,2081,2895,623],{},[602,2894,1411],{},[642,2896,2101],{},[1152,2898,2899,2106,2901,623],{},[602,2900,1475],{},[645,2902,2904,2935],{"className":2903},[1016],[645,2905,2907],{"className":2906},[1020],[1022,2908,2909],{"xmlns":1024},[1026,2910,2911,2933],{},[1029,2912,2913,2915,2917,2919,2921,2923,2925,2927,2929,2931],{},[1032,2914,1035],{"mathvariant":1034},[1037,2916,1040],{"stretchy":1039},[1032,2918,1044],{"mathvariant":1043},[1032,2920,1047],{},[1032,2922,1044],{"mathvariant":1043},[1037,2924,1052],{},[1032,2926,1044],{"mathvariant":1043},[1032,2928,1057],{},[1032,2930,1044],{"mathvariant":1043},[1037,2932,1062],{"stretchy":1039},[1064,2934,1067],{"encoding":1066},[645,2936,2938,2968],{"className":2937,"ariaHidden":1072},[1071],[645,2939,2941,2944,2947,2950,2953,2956,2959,2962,2965],{"className":2940},[1076],[645,2942],{"className":2943,"style":1081},[1080],[645,2945,1035],{"className":2946,"style":1087},[1085,1086],[645,2948,1040],{"className":2949},[1091],[645,2951,1044],{"className":2952},[1085],[645,2954,1047],{"className":2955,"style":1099},[1085,1098],[645,2957,1044],{"className":2958},[1085],[645,2960],{"className":2961,"style":1099},[1106],[645,2963,1052],{"className":2964},[1110],[645,2966],{"className":2967,"style":1099},[1106],[645,2969,2971,2974,2977,2980,2983],{"className":2970},[1076],[645,2972],{"className":2973,"style":1081},[1080],[645,2975,1044],{"className":2976},[1085],[645,2978,1057],{"className":2979,"style":1126},[1085,1098],[645,2981,1044],{"className":2982},[1085],[645,2984,1062],{"className":2985},[1133],[1152,2987,2988,2196],{},[602,2989,1696],{},[1152,2991,2992,2202,2994,2206],{},[602,2993,2201],{},[642,2995,2205],{},[593,2997,2210],{"id":2209},[1394,2999,3000,3010],{},[1397,3001,3002],{},[1400,3003,3004,3006,3008],{},[1403,3005,2219],{},[1403,3007,1408],{},[1403,3009,1411],{},[1413,3011,3012,3022,3032,3040],{},[1400,3013,3014,3016,3018],{},[1418,3015,1420],{},[1418,3017,2232],{},[1418,3019,1426,3020,1062],{},[642,3021,1429],{},[1400,3023,3024,3026,3028],{},[1418,3025,2241],{},[1418,3027,2244],{},[1418,3029,3030],{},[602,3031,2249],{},[1400,3033,3034,3036,3038],{},[1418,3035,2254],{},[1418,3037,1478],{},[1418,3039,1047],{},[1400,3041,3042,3044,3046],{},[1418,3043,2263],{},[1418,3045,2266],{},[1418,3047,2269],{},[593,3049,2273],{"id":2272},[1394,3051,3052,3060],{},[1397,3053,3054],{},[1400,3055,3056,3058],{},[1403,3057,2282],{},[1403,3059,2285],{},[1413,3061,3062,3068,3074,3080],{},[1400,3063,3064,3066],{},[1418,3065,2292],{},[1418,3067,1411],{},[1400,3069,3070,3072],{},[1418,3071,2299],{},[1418,3073,2302],{},[1400,3075,3076,3078],{},[1418,3077,2307],{},[1418,3079,2310],{},[1400,3081,3082,3084],{},[1418,3083,2315],{},[1418,3085,2318],{},[593,3087,2322],{"id":2321},[1149,3089,3090,3094,3096],{},[1152,3091,2327,3092,2331],{},[642,3093,2330],{},[1152,3095,2334],{},[1152,3097,2337],{},[593,3099,2341],{"id":2340},[635,3101,3102],{"className":637,"code":2344,"language":639,"meta":640,"style":640},[642,3103,3104,3114,3118,3126,3136,3144,3154,3164,3176,3184],{"__ignoreMap":640},[645,3105,3106,3108,3110,3112],{"class":647,"line":648},[645,3107,1194],{"class":662},[645,3109,1197],{"class":658},[645,3111,1200],{"class":662},[645,3113,1203],{"class":658},[645,3115,3116],{"class":647,"line":655},[645,3117,880],{"emptyLinePlaceholder":879},[645,3119,3120,3122,3124],{"class":647,"line":669},[645,3121,788],{"class":662},[645,3123,1214],{"class":791},[645,3125,2369],{"class":658},[645,3127,3128,3130,3132,3134],{"class":647,"line":691},[645,3129,2374],{"class":658},[645,3131,1154],{"class":1230},[645,3133,1234],{"class":662},[645,3135,2381],{"class":658},[645,3137,3138,3140,3142],{"class":647,"line":704},[645,3139,924],{"class":662},[645,3141,1244],{"class":1230},[645,3143,1247],{"class":658},[645,3145,3146,3148,3150,3152],{"class":647,"line":721},[645,3147,933],{"class":658},[645,3149,663],{"class":662},[645,3151,1244],{"class":1230},[645,3153,1258],{"class":658},[645,3155,3156,3158,3160,3162],{"class":647,"line":734},[645,3157,830],{"class":662},[645,3159,2406],{"class":658},[645,3161,836],{"class":662},[645,3163,2411],{"class":658},[645,3165,3166,3168,3170,3172,3174],{"class":647,"line":746},[645,3167,844],{"class":662},[645,3169,2406],{"class":658},[645,3171,849],{"class":662},[645,3173,852],{"class":662},[645,3175,2424],{"class":658},[645,3177,3178,3180,3182],{"class":647,"line":755},[645,3179,2429],{"class":658},[645,3181,1154],{"class":1230},[645,3183,2434],{"class":658},[645,3185,3186,3188],{"class":647,"line":876},[645,3187,870],{"class":662},[645,3189,2441],{"class":658},[1930,3191,2444],{},{"title":640,"searchDepth":655,"depth":655,"links":3193},[3194,3195,3196,3197,3198,3199],{"id":1964,"depth":655,"text":1965},{"id":2072,"depth":655,"text":2073},{"id":2209,"depth":655,"text":2210},{"id":2272,"depth":655,"text":2273},{"id":2321,"depth":655,"text":2322},{"id":2340,"depth":655,"text":2341},{},[],{"title":1958,"description":2453},{"id":2461,"title":2462,"body":3204,"description":2766,"extension":1945,"meta":3446,"navigation":1951,"path":2768,"seo":3447,"stem":2770,"__hash__":2771},{"type":590,"value":3205,"toc":3444},[3206,3208,3210,3212,3214,3282,3284,3286,3288,3298,3300,3302,3316,3318,3320,3368,3370,3372,3374,3376,3378,3382,3394,3396,3398,3400,3416,3418,3420,3430,3432,3434,3442],[2466,3207,2469],{"id":2468},[598,3209,2472],{},[2474,3211],{},[2466,3213,2479],{"id":2478},[635,3215,3216],{"className":637,"code":2482,"language":639,"meta":640,"style":640},[642,3217,3218,3226,3240,3250,3264,3274,3278],{"__ignoreMap":640},[645,3219,3220,3222,3224],{"class":647,"line":648},[645,3221,659],{"class":658},[645,3223,663],{"class":662},[645,3225,666],{"class":658},[645,3227,3228,3230,3232,3234,3236,3238],{"class":647,"line":655},[645,3229,673],{"class":672},[645,3231,676],{"class":658},[645,3233,679],{"class":672},[645,3235,682],{"class":658},[645,3237,685],{"class":672},[645,3239,688],{"class":658},[645,3241,3242,3244,3246,3248],{"class":647,"line":669},[645,3243,694],{"class":672},[645,3245,676],{"class":658},[645,3247,699],{"class":672},[645,3249,688],{"class":658},[645,3251,3252,3254,3256,3258,3260,3262],{"class":647,"line":691},[645,3253,707],{"class":672},[645,3255,676],{"class":658},[645,3257,699],{"class":672},[645,3259,682],{"class":658},[645,3261,716],{"class":672},[645,3263,688],{"class":658},[645,3265,3266,3268,3270,3272],{"class":647,"line":704},[645,3267,724],{"class":672},[645,3269,676],{"class":658},[645,3271,729],{"class":672},[645,3273,688],{"class":658},[645,3275,3276],{"class":647,"line":721},[645,3277,2545],{"class":805},[645,3279,3280],{"class":647,"line":734},[645,3281,758],{"class":658},[598,3283,2552],{},[2474,3285],{},[2466,3287,2558],{"id":2557},[1149,3289,3290,3292,3296],{},[1152,3291,2563],{},[1152,3293,2566,3294,2569],{},[602,3295,1157],{},[1152,3297,2572],{},[2474,3299],{},[2466,3301,2578],{"id":2577},[1149,3303,3304,3310,3312],{},[1152,3305,2583,3306,769,3308,2206],{},[602,3307,1154],{},[642,3309,1429],{},[1152,3311,2590],{},[1152,3313,3314,2596],{},[602,3315,2595],{},[2474,3317],{},[2466,3319,2210],{"id":2209},[1394,3321,3322,3332],{},[1397,3323,3324],{},[1400,3325,3326,3328,3330],{},[1403,3327],{},[1403,3329,1408],{},[1403,3331,1411],{},[1413,3333,3334,3342,3350,3360],{},[1400,3335,3336,3338,3340],{},[1418,3337,2619],{},[1418,3339,1157],{},[1418,3341,1154],{},[1400,3343,3344,3346,3348],{},[1418,3345,2628],{},[1418,3347,2631],{},[1418,3349,2634],{},[1400,3351,3352,3354,3356],{},[1418,3353,2639],{},[1418,3355,1466],{},[1418,3357,3358],{},[602,3359,1452],{},[1400,3361,3362,3364,3366],{},[1418,3363,1475],{},[1418,3365,1478],{},[1418,3367,1047],{},[2474,3369],{},[2466,3371,2659],{"id":2658},[2661,3373],{"alt":2663,"kind":2664,"src":2665,"svg":2666},[2474,3375],{},[2466,3377,2672],{"id":2671},[598,3379,2675,3380,2679],{},[602,3381,2678],{},[1149,3383,3384,3388],{},[1152,3385,2684,3386,2688],{},[602,3387,2687],{},[1152,3389,2684,3390,2694,3392,623],{},[602,3391,2693],{},[602,3393,2697],{},[2474,3395],{},[2466,3397,2703],{"id":2702},[598,3399,2706],{},[635,3401,3402],{"className":637,"code":2709,"language":639,"meta":640,"style":640},[642,3403,3404,3412],{"__ignoreMap":640},[645,3405,3406,3408,3410],{"class":647,"line":648},[645,3407,2716],{"class":658},[645,3409,663],{"class":662},[645,3411,1597],{"class":658},[645,3413,3414],{"class":647,"line":655},[645,3415,2725],{"class":651},[2474,3417],{},[2466,3419,2731],{"id":2730},[1149,3421,3422,3426],{},[1152,3423,3424,2738],{},[602,3425,1893],{},[1152,3427,3428,2743],{},[602,3429,1906],{},[2474,3431],{},[2466,3433,2749],{"id":2748},[598,3435,2752,3436,2081,3438,2091,3440,2760],{},[602,3437,2755],{},[771,3439,1157],{},[771,3441,1154],{},[1930,3443,2763],{},{"title":640,"searchDepth":655,"depth":655,"links":3445},[],{},{"title":2462,"description":2766},1788035585615]