# SageMathCell https://sagecell.sagemath.org/?q=nfygtd # Moore bound=2042. # ''' Main properties of the graph michel952a | Ord.: 952 / Size: 6188 / Diam.: 3 / Avg.dist: 2.83813 / 13-reg.? True / Girth: 3 michel952b | Ord.: 952 / Size: 6188 / Diam.: 3 / Avg.dist: 2.83856 / 13-reg.? True / Girth: 3 Symmetry properties of the graph michel952a | Aut.group.ord.: 7 / Cayley ? False --- vtx.trans. ? False -- edge.trans. ? False michel952b | Aut.group.ord.: 7 / Cayley ? False --- vtx.trans. ? False -- edge.trans. ? False Automorphism group structure: x means direct product; : means semidirect product. michel952a : C7 | center order: 7 michel952b : C7 | center order: 7 michel952a distance distrib from vtx. 0: [1, 13, 123, 815] michel952a distance distrib from vtx. 9: [1, 13, 125, 813] michel952b distance distrib from vtx. 0: [1, 13, 125, 813] michel952b distance distrib from vtx. 9: [1, 13, 122, 816] Number of k-cycles for k=3 up to 4 michel952a 784| 8652 michel952b 728| 8988 ''' import networkx as nx michel952a = Graph(r":~?Mw_@?K?S@OAOF?L?G?c?_AO@?M?a?G@oCoB?J?K?k??B?K_??W@k?OAO??J?K?oCG@?F?b?G?{?oBO??I@Q?G@?Io@?D???[@?B_W_I?WBK@?BoD?L?C?OFG??B?z???WEONoD?K@_Bs??@_X?~?S?oE?NOC?M@gB_Gg?_A?u@sC[@?B_Y?wAA?G?_L_\@B?G?_B?EoA?G?o@k??B?M?^???oB_FoB?I?_@GIg@_D?O?cD[?OB_I?UAa?G@oD?J@R?K?oCoIOB?K@KAc??A_P?l???gCOJO@?G@?AwKG?_C?_@[EK?_B_Q?iBI?O@oH?T@f@WA{C_H_w__@EA_DO\OO?b@OAgNGJ?V_c@KFsMO\Ow@vBoFwOG]_}ABBoF{NO^Ox@sCQF?Moaox@xB_FkMo^@G`sB{HKM_^oz@|B_FgRG[_{AZB_FWOObo|@{C?GsM?\`@ANBsFoO?bO{@}CGG_Sg[_yAECSI[N?^`AAGDAFGM_``DAb@OAgM_]OS?iBgFcD_J_w@|@WAwM?^OO?aBkFgUgG?P@uBsJ[C_H_x@}DaAOCo[_~ArBkFoQoeOz@{CkHcM?]`HA\B_FgQOfOx@wC_HwWG[_{AOC{KKM_^`IAYEIFONod@LBF@wBwOObOY?uC?GwYGK?XAECQB_FO`@DBT@_BGO?bo[?yCCGoZGN?^ACCUBOEo``CB\EcLSY?tpkB]FALgZ_wpkB^EsLsYOt@sbOEkMkY?t`pBnEsLo[?zPgBUFCM{ZOv@oBlEoLw[_y@ybQEgMW\O|pkB]FGM_]Gs`iBeFSNKF?M`iBX@oBgY_uO]?}E_LsF_N`gB\@_BGYouaA_o@cLWZP@oY?uEcLw_GL?ZBQE{OKOoa@jB\CKG_YovP@AKE_LkOOb@gBZC?GwYOuAGa?C[LGZ@CpAAIEgLwag`@DBSE{P[EON@MA^@_BwQ_daO_u@oH?QWL?\AWCsQSE?N`GAR@cBoR?eaS_s@sHoRwL_[ASCkQscPHQOCfHOQweHIaUCrHOQ{dPJQPCcHqQ?cpMqOCeHcR{dPJAWC|H?QWePNqTCkH_Rsd@JaYCwIIQGc`La\DFHOQwe`MA_caHGRWfPOpKAYHGQcR?eaQChCwHwc@JPMA]H?QsQ?caRCiIiH?QPHaTDVCgHWcPJagaSCkQGdpSoZ?wHKQsEoMARCl@cBoc@IoX?{H?QkE?NaPCgJAB?FpGaSDb@gBgc`Jaq_s@sQOdpXoH?[CcHw\_zoG?]C_Ho[_xaw_U?oH?R_w@p_S?sHGRoy@tDt?_@wQ_e@oBb?c@oQoe`sBiJq@OBOd`LBkF]@WB?d@KBcFKVsQOfawDvC_HonP^PHA]J_V[Q?fA|D|CgH_n@^bAaUCsVGm``pIAWJoVwoGd`LDqJgWK\?yayDxFOMgm`]PuBmJ_Vs\_zawD|F?MGmp]bIb_FCVWnPdpqBeJcVwqGx@rDqJ{XKAoEAzD|?k@_mp^OH?[J_VkAOFAwDz?_@wmP]BO_O?{VGn@goI?YJgVwsgD?LDsJ{Y[AOF`EAMHcRsA?F@AAEH_RwuGC?MA?CCRWfGC_NAGCSROfPlOI?WC?GGe@NoJ?YCOGgePNB[_U?sGoPpLA\_S?oGOOpLa[E|?c@wu@loG?[LsZsAOFbWEv?_@ovPnOI?WLoZwwgD_LEqLg[[A_EB[E}MA@WBPkbYFBCOGgu`mPCAILgZcP_bbWE|CWGwu@nP?AALkZgyg_@@EuLs\[O_`bXE}MaGOOpkb^FRHkR_upnQZCwLkZsePNBWEzHcRou@mqWC}LcZ_{HKA^EqLo]Ke`MbYE}NIROfPlB^Ff@CAw[OzA]C~@?Ao[?zaYCuNaA?D_x`sCoHeAGDox@tCwHs^SC_I@oBmH_RKCoI`pBkHoRg~GH_TBcFSRofwH?SBeFOROep~OP?mN_^[C?JB|F|@CAw}@|oO?kNs^sC_IB{F}OIAWDP{byGF@GA_~@~c?_e@S^G}a?q[CyNg^cf@MbyFxHwRw}@~Q]C}N_^se@KbzFyOiR?eP|b|GVHgRW}P~cGcsHk^G~qCprBgNk^s[oyBzF|FCMo}@}ppBkN_^k[?zbxFwPAM?\p{b{GbFGMg}`~cQbcFS^O~qHr_FJMK[sw@qrbFLMG[xEXobcGpMG[xExobcGtMK[cwpqRaFJMG[kwPrC_fAMWcKw@rcaf?M[c[wpqc\G~MK[hFQNr_FKP_bSw@rCWGtMC[xFANCifAM[b`FaTraFGPcbXIHpBcGqPkdKwprccHJMG[pHaRr`FIQGc[w@qC_HBMC[hGaPcqf?MOc@GQXrbFMQOchKHpBeHKQ[eL?AAcaHHOK_pGQRs?GIQCc|?qBCaHHOG_xGARCxgAOOcXHQ[SAGMQKchMy?cCH?QWfT?qACYGvOK_`FaNsAGIPobl?aAcWGrOC_pEAKd?gAOWb`FQ_s?GMPwbxOi?CFGsPkg\?qAc|H~OK_hNQ^s?GKR_fT?ABCwHtOC_xNA^DIgAO[f`NadsAGGRcfXQI@CCHqRkhL?qBdCIJOG_pPabs@GISGg\?AAD?IBOC_hOa`dQg?OOg@OQhsBGMSOghSI@CEIKS[iKG?Qob@LA?CkGoROa@MTeCGHAkOa@MTmCGHAlOb@HAKCcG_Qoa@JACCpWGO_eJBA?CxWgO?fJFAKCxXAqoa@KUWk{GOQdaJFA?C`WAoo`@IUGkXYgO?cJ?UCl[GoRdcJIUaCOHarDfJRAKChVQnob@ITsj{G?RDWItA?CpUAlO`@MTojp[gO_fIwTwm[G_QDXIuVACOHAkdZJbK?WhOaaDbJHKKWpOQbdbJHK?WhOQbd_JNKKWpOaaD_JNKGWxOAbDaJIVeWGpA`dDJCUSnCo`bdBIIUCkp]x_bCI?SWkHXa|RBEGRgfXVAnrBEGRwfxUQlRAEIRofhUAlrAEIR_fHVQnR@EKR_fHUAle?eAKWf`NQmd]KBK?WxNa^d[I}WIW?pq\CzIqTgo[opad|J~KKWh^Q~r?EKV_nSo@bDwJtKCWx^A~EIeAK[n`^bDrAEGVcnXaH`BCJqVkpKopbeCKJKGWp`bBr@EIWGo[o@aE?KBKCWh_b@eQe?KOo@_RHrBEMWOohcH`BEKKW[qK]?}cbHHFkNpGqQPwByQ?c{]o~C_HNFgNxGaQeXbqFocPHRKPyB}QCcpew{`{HAQWrS]o}C[G~FkN`EQLPyByP_b[]_}c\G|FcNpEALe_bqFwbhFbOpwB}Pobxgg{@~GqPgs[]o~ecLJFgNphbRpxByYGs[]?}E_LBFcNhgbPeiboFos@gRTpzB}YOshiG|@}LKY[tK]o}e\K~FkNhfRNpwB{X_rS]?~EWKtFcNxfBNEqbqF{r`fbXpyBwXcrXkG|@{KqXkuKS?idaJHDKIpWQrpOAiUCk{SojDaJHDGIxWArExaaDOkXXR[PQAmUKkhmwg`SJ?UWvSSoiDYIvDKI`VanpQAiTojkS_idWIrDCIpUAkf?aaDWj`VR_pOAmTwjxogg@VIsTkw[SojfCMJDGIppbbpPAi[Gw[S?iF?MBDCIhob`fIa_DOw@oRdpRAm[OwhqGh@UMK[[xKSoie|L~DKIhnR^pOAkZ_vSS?jEwLtDCIxnB^FQaaD[v`nbhpQAgZcvXsGh@SLqZkyKg@QebLG[GwcgpREbLG[Cw{g@Qe_LM[Cw{gpRE_LM[Gwcg`ReaLI[?wpuXOacLCYSwXpRkQaDMYCsporafZdAIOsHhb_FEMtIKS`fBNeyLvIKS`eRLE}L~IGSheBLe{LzIGShfRNEwLrICSpeBLewLq]ASGhbMe]LwZs{Kg@Re[K}ZwvxwhOAfKqXgvPmrpqbDM]O{kg`RFeNNICShwbpq_DG]?{KgPQfaNE]iS?hBoF`NVIKSxxBqfgdCIW{pxrsqbDI\sz{gpQf\M~I?SpuBlQ_DK\_zSgPRf[M{^ISGhrmF]NfIGS`uRlfodCIOzHurwq@CCQ_dPbRFqDCKQcdXbBFQ@CCQodpaBDFxcIGWdhJrCeJNpG?OXJQVeKK\GOOxJAVELK^G?OXIQTeHKU^uO_`qSCiKOWg~c_PACqHmXGq{_pBCoHiXCqc_`BcqHmX?qi?X?ADH_RSqXdc?Q?CIRCe`cRIQACMRKepcbJqBCKRCe`crJGDcAGOeXLbGETOHG?OPTAjg@OLGOOpSAhgAOJGSOxTQjG?ONGCOXSQhGBOHGSOxTAjg?OM_eOG_qgDROE_P@C_@@DTIk_D?qAxAAEIaTH?Q@SDQ@CESshp}R|qCCKSchP}B|QCCKSohx}B|GOcAGKh@Qr{fzObG?OPRAff{N|GSOxQAdf|N~GSOxRQfF|N}`QO?_acdINw^xAkIOTEtLm\?ySJOVEsLk\Cy[IOTEoLc\OyqEWU_mLaZKyhtsKOg@UZOuptRjok@]ZSuxtBjOg@UZCuXsRhg\`WA{u@kbgFQOxAcD`ibVfIM^AkDpiRUFGMZAgDxiBUfIM]aED?JRTemMO[tCCI?UehLW[cxcI_VeiL][kxsIoVEjL[[cxaHWS_kLOYsxXrcQOh@U^S}qESLok@[^C}QECLOk@[^O}yECLGg`QAk}@{sKgZPRA_DP|Bzg[O|AsDx{Bxg\O~AsDx|RzG\O}aqD?IbwfqOw`xDkI?TFkN]aDCsJ?VFgNUaHCkJOVflN[a@C{IOTfhNSaLCcJOVfkN]a@CyKWS_jNO]lCYHCWOg@S]s|qGSRGr`WAw|HycPGdPdDcJPJQVfoNc_P?sVOnCkH[^C}Y?C@PXAsQ_dP|BzGDOMbeJgVaScjNi^\?I?s[PWAuQodp|Rzg?ODDoJxJQVfsNk_P?sU?lchHU^C}Y?S@g|awD{d@IbwFqOI_\FcUOmCqHm]g|x}b}pZA{RCe`yBufzNxDgJxKAYfiN]^c~qOWk@\HeRW|@zR{F~Q@D_JhKQYFhNW^k~cU_ncqHm]k|p}b}pZA{RKepyRuFwN}cUJGVAWCtNU]w~H~caPXAuZSuqMS\p[A{ZCuQMC\P[A{ZOuyMC\HGaqDku@ks[gzQRD_JPlBZg{P|DsJxkBXg|P~DsJxlRZG|P}cqJ?UbWeqPwbxHkU?lEkL]cDGsV?nEgLUcHGkVOnelL[c@G{UOlehLScLGcVOnekL]c@GySWk`ZLOYlGYPCgPWAsYstqOSbHRawDwtHic`HDQdMc\PQAdDtJnMs\pQQddsJlMc\PRAfDoJcde\gzaedNJaVLJCy@tdLI]VOmsz@vdKI[VSm{y@tdHIUVCmYVXuBnIOSgm@[cmRhFWTGixYavrjF[T?ihYQuRiF]TGixYAuh`fOMsi@TQtdmR@M_\hSQiDhJXMg\xSqjDiJ^Mk\pSQiDjJ[eU\GzAhdUJOUtKcy@tESKmeDKsz@vEOKeeHKkzPveTKke@K{yPtePKceLKczPveSKme@KyYXsbjK_XLKYXCsRgFSXSqqWSrHjfWMwqHccpHdRTMc\XbRFHXQvMo\paRDHWQtMo\pbBFhWQsfA\GyrCEJQqdlMKy@tEKK]dpJszPveGKUdtJ{zPveLK[dtJy\HsBiKQWhJaVcyrHESV?mP|RzhCQKeLKsrPfDpJe^O}qOC`HaRNKcXP\AzFoNccTGyWCqhxeYKwmh\rwfrQAcLKIXC{RGEUVSmx|BzH?QCeDKcr@fdsJk^S}yPCbH_RJK_XX[QxfpNecDGYWcrh|eWK{m@[bwFqQIc\KYXc}RHEWUglxybvgyPyddJcqpfDgJY]c|aMs]HZQ|KgXxYavfgNYbdFqUSmI@eOKsl@ZRtfmPob|JYVd?RGEYUcl`yRuGzPwd`Jkq`fdjJ[]g|yMc]hYQ~KkXpYQuFjN[b`FyUCmiDeQKolXZbsFlPqbxJQVtARHEU\Syq]S|rKE[\CyQ]C|RKE[\Oyy]C|IGeQKky@ss{hzSRK_XPtBjh{R|KsXxsBhh|R~KsXxtRjH|R}gqX?qbgfQRwfxPkq@dFKM]gDOsr@fFGMUgHOkrPffLM[g@O{qPdfHMSgLOcrPffKM]g@OycXcbJMO[lOY`DGRGES[sxq_TBIReWKwxHqd@IDSdOc`PaBDFTMm_L?qHCRSLG[WcpXtBjGAOMa@CTAQDEKK[\?yQ?CAgdPMhe`hBbEeNMa\L?I@COgbSpO_`XbRFfSMk_D?aGCPSKG]WopptRjg?OIaPCtAADeHKU\CyY?cBg`PEhu``BrCEIM_\H?Y@cQgfSxOc``cbJfIM]^c~aEcMsJG[X?qhqReFzN{`lBdAaFeQKm[_xh}R}GXO{iE`@BRGETMU[w~X~cKG^T@O_`hcRIFHMW^_~iEsMSIG]XKqpqbffyN}`hBlAqFEPKg[kxp}B}gWO}iU`HBBHeUMO[s~P~sKg]THOc`X\QzIXSvOo`p[QxIWStOo`p\AziWSsia`HAqwDrSqhlTLAADDsJmhpRtBQFdoJehtR|BQFdtJkhtRyjICCIJaVHRafdUsGGSUolygTRSKG[U_lYgdQsLG]UslqgDRsHGUUclQgtQSLG]UolygDRipgQOkl@YtPicT`O_`PZQvI`TKjM``BasdiTCiTUSiPTDLI]Z?uQGsRHcRLIsTpRAfEpLeaHCyWCpQhDSS_hPlBZG_PIeTKymXUamIQSkuhlsOgcRAeLVCi@TdKI[ZSuyGSQH_RDIoTxRQfesLka@CiXCrQgDUSchXkRXgaPMeDKYnXUAnIOSgu@kcPgeRIe\VciPUDQImYgtyESMHYQzIkTpSQiEgLY`lBqUsmQiD]T?ihibVgXOwddJqoXSAlIeTWt@jSLg]Qod|WCi@UdPIgYctaECMhZQxIgTxSajejL[`hByUcmqjD[TKipiRUGWOyd`JypXSakI_TStXjcLG^QqdxWci@TCsHmkDWsj@VCoHekHWkjPVctHkk@W{iPTcpHckLWcjPVcsHmk@WyqXSajH_RLWYpDcQgDSRSeqoTbJJdWIweHKd`JDUTIcTXJQVIxTvIoTpIQTIwTtIoTpJAViwTslATGiqSCjTqjlYKi@TCkH]jpVsjPVcgHUjtV{jPVclH[jtVytHSAiHQQhVandiqpDid@IQYStqpDidDIYZCvQoDgdPIqYCtJWd_JPIiTsuhnUrJKUyTCjHlR^JKUyTSjhgRTJGUqSChHkR[lqUOlcghRRQelZkk`ZhIQ]fHM{kPYHGQYfLMskpZHHQWfLMsk@YhJQ[fHM{k`ZhJQ[f@MiwXWasQQcpMI\DoQrDkc`Hi[SyJbd_JTHQRswHtVDJGUpEaLcwHu\OyycTIjWUrJ?U`EaLcwHu\?yYcDIJ[UzJKUxEAKc|H{\SyqcdJJYUvJCUhEAKc|H{\CyQctJj]U~JGUpFAMc{H}\?yYcDIJWUqmmU?lAMC\HwR{y`ttGiTUwlt\SkpZc]G}RcfPsRhIRSmlhZYyXWatG{P{fHMbifUSchXZqvtsQoDiQ?cpOaafHMSgdPywTqqqDmQCcxOQbFGMUghPawtrjodcJ[cXHQ`dCMW[|PYbTpjfd_JScPHA_DFMY[xPAbdojdVdJKUpGARDAII[sxqaDFJ_VHJCU`GQRd@IK[oxyatEjaVKnQUGlAPcdIESOx@qtDIKVCmYUWlaPCcI?S[xHqdCiNV?mP]sKOYiOSckdX[KOYiPSekpXsK?YISSkk`XQ}GW?sSih\Xirt{or@mhPQqrTfor@mhTQyqDdOq@kh@QQrDfJ{`cBXQIctcjJVzBGEyadFjQUnBCEaaDEjRUlBKEqaTEJRUlB?EiatFJQUnBGEyatFJOUioEEGLDCiKUalP_CKoZIGSYlDYb?wW?tSSg|YAtU@Oq@kWopxeBLfYMuedLi}D{oo@gW_pXeBLfYMue`La~D}or@mWsppfRNFWMqehLq}d|op@iWcpPfRNFWMqelLy~d~oq@kW_pXfBNf[Mye`La}D{kJ`_BOp`brME^Mw\tLIZT}J|WTBKExaRDEXKs\wzyYsvjyVuoeEGLREeMKqXgzpvstHmV{n|`CK?YePKcYGshwBrHpRmoD_kK_ZeOKeYCspwRrhqRgoL_zCGX?vKgX[sXhBpfdRefT_Z@wW?tKiXWs@hrpFcR_fX_J@UHOr@kXSqpgbQf_NKf@Mr?EAOp@gXOqxgRRF`NMfLMj?eBKS`aBOq@crPecNE]TMQ\E@KE`eBWqHcbOEfNC]PMI\u?KCWlGcPikTXjGUSoT_saPEisTkkdXZ@EBqGCWj@UQrDfK?WEpaP?bDYivUYk|_J?eKqJC]jTUyrDfK?WFGkPykDXJLU]oD_Sa`FIsTkk`XR@UBK[cSGxUIktcjJWGo\bka`FiiT]lHYy}T~QHCWilTqsDijwV~GkPqitVJPUgnh^ka@EiiT]lLYq}t}QIC]i`TistjJzVwqEPGbDSikUalP^Q~UOQJC[idTasDijwV}qMP?bTSIlUcl\^I~ePQIC[RgfX]A|fsNmbDEjEEKqGCWRgfX]A|foNeb@EbFEMqJC]R_fH^Q~FtNkbHErEeLqHCYR_fH^Q~FpNcbLEzFeNqIC[Rofh^A~foNeb@EbEEKkjcOGof`NQ}D~Ng^\EILUMK\XTGkPxNa^dxJs^C}QKsZkYWuqePGbQ^C~JqVg}h|cXGuW{p|dCa@Ed?IKWGohyRtGhP]qDcka`Fd@IMWCopyBtgiPWqLczKHDANIESSoX`BuFnPUatcZHxCALICSOo@`rufmPOaxcJHUXQJC[S?gp_bAflN[a`DrGEQQHCWSCgx_RBFkN]alDjGeRKscQGogXPR@eCNO]lDQJEPKecUGwgPPB?EFNQ]hDIJuOKcXlPCaiKSXhgRSmT[tCQIgsPkedLYxDrsOGgb@EQZCvJ_VEraa@DCYgvRYe|[Iwe[sRGmbTEyZCvJ_VFPKayKCXHlR]mD[TCaJGsPke`LQxTrK{gcPXEIKsshjVGm\flCaJgiP]fHMyuTnSPGgalDq[CyjWU~PKaqIsVHpRglhZlCAIgiP]fLMqutmSQGma`Di[szJZUwsEaHDCSgkRafPZQvU_SRGkadDa[CyjWU}sMa@DSSGlRcf\ZIve`SOGiRCePWArFAMIlDYzOUasQGmR?eXWQrf@MKlHYbOublGgcP[e`LqpddME[PYYtU`lFg_PSehLapDcM?[\YAte_lDYTPKapLQZD_JK[GwisDjL?YHPCa`LAZd`JM[CwqstilAYKsqaHDAWCrJEUSwXpDhJSYCsYaXDaWcqJCUOw@ptgjVY?sPhtCaJCkH]TgjXmB\jHUYr`fLCAICgHUTgjXmB\jGUWrpflCqJclH[T_jHnR^JIU[rhf\CQIchHST_jHnR^JJU]rxf|CaJCgHUTojhnB^jGUWr`fJSyGCSHWQ{j`VR]E~UQktfbNUhSRGmQcdPVanexLsklXzMe\lPgaPSdhJanD^LqZhXQre^K~Y`NC]iACDIPSeoD_s{PygHOUhPQr?EBroFg_p@qcDHKAWIta]?|CEgNSih\_Z@EkrrFm_p@qdTJkBWHNK]yBSFiOScoH_k{`zGGOShPQr?EBl[fcNX@IAtGiRWAoXjk{`zgQOmghPy}d}RpFg`@AiatFJzVzNK]qCSIIJS[nl^k{@ygROkghPy}d}RqFm`LAqaDEjxV}uE]G|CGgSSQgp^A~eoRrFk`@AiaTEJwV{uM]?|SHGVSOgt^I~upRoFiUGkh_BBEhLScdHzWUqrqFmUCkp_RBegLUchHbWurlgfcN[kXXB@eDLWY|HYRUplff_NSk@Xr@ECLYYxHAReoldZTNK]pWaqe?KKYstqQCfL_ZHNC]`WQrE@KMYotyQselaZKuq]G|ApdcKEWSt@isdHKZCuY]W|aoDfKCWOtHicchNZ?uPls{`zDWIuVgnXlBZhPQit`jK{@yDWIuVgnXkBXhOQgtpjk{pzd\I{V_nHlRZHQQkthj[{Pyd\I{V_nHkRXHRQmtxj{{`zD[I}VonhkBXhOQgt`jJ[xwBsIwT{n`^RYEvQadTjbVUxRrFmTcjP^a~epLcdLIzUellpfaNSjHUa~D~LiZXIQTenL^Z`ECKiASDgoPcsTgrWUrP`BI_p@qKSXlCYMu@k{W?qGGOSbPErOE`laZIvaK?XCEgNPib\gJOeplcZrEKKyBSFgsPks@gZWuqPbBM_`@QLSZl@YCuHkkW_rGKO[b@ERPUbL_ZMvqKOXcCgJPabLgbPuoleZzEGKyCcJgiP]rdfrUemP`BG`LAqICUkwX}tljkWorGROkadDbMe]lZYzE?KiCcJgjP[rlfbUemPaBM`@AiIsVKzXwtdjz_Wo`cOa`PDIJE\K|YotxoCWorGPOga`DjME^lWY{wMK?XSGGTPSa|fJNekl^[DEGKpEALdsJmXgrYkTYlwZrE?K`EALdoJeXgrYkDYL{ZzEKKxFQNDtJkX_rIkdZLyZvECKhFQNDpJcX_rIktZl}Z~EGKpFANdoJeXorikDYLwZqwmK?XAMC^JgV[r`fTWitZwvtpSWorcXGsVCmPfbNirTmvhnZaWo`dGqPgmh\bNE^TcjXnr^vCP_BIQGchYQtE_LKidTz_VApaBMQCcpYAte`LMihTb_vBmObCE[cXHAuDnLEYTTYjV@mFb?ESc@HqudmLCYPTAjf?mD[dEKKpGaQdlJ[Y?sqiDVM?[HECK`GQRDkJ]YCsyitUmA[KxQKGXAPccJOUksXhTTIk[CwYKWXaOCfJQUgsPhDSin[?wPqssPihPQej@UQwTrKdXLLCYiTCjIpTem@[zHERrOEgd@IQlDZJaVIq@cZeHgBSQid\UiltpjcXAqHrKspjhTQmjPUqwtqK_XFLKYySChItTmmH[jGUPRQEkdPIqkDXJ_VMqTcrfHhBUQadLUIktojeXGq\rks`jhIQ]ihTyudmKXW|LCYaQsfIgTYllZjEENrREkclHqiTUJZUyphbks@ihIQ]ilTqudmKZWxLGYyQCeijT[ldZzEuMM`eaLPHIRDSikUolxbRFVORREkcdHaiDUjWU{p`bzgxgBTQOctTQjtkj^WqpxsSs@idPIc[?wpwbqgPOmyDsks`jdOIe[CwxwRrGQOgyLsziHhBVIgT[wXpRpfcOe`TsZhxgBTIiTWwPpBoFfO_`XsJhVTRREkTSipoBbFaNI`@ArgFQRPEgTOixoRbf`NK`LAjgfRMkeaLOi@Sr`fDNE]PAQDFPMeeeLWiHSb`FCN?]\AIDvOMc\\LGYpRAfeyLu\_zYASEmW[rL?Y`QAdeyLu\_zYACEM[[zLKYxRQfEwLq\szqAcFMY[vLCYhQQdEwLq\szqAsFm][~LGYpQAde{Ly\ozyACEMW[qzMY?tAeDNLwZsz`vsCgL[wxtuSspjdHISZwvxuRlGJO]xhrZkXgbTIYSwvpnrkfYOS_xrrfvW^") michel952b = Graph(r":~?Mw_G?E?C?w@O@?L?K?c?oA?H_A?W@C?_Ao??N???wBW@?D?X???s?oAo@?M@E?O@?GOA?H?C?{?oA_T_??WAc?_@oC?J?W?wEW??@?p?G?[@?AoE?M@u???OMO??A@_Bc@?A_X?z?W?wEoNoA?E@gBs@?A_X?yAM???OK?[@D?G?WE_N?`_K?[BWFoOO@?K?_@[??B_H?SAa?W@?E_M_C?S@_BoTOB?G?s@s?_A_K?]Aq?G@_C?J_??[@GA_VOA?G@KAc?oA_O?n?C?wCOJO??K@GAk?_A?R?gBI?W@OG?V@f?C?wCOJ?o_??WAODOWoT?l@?A[D?JoP?d@CAOMWI?V@p@?AWMwI_U@tBgF[N?]o}@}CEF?MO_Oy@vBoFkN_^`D`oBcGcM?^Oz@zBcFwQW\?{APBgFcMO^oz@yCuF?N_eOw@qC?GcN?]`@AJBwFwOoboy@uCGGsN?]`@AIDMF?MO_@CAdBgFWO_b@P`{B{GWPogOO?eBcFsCOH?w@}DaAgD_\_{_g@[FONOlOT?kBkFcD?J_y@yDqA?Co[_}_a@GF?NonOy@wCkHcMo]`GA^BcFwQOfOw@{CgHkM_]@JAWEIFWNOc@NBFBcFwQOf@_`oBwHOROoo\?{C?G{E?L`AAJ@oBwOoaOX?sCCGsEOL@BAGEeB_Fo_`EBP@_BWO?b`j_y@wGOPOtPiBVEoLkZ_v`pbOEcMCY_tpkBZEwLw\Ws@hBhE_LG[?yPkBYFCMkZ_v`rBnEgLW[_zPkBYFCMg]ws@hB_FONSY_t`qBkFeLoZox`vBp@_BWYOvOX?sE_Lw_GM_]BUEqB_Fot@lCD@sBoYouO[?}EgLg`GK?ZBQEyBGE_s@nCLCKG_Y_uP?AMEkLkOOb@hB^CGGgY?vPBAGEgL_ag_@FBUEsP[OOb@hB]GaGOPOs@mCR@_BwROfOY?yC_H[EoM@KA^@cBoQOdOZ?wCcHOcWK_]AWC{QCE?N`GAUHMBOFOe`MCdHGQ[d@IqUCmHeQ?cPKQQCfHOQkd`Ja\c_HCRcc@GaWCxHOQgePMqUCmHkR{c`HaYC|HOQgePMabc_HCR?f@PQQCeHgRogXJAVCuH{SCQ?daPClCcHOc@JagaYCwQWdGe@NCcHSTSROfARChCoHwc`IakaOCkQGdgc`IC_H[TsEoMAQCh@_BwcpIoX?{HCQ{E_MaOCl@kB_c`IAq_o@{QWdPXoX?{HCQwkGL?\C_HWUKA?F`JA]FSMsA_E`JA]F?M[AoE@GAWFOM{AOF@GAWFCMSAoE@HAYFCMOmWC_MAQCsM_\p[OG?]CgHo[?xaz_S?sHOR_y`uDtC_H_m@[pHAYJoVkQofa}D~CgHom`\pHAYJoVgowc@KDoJcWSQ_fAyDuKEHWRp^A~E@F?MWmP^PpBcJ_VwqGy`uDuJqM_\p\A|ETFSMomp]PsBmJgVgrGw@rDqJyMG[`[A~E\?k@_m`]OG?]JkVkAOFAxD~?g@gm@^OJ?WJgV_sgC?NDuJsY[AOFAxD}LA@OBP[A}Eb?k@wPObAWC~?k@wO?`aYCz?_@_P?baZCx?_@_OO`AXC|?c@gOO`AZCwLe@GBOa@FCqHwZCA_F@?AEH_RwuwD?MAICWROfPlOG?WL_ZKAOEb[Ez?k@wv`noI?[LgZ[AOEb[EyMM@?B@kBXFD?g@ou`lb`_U?{ZovpoP?AELcZsOO`BWE}MaGgP`lb[aGC[ZOvPtPDAKLkZcP?bbYEyMqG?Opkb]aACGZ?vpvQZCwLgZce@NbZEzHcRouPnqYCyL_ZsepMBYEwNIR?fplb\FfHcRouPnbocsHsZ?v`woR?mF?MwfPNOR?mFGMge@LoO?gFKM_f@NoO?gFCMoePLOP?iFKM_ePLBx_a@SMG\`MA^Fp@GAo[?zaWCuNmAOD_x@tCyHw^SC?IBwFr@CAg~@}oR?mNw^{C_JByFv@CAg~@}cB__@O^?}Q@OQ?kNg^X?WH_VF{N{_Ce@LbxF|HcRO}@~cGcyHw^W~HMA^FsNs`SfPNBzFxHoRw}`}cKcoHk^G~hKaYFoN{`s[oyByFxF?Mw}p}ppBkNc^{[_ybwF|FKM_}`}CQb_F[^W~QHppBkNc^xCGx@tFoNwaKw`rRbFNM?[cwPqrbFMPm[OxaLR`FIPe[?xAKRcFJMG[[x`rc_f?MCcKx@qraFFMW[xHHoB`HJMS[pEQMRcFMP_bkxPrCXGxMO[xEAMr_FEPgbxIhobaGuPwd[w@pcYG}Qa[GwaLc]HRMG[XGqRrcFIQ?ccx`rc`HJM?[HGaRReFMQCchKXoB`HCQWeCw`pcbHMRM[_xQOCcHdOG_pGAOsBGMQOcl?AACcHJOC_hGAOsBGMQGcXMy@CEHKQ[fT?QAceHMRe_@@APCbHpOO_hEQNsAGEPkbl@aBcWG{SA_@?QLC[IBOO_hEqMsAGEPcb|@aBcYGwSQ_@?QKC]IJOS_pMQ]SCGMR_fl@QBCxHxOO_xMA]s?GERgfxQi?cAHuRwh\?A@cyH}Sa_H?a\c}IROG_XOqbsCGIS?gd@aBd@IJO?_HOabSEGMSCghSY?C@ICSWiD?a@dBIMTM_`@Q_DCIdAGCsGoRo_@HACCkGoRdZ`CAWjSGOQdX`?AOjCH?Qoa@FAWCxWGO?`JBAOCkG_Poe@MUQC?GQqoa@EUKk{H?Qd_JHAWCxWQqo_@AUGksH_Rd`JIUeC?GQpDeJPAGCXWqrdj`GASk@XAtOd@KTcjcH?RdWIzASCpUQmOc@MT_jkG?PdYI}VICGGald]JfA?CXUando`AAGjXVawrAEKS?gHWarrBEMSOghWAqr?EGSOghWqrR@EIS?gHWQqRBEMSGgXWqrDzeCKWgpPqodcJtKCWhPabdaJMVeW?pA`DBJ?USnCp@acxH}T_j[o``czHyT_j[p`bcwH{Tojx_H_B@HsRoj`Vr?rCEIRkfhUQlRAEERcfxUQlREEMRgf`VQnECe?KCf@Namd]KJKSWp]Q}RCEMV_nkpPbDxJxKOWx]A}r?EEVgnxah_bAJuVwp[o@`dyJ}WaWGoa|d}KRKGWX_rBrCEIW?ocp`be@KJK?WH_bBREEMWCohcX_B@KCWWqCo``eBKMXMW_pR?ECKdFgNpGaRpzB}Q?ck]?}CbHLFcNhGQQPzB}QKcpew|@}HAQOrS]O}caHMXeN?^AOCdKpFoNhEALpyBuP_b[^_~c[G}YAN?]QMC^LBFoNhEQLPyBuPcbS^_~c\G{YQN?]QMc]LJFgNXgrRp{ByY?sc^_~e`LJF_NHgbRP}B}YCshiW{@xLCYWtC]_|ebLMYmN_^ROEcLTFsNpeRMP{B}X_rk^O~EXKxFoNxeBMpwBuXgrxkg{`yKuXwu[]?|eYK}ZANG]bLe]LbDGIpWAopRAmUOkkS?iDcJJDCIhWAopRAmUGkXmwh@UJKU[vSSOideJMZeI?TApDbLpDOIhUQnpQAeTkjkT_jdWI{[AI?SQlD[MBDOIhUqmpQAeTcj{T_jdYIw[QI?SQkD]MJDGIXorbpSAi[?wcT_jf@MJD?IHobbPUAm[CwhqWg@PMC[WxCS_hfBMM[mI_TR_FCMTDSIpmR]PSAmZ_vkTOjExLxDOIxmB]pOAeZgvxsgg`QLuZwy[S?heyL}\AIGSb\e}MbIGSpgbRf?MBIKSxgBQfCMJI?S`grRFCMJICShgRQF?MBIKSxgrRFAME\mSOhbOecMK[[zSgPQeaLM[WwxuXOAcL?YSwPorkQcDIX_rXmR^qaDEX_rXmr]qeDMXorxmB^F_d?ICr`fr\E{NBIOSheRLEzLzIGSXeRLExL~IWSxfRNEyLw]QS?gRMe]LoZw{kg`PfbNNIOShwBqQeDM]C{kg@OfaNLIWSxwRqfhd?IC{PxbsQaDE]K{xyxQAdN?]O|ShPRFXMxIOSxuBmqdDK\czch@RfWMzI?SXubnfqdAIGzXvbxq_DE\gzx{HOaaMu\w}K`PBciHYW_p{_@@CgH]Wgpk`@BCiHYWkpc_P@cgH]Wcps`@BCjHWW_px}x?aBHQQwpPbR|QDCMQkd`arEFxc?GGdHJbCeMNpGKOxKaYeQKjGCOhKqYERKhGCOhKQZEOKm_AOW`qWCvKaXX?K_@ACrHgX?q{_`BCqHiXCqs_`BCoHmXGqi@H?ACHaRWqXdCAq?CGTWiy@CBqBCMT?iI?C@qACKT?iI?S@GGcAGSipTsAgEORGCOhSahgDOLGGOpTAig@ODGKOxTAig?OE_qO?`AhDROG_\@k_P@dHIW^g~c_P@dGIY^g~c_@@DGIY^c~{_@@DHIW^c~{`PBdJI[^_~qCHAaFISS{~@~cGqCCKSghx}r}gQcGGWhXRb|f|OfAsDxkBZfQMjA_DPkbYfOMnAoDpkrYFQMjAcDXkRZFOMnAoDpkBZfRMg`mDGIrXEtMa\XBSJOVerLg\KyaEWS?iLaZWyHtcKOj@]Ygthqbeoh@YYkt`qreOh@YY_txqRfG_`UA{tHjbcFNPBA_D`iBVfJMXAgDpiRVFIMZAgDpibUfGM]aQD?JBTekMQ[xCkIOTfpNg`hBcIOTfoNi`hBcI?TFoNi`dB{I?TFpNg`dB{JOVfrNk``BqIGU_nNc^\BAFcSok@[^G}yEsMgi`WAw}X|cLg\PVA_D`zbvgcPNAkDxyBsg_PFAgDpyBsg`PCbADGJRvFnPIaXEKIOUfiNUaTCsI_VFkNYaDCSIoVfkNYa@CYLGS?kNS]lCaHsYp\A}Q_dx{byg?OJD_JPIaUfoNm_D?cV?nCjHW^G}i?cBpXAuQcdp{BzgBOLDoJpIAVfrNg_@?iMwk`ZHSQs}H|c?gCPtDsJxIqUFrNg_H?yMWk@YHQQw}H|c@gEPpDkJxKaYfiNY^c~[UOmcrHg]k|`}B|PXAyR?exyRvF|N}cAJWVqWcuNO]{~`~c_pWAwR?exyruF|N~DgJpKQZFiNY^o~sU_nCqHi]_|x}R|hCaoDoeXLBsfmNo^hGkUOlepLgbhFcUOleoLibhFcU?lEoLibdF{U?lEpLgbdF{VOnerLkb`FqQGm`^LcZ\FANccp[A{ZGuyMs]hIawDwuXlc\g|QVD_J`jbVhCQNDkJxiBSh?QFDgJpiBSh@QCdAJGVRVEnQIcXIKUOmeiLUcTGsU_nEkLYcDGSUonekLYc@GYTGk@[LSYlGaPsirlF]Sghh[AzrgFSS_hx[ayrkF[Sghh[qyRhFUS_hx[QzRkF[Skh`[AzhZfQMkhHRaxDtQtMs\xQqeDrJgde\?yacdMJaVXJCypvdQIiUglkyPudRIgUklcyPudPIkU_lyWHtbnI_T[lHZcorgFWTKi`YAvriF[TGihYQvRiF[T?ixYauhcfOMoiHTatdkRJM_\`dbJhcRNMk\xcBGh_RFMg\pcBGh`RCea\GzRJEVRIeXLKyPueQKeeTKsy`vESKieDKSypveSKie@KYZHsBkKcXLKaXsurhFUWcpaUcmRhFUW_piUcmRgFSW_piUSnrgFSWcpaUSnrlF]WkpqUCnHofYM{pPbskH]RbMo\pabFhZQyfI\_zbDeMQudtM[rPfdqJi^?}yOCah`RNK_XP[AzfqNicDGaWCrRKE[VGmh{ryHAQMeDK{qPddoJm^C}qOsbH_RLKoXp[qyFoNmc@GiWsqhzeQKkmH\bxFtQAcPKQXC|RLE]VKm`{ryHAQMeLKi]XcBIJaVW}H|c`hERCePNCqpfdiJY]g|iMS\hWQxKcXhYquFjNWb`FQUSmrHEYUclpyBvg|P}dhJq_HdbNJOU{|Hzc]G}Qud|OKq@eDjJW]_|yNS^hXQzKgXpYaufhN[bpFqUCmRIE[U_lxybugxPudlJy`HcBKJQUw|XzC[GyQsdxOkqPdfPMgfhNcqPdfOMifhNcq@dFOMifdN{q@dFPMgfdN{rPffRMkf`NqaHebNMc\\NA^dCrKE[\Gyy]s}iIeWKwyXtc|h|SVK_X`rbfiCSNKkXxqBci?SFKgXpqBci@SChAXGrRfFNSIgXQKqPefIMUgTOsq`fFKMYgDOSqpffKMYg@OYdHcBKMS[lOa`tIsLG]WgphsBjg@OMa@ClAADEGK]\Gyi?CBG`PHOo`pabEfRMg_D?yGcRsHGUW_pxsRjG?OKaLCtBAFEJKW\?yy?sAg_PIhm`HArCeMMc\T?Q@COgcStOs`xarEFRMg_L?iGcRiXgOOgpHbbgfUOC_PCYHdKSJG]XGqhqbefwNw`dB\AQEeRKg[kx`}R}gWOtOc`hcRJFGM]^g~qFSNi_gUO{q@drcfMNu^|BaFdOsGGWXKq`qBffxNy`tB|AaFEQKi[cxp}B}G[O|Og`pcBJfIMY^k~yESLicgOOoqHdbdfKNs^xBAEdQsHGUVCmaedMSHGUV?miedMSGGSV?mieTNsGGSVCmaeTNsLG]VKmqeDNIggYO{mP\tKI]TROo`p[aziZSyii``BaxduSuhtT\AAEDmJ]iPS|AqFdgJQi@S\AaFDgJQiDSQkICcLJ[U|SihdWsHGYUglYhTRSIG[UoligTPSJG]UoligDPisgOOolPYtQIfTjIsTxQAfeqLiaDCyWCqqgDSSghhkBZg_PKeDKcj@VDJIWZGuiGSRhaRNIcTXQQfEoLma@CqWsrQkD[S_hxkrYGbPIe@KimxSajISSsuHlcPGcRAePVSjPVdJIWZKuaGsQhaRMjeT?iacdMLaZXCQHCpheTpIkTxSaieiLY``BaUSlqhDYTKi`irUGXOyd`JSiPUdOImYctqEcNH\Q}kATWjqgdULOY|BYFsmH]UBI_T`SAjejLW`dBiVSnqiD[TCipibUgWOwdpJsi`VDQIiY_tyEsNhXQukQT?jAhdSLQYxBQFckHYUJI_T`LaZjCUNIkTxKAWj?UFIgTpKAWj@UCkaTGjQZCvUIkXXKiPUcqHekTWsi`VCsHikDWSipVcsHik@WYrHSAkHcRLWapteqhDUQcdamd]QhDUQ_dimd]QgDSQ_dimT^qgDSQcdamT^qlD]QkdqmD^JOdYI{dPJt[I}UbIoTpIaVizTylIT_jaTcmTujtY[k`YhOQgedLkkpYHQQke`LauHXasQed\LQZhXAtQadTLYZtlQoDmd@IaYsvqpDkdHIqYcvJ[daJXIYTssHkd_J\IITSshlU|JOUyQSdhpRfJCUQRCfHpRfJCUQQSdhtRnJOUyRCfHtRnJ?UYQCdHoRcmAUglcehNR_fH[KlPZHGQSfPMqwhWArQYc|Ma\dpqpDkP_bpNA^fQMmh@QYuTlQrDgPkbhNQ^FRMkhPQyuDlqrDgPgb`MQ\FOMihDQQuDlqpDkPcbxMA\fPMghTQquTlQoDmPcbxMA\fQMmh@QYvDnjidcJSbPFA[cyMe\XQadtmj]VVJGUhEqMc|H{\?yicTHJ\U{maU?lqKC]HwR{yHtDIiUUwl|\KlPZCeHMSCg`rBeiGSUmP[{l@ZceHMSCg`rbfiLS[mD[SkPXC_HAS?ghqbdiKS]mT[q{XWArH?QCg@PRcFHSQgh[AwtwQpDcQGcXOabfGMQgdPQxTrQoDeQGcXOabfIMUgpPywDpqtDkQOchOqbFMM]gtPqxDrjtdgJ[c`HQ`dEMW[tPAatojaVhBGEicDIJHUZBKEacdJJGUWnaEWLDHiVUSkyEOLTGiTUUk|^SK?ZiOSgklX{KOZIQSkkhXq~GW_uSeh\XArGW?vSahTXIrT~Os@mgdPYsThop@cgpPqsThop@cgdPYtTjos@mgpPqtTjoo@eg`PQsDhK?`iBXPibtgJQWBBSEqaDDJSUkoIE?KtEiNUglX_[KOZEIK]XorxuBnHgRUnd^SKoYEJK[XsrpurmhkR]n`^[KoYEGKYXcrPubmHhRSn`^[KOZEHKWX_rXuRnhlR[nd^SK?ZeIK]X_rXuRnhgRUnp^zAgX?tKUWwrHeblF[RWe|^i~eDoq@iW_phfRNFZMyedLQ~T~KG`_B[pHbBME^Mo\xLiZd}J~WRBSEpdBIe`LG]W{y[CxkCWNBOExdbJe`LG]W{y\SzK@WDBCEPcbHe_LI]?{I\CzkDWKpEE?KrGEPL?YS{@wSwhqW?oLaCKOXEOKaYGsxwbphpRcoT_sK?XeQKeYGsxwbphsRmo@_[LOZEUKmYKspxBqhtRkoP_zDWY?vKgXSsXhbqFdR_fL_J?eIQICYjDUiqDeKCWJGkPakDYJIU[oX_zEHDaKTcjXXYru?K@cSGtUYltcjLWCoLbSa@FirTmk`Xb@EAqHC[jHUqqdfKEWMpqPGbdWIsUUk|_B?XCANTajTXIrU@KBW|GoPyiTTjPUenl^caPDIhTUlPYq}d}qHCSitTysThjzVxGoPyjTVjSUknh^ka@DigTSl@YQ}T~K_cYGxTAidijVVon|cKbPFIkT[l@YQ}T~KacOGlTajdijVVon|c[aPFCwH{Vonx{bzgoPepdbSapECzHyVsnp{rzGsPmp`b[apECyHwVcnP{BygpPcp`b[aPFCxH}V_nX{RyGtPkpdbSa@FcxH}V_nX{bzgoPeppbzIhDALHsRonH]bxfuPgb\bjFeTqICYRkfh^Q~FoNibDERFUNKgcOG{f@Na}D~Na^PEiLeMK^XRGsPpPabe@KG]o|iICTkcXNGoPxPabe@KG]w|yJSVK`XDGcPPOA_e?KI]g|YJCVkdXKrEP?aq_D@K?WS|@ySSgiX?qLeCaPDDAIEWGoxyBsghPSqTcsa@DdAIEWGoxybtgkP]q@c[bPFDCIIWKopzbvglP[qPczLXEANIGSSoX`buFlPOalcJGeYSQGibDEiYCuJcVJPKaaKCYHiR[mX[zMIHcSPcbXLYZtoJ`gcPTEYLsshlVCmLfTCAJgrPme`LaxDqsPGkbHEqYcvJeVMrqaHDcWGsRUe|[AwYGCVPabTLIZTpJbX|POayISThpRellZdCQHGhPUfPMqudmsPGcatDy[SxjZUxPOayJSVhsRklhZlCAHggPSf@MQuTnL?giPXDAIcyhvUol|gLDQJGkP[f@MQuTnLAg_PLDaJcyhvUol|g\DQJCsHiUWkxoRaJOUesPg|DAJcuHmUWkxoRaJTUksDgTCQHCqHeU?kHoBajSUmsTgrQYGCRH_RCk@WR_FDUalHgBOucSPGcR?eHWapfAMMlDYRPUbSOGeRGeXWapfAMMlPYzOE`sTGkRWexXAqfBMKlTYrPEblLggP[e`LQqDdME[XYAsu_lAYXPCapIaVdWI{ZovyqDdkxXtPKa`IqVDZIyZsvqrDfkwXvPKa`IAUdYIwZcvQqTdKwXvPCapIQUDXI}Z_vYrTfKxXtP?axIaVdXI}Z_vYqDdk{X}tIaPDQTcmIsTovHmdeJNXyrxi\CaIcgHYTkjhnR^JHUSrtfrSIGCVHQQoj@Vb]E~UYkxfbNugrqFi_`@acTIkDWNNK]aAcFIOSgoP_rUHxbsOU_|QQde?kBfcNT@IBTHiVW?oHjS{@zgGOWhLQz?E@RpFk_h@qcdJK@WEtq]G|cDgNS_hP_b@hwBvOQ_tQIdUAkFY|NO]yCSHiHSUnh^s{PxGSOkgdPY}d~RpFc`DAYbTFjzV~NO]yDCJILS]nl^{{@xgOOcg`PQ}D}L_fiNXAiDtCIIVonpkK|PzGOOcgpPq}T}laf_NLAiDtEIMVqntk[|PzD`JGWWoxjBUhGQUuPk{|@zd`JGWWoxjbVhLQ[uDkS{PxD_JIW?oHibThKQ]uTkrYXwBrJ?USo@_RSEhQQchkBWusRpFcUGkx_b@egLQcdHRXUrRoFeUGkx_b@eiLUcpHzWEprtFkUKkp`BAemL]ctHrXErllfgN[kXXbAEDLWYtHAQuolaZXNC]pVAndwJ{ZGuySChlXYtNK]`VQnDzJyZKuqTCjlWYvNK]`UQlDyJwZ?uiSShLWYvNC]pUAldxJ}ZCuaTSjLXYtN?]xUAldxJ}ZGuySChl[Y}vI]O|QkdYJsVouXlciHVYytxm[{`yd\I{VknhkBYhPQcttjr[HwBvIwT{n@^bWesQidXjbVuwpaBI_d@iKCYLCYIuTk{WoqGGOWbHErPeblcZKvaKWXCDGMPeb\gBOUolbbCET@YBsWgtYCsLkBWe|P_BM_l@yKCYLCYIu@kSWOrGIO[bHErPebl`ZEvqKGXcCGKPeb\gBOUqLeb?E\@IBSWgtYCsLkjXu~PcBM`DAYISTkzXwthjsWOpGPOeapDrMe]lYY|ECKQDSJghPUrlfbUunpcBM`TAyJCVKyXytlj{W?pgOOca`DRMU^LWYwwAKgXcGGQPYa|fBNukL[[BESKqDCJGgPSrdfrUUmmAb?ELAaDcUgnXor|jJVV@p`BKPobx[azeWK{j@UZ]U|PbBGPsbp[qzEZKyjPUz]E|pbBGPcbP[AyeYKwjDUR]E|p`BKP_bX[QyEXK}jTUr]U|P_BMP_bX[azeXK}j@UZ^E~mIbCESbHEaxduKsXpUalu}l}[VEGKhFQNDoJiXkrikTXL|Z{waK?XqMC^JaVOr@fdYiuZwv|pKXOrC`HGUolhhbRigTUwPo{X?rc`HGUwlxhbRilT[wDoSWOpC_HIUglXgBOikT]wTorcWo@bH?QSl@YROE`TQihoB_vGP`BCQGcxYAseaLEidTR`VBP_BEQGcxYateaLEipTz_F@pdBKQKcpZavecLIitTr`FBmTbGE[cXHauDlLGYTTAiv?mA[hLGYiSSiioTgmT[zHEQrREgd@IakdZJcVKqXczeHhbSQcdXUYltojbX?qEYOtShhVTajT[AwePKb[tL?YySsjioTgm@[RHEQrPEkdHIqkdZJ`VEqXczfHgbUQ_dPUYltqJeX?qEY?tsghTTajT[ixuPKb[|LOYyQSdihTUlhZrEuMRPEccdHYjDVJYU{phbksPhHLQ]idTYutnkZWxLOYyRSfikT[llZzEeMrOEec`HQiDTJWUwpdbrgHibUQOchTijtkJ[Wop|sKtPjHKQ[i`TQuTmkXW{yIY?sseHMTYi|ZIvUKK^\FLSYpTAifEMM]C{aCCHmc\NLOYxTajfEMM]C{aDSJM`\DLCYPSahf?MA]?{iDCJmd\KyeY?sqgDPM?[C{@xSGgQ\?yLtCsPhDOIa[GwXwbrgPOcyTsss@hdQIe[GwXwbrgSOmy@s[tPjDUIm[OwhwrrGTOkyPszjXiBVIgTSw`pRpfeO_`LsJgfURPEkSghxmB^F[M}_`@ZeVLRREgSkhpmr]f\M{_p@zeFLrREgS_hhmb]FXMs_d@ReFLrPEkSch`mR^fWMu_t@reVLROEmSghxmR^fWMu_`@ZfFNmqecLShXRb\E{Mq\h@aBvMm]\fLGYhQAeezLy\szqASDM\[{zAY?tqcdKLoZwz`vsEgM[wx|uN") michel952anx = michel952a.networkx_graph() michel952bnx = michel952b.networkx_graph() # List of graphs to process graphs = [('michel952a ', michel952a),('michel952b ', michel952b)] def count_k_cycles(G, k): count = 0 visited = set() def dfs(path, start, depth): nonlocal count current = path[-1] # Early exit if we?re going too deep if depth == k: if start in G.neighbors(current): # Normalize to avoid duplicates cycle = tuple(sorted(path)) if cycle not in visited: visited.add(cycle) count += 1 return for neighbor in G.neighbors(current): if neighbor not in path and neighbor >= start: dfs(path + [neighbor], start, depth + 1) for v in G.vertices(): dfs([v], v, 1) return count # each cycle counted twice (once forward, once reverse) def algebraic_connectivity(G): """ Compute the algebraic connectivity (Fiedler value) of a graph G. INPUT: - G: a SageMath Graph OUTPUT: - The second-smallest eigenvalue of the Laplacian matrix of G """ L = G.laplacian_matrix() eigenvalues = L.eigenvalues() eigenvalues.sort() if len(eigenvalues) < 2: return 0 # Trivial case: empty or isolated vertex graph return eigenvalues[1] def domination_number(G): """ Compute the domination number of a graph G using MILP. INPUT: - G: a SageMath Graph OUTPUT: - The domination number (integer) """ p = MixedIntegerLinearProgram(maximization=False) x = p.new_variable(binary=True) # Objective: minimize the number of chosen vertices p.set_objective(sum(x[v] for v in G.vertices())) # Constraint: each vertex is dominated for v in G.vertices(): p.add_constraint(x[v] + sum(x[u] for u in G.neighbors(v)) >= 1) return p.solve() # Print properties for each graph in the list print("\n Main properties of the graph") for label, graph in graphs: print(f"{label} | Ord.: {graph.order()} / Size: {graph.size()} / Diam.: {graph.diameter()} / Avg.dist: {graph.average_distance().n(digits=6)} / 13-reg.? {graph.is_regular(k=13)} / Girth: {graph.girth()} ")# / Alg.conn. {algebraic_connectivity(graph).n(digits=6)} ")# / Domin. number: {domination_number(graph)} ") ''' print("Degree histogram michel952a :", nx.degree_histogram(michel952anx)) print("Degree histogram michel952b :", nx.degree_histogram(michel952bnx)) ''' print("\n Symmetry properties of the graph") for label, graph in graphs: print(f"{label} | Aut.group.ord.: {graph.automorphism_group().order()} / Cayley ? {graph.is_cayley()} --- vtx.trans. ? {graph.is_vertex_transitive()} -- edge.trans. ? {graph.is_edge_transitive()}" ) print("\n") # automorphism group structure print(" Automorphism group structure: x means direct product; : means semidirect product.\n") Amichel952a = michel952a.automorphism_group() print('michel952a :', Amichel952a.structure_description(), ' | center order:',Amichel952a.center().order()) Amichel952b = michel952b.automorphism_group() print('michel952b :', Amichel952b.structure_description(), ' | center order:',Amichel952b.center().order()) print("\n") ''' print("\n Properties of the graphs as at arXiv\n") for label, graph in nonisographs: print(f"{label} & {graph.average_distance().n(digits=6)} & {graph.girth()} & {algebraic_connectivity(graph).n(digits=6)} & {graph.automorphism_group().order()} \\\\ ") ''' # Compute the distance distribution from a given vertex v in graph G # Returns a list where the i-th element is the number of vertices at distance i from v def distance_distribution(G, v): from collections import Counter distances = G.shortest_path_lengths(v) distribution = Counter(distances.values()) result = [distribution[d] for d in sorted(distribution)] return result for label, graph in graphs: print(f"{label} distance distrib from vtx. 0: {distance_distribution(graph, 0)}") print(f"{label} distance distrib from vtx. 9: {distance_distribution(graph, 9)}") # Counting k-cycles for each graph print("\nNumber of k-cycles for k=3 up to 4") for label, graph in graphs: print(f"{label} ", "| ".join(str(count_k_cycles(graph, k)) for k in range(3, 5))) print("\n") ''' # from 0 versio Molodtsov for name, G in graphs: fname = name.strip() + "_adjlst.txt" s = "; ".join( "{}-{}".format(v, ",".join(map(str, G.neighbors(v)))) if G.neighbors(v) else str(v) for v in G.vertices(sort=True) ) with open(fname, "w") as f: f.write(s) # from 0 for label, _ in graphs: base = label.strip() G = globals()[base + "nx"] with open(f"{base}_edges.txt", "w") as f: f.write(",".join( f"{{{u},{v}}}" for u, v in sorted((min(u, v), max(u, v)) for u, v in G.edges()) )) ''' # from 1 for label, _ in graphs: base = label.strip() G = globals()[base + "nx"] with open(f"{base}_Zedges.txt", "w") as f: f.write(",".join( f"{{{u+1},{v+1}}}" for u, v in sorted((min(u, v), max(u, v)) for u, v in G.edges()) )) print("\n DONE \n") ##