# SageMathCell online https://sagecell.sagemath.org/?q=lpnunq # Moore bound=2042. # ''' dhar859 | Ord.: 859 / Size: 5329 / Diam.: 3 / Avg.dist: 2.83367 / 13-reg.? False / Girth: 3 pelkh856 | Ord.: 856 / Size: 5564 / Diam.: 3 / Avg.dist: 2.81882 / 13-reg.? True / Girth: 3 Degree histogram dhar859 : [0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 63, 59, 70, 634] Degree histogram pelkh856: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856] Number of k-cycles for k=3 up to 4 dhar859 66| 11557 pelkh856 107| 11988 ''' import networkx as nx dhar859 = Graph(r":~?LZ_@???K??@O??F???G@GB_?_@?E?K?W?o@_B?E?K?g@OA_D?I?S?g@OB_F?KBC?w@_G_F?M?[@GAOC_H?Q?c@GAOD_J?U?k@WAoD_J?Y?s@_XOE_L?Y?s@gBoF_N?]?{@wBoF_O?}@?LWC?^_P?a@CA?]OG@p?gAkAWCoH_R?e@KAWDOI_SC}@SAgDOI_T?mACAogOJ_UDQ@[AwDoK_WDE@_RGEOK_X?q@_VwE`V_Z?sHsBWEoLB@?u@gWWFOMB^?wHSB_rOMAr?y@oTWFONA|?{KcBodoNBb?}@wZWEoNAd@AA?\gG@L__DaA?YgG@f__DqA?^WG`H_aGMAG[wG`R_aFmAGYwG`b_aDmAO_PCoQBN@WCORWH@[_cFuAO\gH@W_cEiAWWgH`U_eC{QkCosoRCGGuAW_GH`\_eF]A_^@MOSCCGyA_Q`KOSAj@ONCD?voSBL@OJKDOyoTBqHeAgS@HOTBP@SLohwI`Y_iG[P{DOiOUA|@WLghGJ@JCn@WNwegE?UAd@WK_kGJ@p_kG_PcDojav_mEAAwR`JOVBd@[KGiWJaDCV@[L_hWJ`}D@@_M?iGK@sDt@_H_dGKAEC`@_Jw_WK@PDb@_NOfwK@dD\@cHGeWKaBDl@cNWcgL`ZDN@cMWjGK`jEP@cKWnWK`RC^@gIGaWL@sDV@gH_ewL@dDv@gNOcwL@oEF@gJwgpdOXCKJMBWU`PBH_uFcQKFogA\_uDOPSEpBawEf@kMgjwL`mEH@kL?ngM@cDx@{LgogM@JD?L}B_a@ZbU_wFCTKF?nAdE\@oIOawM@~Cl@sOglPio\B?IOX[FOfAYEt@sNodwM`kEKMaBgTpEO\BAJeBg[`WO]BkIyBoXp\O]AYH{[CF_tBDFB@wJ?cGNA@DaLQBo^PIBn_{DoT?rwN`nEMM]Bw_`YBP_}CgRovGN`XDALABwX`_Bt_}FoQgzgN`wDT@wEgTPEo_C?H_]CG?jAMF~A?Hwf@nPvDZA?Jgh`eo_BCJ{]KG@AAqEdA?LGoPqo`AQIC[KGO|bFE^ACMWbPiO`CEK?_sGOtaTF@ACJWf`vo`AeIg]SGOpasFzAGMGaPhOaB}KKXkG`CAzGHAGHWgpqoaBGJK^{G_hAjFbAGJoepwOaBYHKZpBgP`yECKeCW``]CB`EESUw}wP`KDIMMCWSPSbr`ED{S?yqJObB_HWZXBwP`sCULMC_Z@IB[GRAOMOc@gocB{KSYCR`SAkFNAOOgma@OcBAJC_CH?jamFiPqC_W@NbmGhASJgfPucT`IEcQGvqGOdBmGgYsHOfaaFCQYCg_@aBM`IGOVpAGQ`aDoNeCgT`VbsGvAWKol`~Cm`KDST_|qLOeAqHc\`CwR@IDMM_ckH_vaQEsOqCo]@FbT`KFoX?qwRaADyOECw`p^cFHnA[L?k`|Cl`MDOTg|aKofA_IW[`GwR`YCwMcaSHovAWEyOiCw\PFBW`KFcWGqgS@WD_N_cCI?mAYFSPED?Y`JbXGVA_Hgh@rCa`OFWOGb@jogByKWX`NwSA@DqOSesI?ratFwQmDGQPSbhHRAcLWlpdC]`QGKWO}aJohBuJoZhOgS`RDIL_`sIOpaUGMQaDG[pOBuHzAcJWapqCr`SDcPGwaXOiBoHk]`MwT@eCeO_cxRGT@IDUMseCI_varE[PuDOTPPbUG^AgOOop{cU`SFoVWvpuD@`UEgUOqQLojByJ{ZXQAgojAoIWYXCGT`LDYMkd{IozA[FeRiDWOOmAIC[MKeKIoraWGEQWiCIp?b@FuPUD_T@QBSGRAoLolPfc[`WG[Wou@}cS`WD?U?zqUOkAsGo[HLAoOkBOH[_pHAdokBqJc[@PAjokBiHg]PNGU`dCiOSchQWU`^CYMWf@VGU`yE?LcgxTGU`KDSMgdsJOga`EmOqDg``bb{GeUQDg\@NBwHrAsM?l@eCY`[FwVovabDU`[ECQH@APdL`[EoV?rQKomA[I{]@JQuomCIKO^xCaoomBcHs]HOGV@_CSMSexUwV@VDCLGZ@Aa[OnBmH{]xNwVaCEINwaHWgV`\C_M_epUWV`ND[ModX[GVa?DsLgghTWG_nBQJCXXGGV`UDOLS`X[wV`aCgOCcPQgWAGEOO?b@YGW@QDMLC`h\gT@pCqNSfsK?dakF[Qgl{K?qAQGCQCh{K?~a|EwSKiSK?uauE_P{nKK?nANFMRSjkKOcapFaRCmKKOpagE{PSnkKOhaSFIRgl[KOxbDF_P?jSKOlayEcQ{osKOtamF}S_hcKP@a^EYQWjCKO|aOGGPkk{K_{aHGCPgkSK_lAzEaQwo{\P`bmGWTeEOS@XbtHoVMEOZ`Tc?IMSiEOY@Pb[GeVyEOT@HbfHqV?pcK`BaZE_QSikKp@AYEQQKi[KovaoFuSWhsKo}AKGEPcksKodAtFeR[mSKo{BEFUOgjxcgX`TCmMKg@YREowAqJcYXJRAorBKIOZXCb?OsBgKO\`AQmeT`gDCQGyA]DnK\BOM?jp~DCI]XME_R@[BvHgVYE_Vp^BTHWWKrSL@BA\EUQOiSL?qaaEsPOnKL?|AIGAPolCLOualFySShHhgY`cDKM?aH^GY`]D}LOdX`BKotAUJG]PLayOtAcH_[HNquEN`iF{Pp@aODccOHoXxGaiOtBaKC\xAqmEW`kDWQoxa^DmKRBWO?aqAc^JFBWKOhPkcWJtBWHwlp{CtJjBWO_g@eC`ImYqEoYPSb{IESkscL_zbAFSOsk@dGZ@\DwL[dP_RMOvBMI[ZxDq~ovBkK_\hBaleP`mGCRGraSDUL\B[Hgl`yCrJoZIEw^PFcGG{UEEwV@]bUHQWGr[LotAkFqSGhhiGZ`WCcMGfhZRGOwB?K?Z@KBCE_`oGSRoqaRdPLTB_IwdPqCzJSWiF?R`YBuHcV[u[@_oa`EILsap]w[@qEMMc`xVbJOwB{Gs_xFQqex`oEoTO}a_dOLNBcHGmP{cxJqZeFGWpLBaIMVWqsMOlatGOOoiPhw|aoEkQSjhkw[`REKL{f@RrTOxBUGo]`Cqve_`qGKS_zQLEBKTBcMWdpfCmJO[UFOYPCbqGcUgrSM_marGKOgiHgw\`?CGIK\xERCEM`sC{VW~Q_DzL~BgKOepodEJmXUFOT``b_HmT?tKM_zaRE]QskhqG\A?DULOcXVbZFN`uFGQOqQTdbMFBkL_bpxcPJ[XyFWWPKbbIIVSq{MofA|FuR{nPoG\`VEOLkepQrUozB?JW_XAqjdbLDBkNoj@hcaJ?ZCx[MpAafFUQ?oHarhO{AwJO_`AQiedMzD_WwvaYDILVBoNgi`hCcIqZ_xkN?eb?F}Ronpng]A@DAN?b``rEfU`wE[RoxQaDrKdBoLObPwcSJ_X}F_\`IbLHWUGwKNOibDEyRShHjbrO|AAEWRwxA`dMJgXEFg]@IBIHSUOw{NOdAyFsRwn`nW]`{D[L_cHVBXFI`yGGT?yQNeCK_\UFgUPWcFGYTOt@uw]`nC_NWb@ZBLo}CKIW\pFbBEHMnBwNOjPgcgIsZOyCN_naqGCOwj@hBko}AWJ{_@NQ}e{`{F?Po|QJdjKxBwM_e@gChJM[QFoXPMBfICVCq`yw^@PEALoeXRBUFg`}F{TwtqRd^Lm[eFw[PGbKH_UWwp|G^`QEGLcePRbWFc`}CkVo~A\e?LtB{JomAAcNIeYCzcNouaIFoPWlHfW^aGDCMgbh`REFS`}EORgxa_dqKe]qG?Y@OBgIOV_r@{G_AFDIMobX_bFfPa?EwPW|qIdMJYXeG?S@]B}HsV{vX~g_@tCkKkdxWR`Fta?FcTGtQRDZLi[yG?T@`BYHaSstxxw_@YDmOCa@TbRFYaACcWH?Q_e@MA_EGGUpKB}GyVStXqg_`RD}KkapWBQfiaAGKTgyAFdyK}^]GGWpFBkHuT[v@xg_`jCwLSePWrEg?aAFkSo|qWDJKc\mC?OOj@rDcLgaxHqvE}MjCGKGaPtCyIcZG{SO_~AbFoQ{hxcRmpABcJKZHHave|Mk_qGOR``cDIOWKwy@w`@_CeNobX\bVFLaCD[VWrAId\LO]eGOZ@LbVHaU_q@}xAajFKP?ax]RLfwaEDGVOqQHdZLE]mGWa@VBbGWV{rP|cGpBB}I_]XJaeeTMrCKHWpQ@dFKC[`?kOoua^EeR_kHbb|PBA{HO^XEa{EhM`CKMGkPlcdJYZ{yyBW``cC_MkfHTbZFgaGGOT_xACd|Ky^TAkP?zauEyQOlXmbggIaGEcRGuAYDfKW^yG_RpcCFIGWWwq?wa@UDyKga`UbOfoaGEGPwyQ]DWLm]\BsP?maQFsPomHkBfPCC?I[]pJAeERMtCSNghPyclIQXWzsPOtA_EaR[k`ab}pDAwHW_@EQyEiMUaMGgRP`CAIKWOwiAGa`fCUMwg@TBXf`OzCSOGiPrcIJwY?}YDwa`WDwL?aPVBRfnaIFWUwvAPdkLq\H@sP_vA]EkRWkpaR~gnaGCWI_o@fCPI}YO|sP_sALFYR{iXlBqgXaKD?WxAAaeDMG_IGo]PObsHUSwq`wGb@tDgL{cPYR]FROVCWOwi`pCJK?Xo}IDgb@YCiNcc@[bUFNPJC[Jwdp~c^JmY{xIIGb`dCWN?fpSRYfcOvC[Ook@qcLJuXc}aCgb`KEKOOgXaB`GCaMFOUgvaOdiLu\P@{PowAYEcRSkhbr}GhaMFgS_{QTDOKo\qGwSP[bLGoTwspzCYpGBoJ_[@IAwF?Mo_eH?UPGb|G{VKthrCQPGAiJwXxDqkeaNYbQHOp@kCEICW[wY@gcAAD]MC`p^bNFqOhC_N_g`xChISX[zyNGc@eCSM{fhTRWfbOxC_LwfPiCrJCWk~IJG??E?M?a?IQW@HH_EcdHS@CchIQV?THIQseO??KXLHK@scxHaQCgHWR?e`MA]D@HSSOh@RAgDSIwUCchIaqDgJWV?m`]A}E@HST_o`aBEEOKoXosHIbIEcLOYou`mB]F@HS[Ox@rBgFSMo\o{HIbqFgNW^?}`}B}G@HS_P@ABCGGSOo`pCHIcQGkP_bPFANC_IpH[a`GaQCeHOQgd`JaWQVACRGe`La[CyHwRwg@YhJcSICSOgpQAdDMI_VaQxSaiDUIsTojpWHJdaJGUWl@ZAvDoSTH[a`RAxDsJkVgn`^b?QVKCWOopaBEEMK`H[qPdBJEWKsXorpgHKeaLGYWt@ibUEmL_tyRHkbYEuLoZgv`nb_QXMC[OwpqBdFKM[\@@CeRhFSMk\gz`vboQXCW]G{pyBtFkN[^ARGNBxFsNk^_~P~B~G?YLHc{a?cAGEOO_h@aBcGQXOc`PAqECLG[O{aARYGcQGePOahDaKCnQZPcbPEqMC\G{P{cARYOcaHEQOchHaRcgIIcuaxIQTCjHWQsdpKCespHcRKe`LQZCvHocufHMa\c{HyRwfxOCet@ICSKg`PabdGQZSchPQqeDLI]T@HtSQhDRIgTSipTquHMiqTgjXVAmd^J?cyEGKaodaJGUSkpXqsHMi{UclPYqudmJ]V@Ht[QxDrJgVSmp\q~HMioVcnP]q}D|J}W@HtWr?eAKEWOoh`bBeGQ\WcpPbBEeMK]X@H|cRHERKgXSqpdrKE|Q^XcrPerME\K{X{s@wcfuJLAYGs`hRREfLOc}tHibTekLYYwtxkCfupLcZKuhlbZewQ^O?c`mR\EzLwZwvxoCfv@MC[Kw`pRbFFMOc}xHqbdfKMY[wxxsCgHhma\GyXtBifUMm\`IATZkfYMu\ozhvroF{Q`]C{PwrqFdNK][|@ycgOVNQ]k|`zRvFnN_dAG`{RxFrNg^S}x}CgVxNs^k~h~b~g?Q`@p?I?cAGDOK_\@ASKCgIOU_p@iBcFhP_O`DAQCsIGTOk`\BAPCghjoq`hBYFCMg]O}dFCAGSPGbPGaTCqIC^hPpQalDaJSVGnP_dFCyKSXgsPibXEyMCgtMPcbdFQMs]G|P{c@IMOS`HBQGcTGqPscHP_A?G?W@?A_E?Md@IKB@CbHEuOcghQQfEHMQ_dISL@HaYGCR?nxkRjFaPIdM@Wj`kc|JIXH@AMCjrGEgPklHhrVfvPsdTQSB`^blGGQCmXqBlGVQl?wSg~qZDQKy]lGIUWFaRDgM_aP`bVFxOudIA?cPzDFJ?Zk{iJcaIS_aGKZ`IqzegN{c\JkC_ebTGoTKqxtsIgiQweiAW_@|cMJ]ZOwPxcWh^_iE{_hNAleiNa_|JkDOsBLHcWOvxvsOh]_kDG\HDqcDaKw[lFiUgH?VBcMCbPRB[FDM{_PD{E?nbsHEVgp`ySMHY_qDkSw{abDoLi^hAq[dIiV_sGWUXNqef@NYaLLCEog@kCyP{jPgBmg^R|EsWPFQQCkIa[?xQLsqo[B{H[eX^BOgAOYeXRsF_rayFWO{l@jBghERD?oIgbQRDkKAXS}aIssO_BmIsaX[bGF`PweYC_IotaTF?WGuxzs\hi`KDwRW{AddbLq^TGYYwQ@PDQNKihpr~gIRXA[Hoi@rbqJKYW{YGcuHlbCJ_^HVBEgDOcexOCGp@A|GAUgq`rSMhn`MFcWGqazE]MgauD?\`EBVJyYczYLCwig`QEKQp@qSEYNubUE?^@\b^IAW{}YHcxoiAwGw[XKRbFWOoc@McJ_[AFEKNsa`jrXFXO[fUDgR@TBiH[Ys}A?sWHxS|A{Iwg`hCILw_DBq\wS`hDaKkc@WrJFcQIfTNCK?waXFiRwshrsIHu`gDKQ_xQ\DjN?c`NSAOX@kBiKK\pBAkg?POfqEWUP[bRHYWS{yBC~Ifb_I{^pPAfdwJ{\HBI^TFOtCOHoXxGaiGFPr?WHwlp{CtJi^HEY^t^oJ@mFsPwhaCC]I?TwkHzCHopBAICZhDa|fOPWgDTKM_|aoEkQSjhks`IATxBgO_gpvcXKOWwsYLcqIF`IBkK?la@cJImYHDIiW\`WEMLwe`QbTgPSJBsKoZ@NbcIEVOqIAsfo}BgH_Y?zASdfJW[O{QCCLO{AUJw^`Mr?EsLsbxPAng^@?B[Gk]xDQueXPGgHPCP_xaqEsQ[lp_r^FTSTCGOgiprCOJqWKrX}CwH~_yEOQ?ypuCxIkWKupyDEPDAyHG^PFAweoM[guGgY`OBPFWOOexXBDF|TLCKI_^p_BMGaT{s`zdFpyDGNCdPSBKF[S`C_HOpABDAKM[L?qTTGi]TL?cPGqQCdHKQ[d@IThLCAH_V{uHpRjGdQekLYCApVBXHyUSqQAC[HW_QK_Y`EqsefNmbhIkBP^blHAVKx@ucJhS_[IS^xLahE\NUcDIajTVOODgM_aP`bVFxOud`OYigGAPFkS[k@mrqgmQkj`V[Dp@b[HUV[t@~cbhYaYLSb@SrJfVOidmAW_@|cMJ][G{qKSoi^_gE{_hNAleiNa_}AgY@ecqKGZ{zyGSmiTSt@WIOyQcDaKEXoxYNSopqFAPgh`mCAGnR?eTQQrgJ`^FgQKnPbBsg[RAe}GWUpRdEJ_ZS~QDcpI]_uGWUXNqeenMA]tCYWwL@OCyP{jPgBmgBO}eQAWF?ubAHWTCqXjr_FIPmlqBG^`JcrJwYD?QBSrIhUb@sKwmaFccJOYoyIPcro^AiGsUgpQRE@KiX{}aIwL`vDYPKmPcBog{RRACFoYpIb_KCZ[|yMsuIq`CDwRW{AdexNicLL{GogahFeTSwx~sDHl`GCwT?xqrEeNE^pCQWWR`aDoNcj`bSAgQR\AWOOnPxC@JSXOxiFTVodBqKCXP\bNFSPYf@V{I?zAKEmQ{nhiRYFZPgdpUS??paUGMQ_rPwb|gtRckiN_mpnd@K]^LCq[tHOjAwGw[XKRbFWQ?fPSahWUAFEKNsa`kbkgMRjAsH_i`tCmLY^@EA\dtOmAmIGYPAb]G@O{fLNa{GV`hDaKkc@dbqF{QIfaE?[PKbtH{YSxyDC{I~UumeEGSpIBdHsUk{@~CcHy`iFSWWzaEDXO?a`N[Kok`kCAJcYXJRAffOWgDSytGZ`oD]Nwg`RrhGXRGftZYvGZAGCwK{`hGaiGFPqfyDwK?Z@NDmN_eh\RxFuPed@W{^PFcGG{UC|aCt?IyUpB_KGgPmcUJu\@Da^w[`zD_LWchVRXhASkmM??`@PbnGqW_pqLd@i~UxBgK?la@cJImYHCAISwiCSOiEF_U@bb]HgSgtYCTBJl`yEWRwupqDBJgXD@Yotko}BgH_Y@IQrfCOsgQB_Noda}FwRko@mc^IAUJC?LoapzcTJYXdCaaG\@rDcLgcxZb^FTSSliGO`PTbeG_VcrX}COIObGH?\XMQjEuNOa@PcP?maQFsPomHkBfHmSXCSLOg@gcvJGWg~iSTePEAgK?XpCQndwLG]xXsPo|AcFaQgi@eBmPGASKO_pObBfBOKg|^{APCbHGQScpHqSChVWL?gRP?aWD~La\XCiSwDAmEqRskhccCGwQgmQ@_q@iCZJQY[}yMcjIY_YJ{\hGQxfGMs`\IYkT^I~_[IS^xLahE\NUcDISBpYBgGcWWrxjb{gZQn?kQG|abd_Lu]TDqUTcoQCELodX\rSF}QMdiAORPNBTGoTKqxtsIhZWV@KO?}qFDnMC]XEIVtgOSB]OSf`UrTFpO]eAAOY@ecqKGZ{zx~COh]_aDG\HQApE[MUa@FiVwxA@FAPgh`mCAGnR?i|bcE?P@CA}NOcXUA|EKNQ`pJsEOlafIKV?uh}cJHfWz@gG?``Xc~IY[C|iGtRJvWyqMI?fQNdYL?ZsziFsqJPWGo}B_ZP`CkH]TCw@qcZkLW^A?NodqXd{LA_H@iXdnO]BMJg`xYBUFPQKe\UkFoiaLHKWCqh|CThh`?F[ThCqxEOLE]DFcGOtaTF?WGuxzs\hJU{nAC_V`LboIISkvH|S`hjSLAKIGiPxdMIi[[~yActit`GCwT?xqrEeNEaHIQZgQ`aDoNcbhVBEgDOcehTcH`@A|GAUgq`rSMho`MFcWGqazE]MgatWzEWS@uCWIoYw{a}ehMubPMJIgS`bCkO[d@eb|gtRd@ODOL?}AzE}SCpx{sRHv`UDoPowqWfEMoc@MqeWUAFEKNsa`kbkgMRqiQDgR@TBiH[XKthlBwGoTwkTcKJ_jaaEcOgva?SNHs_?EcUGqqOEUNGcTNAeUOooBaHc]hNbQfNOgkHYbKuYPRCgMSfPYroFiQOfhSi{e@kM_sFSWWzaEDXNk_@DA]tIJTXtBKJGmPhclKI]\@a]eXOqB_I{^pPAffQOqfuEga@MBNHCTP?yMS}jAWaqmCgL_favFoRSmh{cXh~WAoIEw^PFcGG{UC|aCs|KY`oECSGvQJDzJ{\@Da_TwoxBuJ?YpHQmerLgcHPIlg\ACDEM{bHaBFGOPkmx_JJw\`_DkOK`XTrPGhRCg\UJBWkBFE{ROhPireGPSGgTPKMOrA^FGSKm`cSDhqSKheFg\@KBOHQU[waEdBjh`}CkVo~A\dwK?ZhFqlTxkk`wEwPW|qIccJYXdCaaW_`rDcLgcxZb^FTS^CGOgiprCOGmVcrX}CTHP_OEOQ?yq[dULk]`PbAuEpFAyHG^PFAweoM[gtgkJ?tA_EaR[k`ab}iMYZCWI_o@fCPI}YO|qcTXk_XTFgS_{QTDOKo[ozabdGIdUYsQH?Q`aCEICW[wY@dDiPTalE@WD?O_l@cB{GQRCohpR}gXPcI?T`DQSdDJIUsri?SIhHaKBOJ?X@EA{F_QCfHzTemxicBoK?Y@[BLHiSCpHoSEgxdRTW??F@kBcV`rCkH]REeTLi\DGo\@?BPIaVcnhiRegPPqptdKE_SAoFGPpDHeRafp^RAuMkaX^?{CONo`hxR{gdQYsdkJYWmr~") pelkh856 = Graph(r":~?LW_@???K??@O??F???G@G?O?_??W?{??CO?_@?A??@g?o@_B?E?K?W?o@_A?a?G?_@_C?I?Y?S?g@OA_D?I?S?g@?G_F?M?WFw@oB?N?M?[?w@_G?l?Q?_A_KOC_H?Q?c@GAOC?O@WCC@WAoD_J?U?k@WAoD?OA?DKA?C_V`xBqF_Ng]O{_YBqFcNG]O{_K?u?s@gBOE_L?Y?s@_C?V_M@Q?wOWB_f_N?]?{@wB`C_N?]@sBgFOM_\?wGsBgF?}_\?o@oTgF@C_\?}@{BwF`^_^?}@{BwFoN?d?}@{CGG@__`@?LSCGGOO_`@?G[CGG?g__@kDGI_Z_}AYDEAGPOqOPBN?gAGVGG`X_b@EAKCOzoPAV@CL[CWG_XCJ?oAOZWHOQA|@GKKCgH@w_d@GNsCgHOQ?yACD_MO\`IAn@MAWcGH`Y_eGMAWWOxOR_eEmA[Cowa[_eFAA[CoVOSBl@OOKD?loSCj@ONSD@FOSBP@OHGRgI?W_gFAA_FoP?q@oB{HwdGIaE_j@SRSDOmoJ?iEwTCDPDoTCH@SMcDPQoTCP@UAkE?p@dBKGYB?Zo|an_oH]B?YWKAFDF@_PcE?|A?_oDcM[E@VoWBP@cN_jPYavDp@cOcEOyOXDJ?gBGegK`m_qGmBGVWK_]AIHYBGjwK`\_sF}BOZ?wOYA}KUBOagLAoDx@gNGhpdbK_sFUBOewLAf_sESQWhwL?cC\@gOOc`RoZAIEOS_sGLamDz?kBWU`SBG_uEmBWf@NA^D@@kNOc@eOZCF@kMSEpGOZBCHABWL@QO[Cr@oSGrWM@_EF@oOkF@Fb^_wFCNG]pUO[DeJyB_YgMAO_wASOgtgM?\BOFiB_]PAat_yBsJgiWE?\Bl@sPovGM`ZEN@sQOiPTAuE\@sIWXOsO\CAMmBgP`Io\DgJmBgY?uO]BYN]Bo]GN@]EKMM@gF`JB@_{Fw[cF`Way_{E{PgcpMb\_{IWYcF_f`|_{AwIojpnO]BmM]BwcPoO^CoL[^[Fom@`EH@{UOnwN`DBmIsUsForbp_}IGY[FopaACOMeBw\pvo^AeF[QSGOp@dBKGWXkGPVbu_WACSWowOaHCmM[\gzwOaKGXACO?~gO`hD|ACUO{wO`rBqHsZ{GPBaeENACMWi@ncL`CE[VCG`KBe`CDoX{G_paACONqCOg`cbKF`AGQH@wP@vEuPACOk`wBr`CE?YKG_fAqFePeCO]pKcF`EFKZwzGP`pBqFkT_uaFobDAKICWY`[b?EUOMCWPOqArFoPqCWePtObC]MK`CGpAb~`EE?PgfpgobBKFCUO{wPaZE?Kg\CH@?bIFzAOJWtATocDgN[b{H@Ibc`GFWZhCwQ@gDtAOQOiPTAuELAOHwoGQAeEMMqC_ROla^FEN}C_S`FCE`IJCWGz`ybxG|ASN?vAGodAqDwXpHwQaeENASLwbPHa\GSRYCgWOuazHH?kCg^`SBy`IHW\[HP?avD}RsfsHPAAvFvAWROyWRACFuP]CoVPhck`KGk_`AQEcMH`AWLonwR@{DYJSUw{QMoeDIKOgKH_b@sF?PQCoOOta{EnAWDG`qOdL`KGO^XNgRACFvA[H_W@NbP`MGGPp@gRaOGURShsHpVBsGsSyCwU`hBTEkL_d@RgR`qEqPSfHRgRaBGASchsHpQBDI?SyCwf@NA^D?MShsHota{FiOccSHota{`OI[X@OgS@kB_JsjKI?nbOHTA_Mgv`obaFWPID?^q?DD_SA_U?{aLogBsGg_hKwS@OBWH[]PHwE?gCuMaD?h`bb`I`A_RWipsOiBCESKo``kco`SIK`XDGTAVDwPuDOWPVc@HGUADOb@ack`SFKYOtPjBWIBAgLGxQaDEI]TADO_@yDV`?AgXGrPfBNE_LCYOspiBt`SGoWhJAlo_@SC?P_pPockI`AkQgmALojCcIcTOlaBcQ`UJO^`JqqDe`UDkZXKwTa@FeTeDWPOq@gFKSUDW\`fblICUMDWb`cbKF_QglcAOT``JHAkMorqEdAJV?kD_g`SCEG^AoUOq`}d]`WEKOOa@zdT`WDoZhKWU@fCeMOgxSGU@vBsLOfh\wUAPEKQGdhSQuoK@WH_VPFGUAkD[NwjcJ?b`LBMMOg{J?rbcHIS]DgZpEaRCyKOd@XwUaUD}PiDghaACHGYOwakJPWbzIzAsNo`pwdLIsTmDgZPsdHJEV}@OJO{BRI?VUDgLPEBDHXAsKwxACdF`YBWJod@Zb_HjAsMorq@DA`YDwYgw@yct`[FSYHNqzOmCSKGdXZgVAZDqK?XX?qNomA}L[ZPMahEJ`[I[`@CwVAoF}UIDo^p{CyIeTmDoZ?wBiIOVyDogPvCDG`AwNwf@OBwHATMDw_pzDWKpA{LWaPrblF]SknkJoxBLGoR_fpXQyOnAsL{epagV`EC_KKcxYgVa[C{H{S?naNOnDGOoaKJo|A`GIP?psJwV`uE]OwgSJpVB}IKTGj`[WD_nBGIw^pSamEC`_Iw^g~amOoAqJK_@Oqoeb`_GS]PTBJooBSM_fHQa}OoB?Lw[Gw`uCqKRB?MG]O|akE_Rkm[K@FbGHQUaE?eP]cUHAQKdsK?nB_HiSYE?cpOcDG`B?NwtP{DRJVB?GogPTAvGIPAEGZ`pbjIWWMEG\@fC{JdBCPWpqRDh`aDsZ`LBCOpCsIsVXGBGer`aIS`PDqKcdL`BCN_jPYavFsT{sSKPAB@F[NS^HTbIopCsJkXXGAfdo`aHgVXGAveXLzBCROmqODEJL@WAwKOY`SChBKKOXOrAEFGRkq[KpEBvG_WEEWjqBDSJoVkqHhgXabESNsdHlgX`hEyPWcHGqVDk`eG?WpWRBEL`eH[Y`QbVOrBeJgePfwXa?CgKWXXWREorCCGg]HBaGeB`eC_U?uq_d{`eG?VGpaoeL`gFGV?tq\DQK|BOR_f`Na_E]S_tcL@@bHEWN?kPbBaOsAsMWfxegYAOFePKo@`RBEN`gDcLWuqNdBJZBOTp@qhdv`gEKR_h@}CjH{ZUE_dPebbIQTCppjwY@LAuGc[w~qfdULXBOM_nQWdOKKXuEgWPDbqG]QOnsLPQc?HCQsiHnBeotB[Lw[Gw`uC[J\BSJgyA]eXKwZMEge`gDFLVBSM_]`]cpKzBSO_qAnEJMPBSN_jPYavGITSmsLOy@{DyQCdhKRMotBgGcVhKRMouBSFgZ`FQrouC]KC\o|P{cSJ~BWUX@ADCUImVUEoW@td@KlBWMG]O|akDuR?s@vwZADEMU?q@cbWfB`kIC^PJB[FR`kHcXpPAbDNI_YuEoQp@bRHcZ[wsL`XcIImVUEo[@HArGSQCix\WZ`bCCG_WhVrDF@`mF[V`LBAEfLOYcz[LpPC@HKZkyCLod`[CMMSaxNBKOvBMLcc@YgZaqGUTWkX\BqovCoLGYgt`kDKLTB[QG|AJcXHIVuEwV@TBdFWRog`eGZ`[COMScXJq]EWN@B[J_WPqc{KpB_So~qTEyMdB_NooaVdcJKWcwkM?vaLCeHs^@Ca}OwA{MggPdrtFp`oCWUHAAkdrNDB_QosQaeZLGZGucM?{AxE?Kk_XKrPfY`oEsZPDaLdgLRB_G_kqDDVJjB_LguaLcdJOWWsxxG[@lEsNcbXYBREs`qHkYXQrWOxD_OO`HBQFDWJc]MFGPOq@tD}RWsPuG[`^FQP_f@NaqeTNhBcSw}qRexLyZwvxsW[aICwNCaHGb@oxBWF?[@Fasfy`qF{W`MQmEGMC\YFGXOubWEsP_bXRQsOxAqGgTG{QGdzKFBcGORonbvIWYC~cM`BasGWSsjPUq{fh`sE_ZxEatdoJaWw~kM_laHFMMs\xOBIFr`sGCWXVRBfF`sHGTGi`ZB}HOZ[xsM`FBuGiWH?[Ao\@uDOJwehgRdf[`sFcOoh@}CjLi]EFOS?wATEYSct{M`CATEYSctxyw\@MC]JghX\bwgV`sHSXgwqQDHL][qFgW_q`eCKNCghfR{O|C?M?dP\cBo|BQKO[OzaXejLe]}FgdqACHGYOwgPZbko|BeNkbXeRMErOd?kFgb@SBhIqZow`qw]anEeMKaPariGT`yIKVxJqqDeJ{]aFWNO^FINC]K{hxbrfgNQ]l?CNO~AFEqQcmy@SEGX`yEcW?pAEcrLU]}FogP[D\Jy]K|SN_w`xBuIo^`EbKGR`{E?]XQRAEfLOYc~SN`BaNFKSsjPUr\fA_WBwOguqSDsMS_`@cN_tBHEWN?ehibyG\`{JKXxDRDFP`{EoQGy`vdWLo[\BcNpVBMG]VgpHrsKOI@}H?\XTQ|EyMK[cxcNpQAzI{Vgn`xw^`YEAMw]g}QbdyLE^eFwf@NA^D?OgfhYA|F]PLB{LWpqWdyKuYOuPlBug]`}GKZ`GaUdPJeVh@SNoxBJFsPof@dsGo~AIFGPgjP|C[Km`EFw[`|C[H[V_qyCW_AWGOP_f@NaqdfMwaaG?Xp`CuLY^LB{O@GbiI[T_kpcb[FFMVC?J_}Ade_NzC?Mw~qNEUMi`XAyESVP?DcLCaHcBHEpM\C?KW_`CBYHMVT?[O@PAxE?Kk_XVA~fha?JSXo{AQD\Ks_eG?YPTAkEGRKrXirvp?AAJOY@DAPeGM_\TBCOPFBgImZcvhnb^f@PxCCOGv`obaFWQomQ@g_`uG?PsqiCCUp@AuNGg`PafdOLC^mGGY@cCoL_^?}h|bzg_aAHGTGi`ZA|J?WK{kOPIcDIAUczYIwD`@AKEKU_sAIEGKu\@A{OPKb?GMS?lPnreFWaCEoM?paYEnNc`hF{O`RayI}WG{`yruG?aCF{ZhHa{gCaCD{Yg|qeE`L{^[~cO`WBSGmPcch`rhhDaCDcPOxA`dULm[LFSO`LcEHwUkm@[RFF^PNCGMgq`}c_Kg_xECO`OAsE_Lwa`YrCFOaCD{K_|qJDKLA\s~cOpAB^HUV_nXcRRGHaEHg``MQ^dkMk\hCkOo}AlDiJ[XhCrEfQQNCKJg|acE^N}_D?QAsePBA_ISVpEQPDaKA]IGW\@~C^JEXL@yJw`aHCUM[\gzqheuMIbyGWZ``bVHsTGtp{SOpBAeDSKoYa?cRJc\xFSOpGbiGET_v@prmpBBGE{N_hPZA}JCWC{SP?xAkFsPojP]bJepObCON@?QJC`HEQwrQDCXpCDaLGYgt`kCOKW[tG[P?ubDHcYo|qEwa@]FgSgrp~cepCCkOkfXZRjf\N?]DDKP@RA{JAW?oh`bFfeQjCOLwbPHa\FITOuhqC]pCB{LcdH\rLfJOI_aGwW_q`eCKNgiXic@hTaMG?Xotq\DQLu^tDKPoxb@F[NS^HWatFMPzC[LHAaTeCLMY_tHps`pFCWJkh@\BxgraMI{Z`Nq}fTOk`\BIEwa`FBGH[WxCrKFhPEeaGwgptc^IcWgzaRWbabFUP{exUqrEIMw]DGARWbaBEeOGePYqwEvNA^lCkQ@DAwIGSWhxSAxfmP\C_Mg{qoDgMYapFIVgc@^FwT[rXhBXEsOIdmH?^pfcoJEZg~qIGc@kB_O[d`grcG~QDC_RWqPeBoGgX[{qXwcAfFKPspHtrmf_NAd@LsQ?oabFUP{pPvCepGBoNWjpYRhgwaOJ?ZXOQpd{K_XpAaFwcAWEOPSjPcrcfgPkeQHGd``cNKi]O|XzC?HbaQE{PgcpMa}IMVG}QKgc`}EYRCvHnR^E~NwaiHGV`~DTL__PJcQOucKHCQsiHgb`hEaQF_XOwPzD]JQWSyY?C[PHCQIW[wzPvc[KO\|HYYwcapE}RsoYBcMGcQ?fQHG]@BbuH[RcjpYRhfvPoeaHGZ`ScJHSY?wPtCaIBaQF_]pVaseqMeb`N[Q_yBsH]UOkpXrggzSDCgSgxQLeOKcZCzAScuOKASDs_HURUfIOO_pJSQ_}AlDiJ[ZHOa~gRO{f]HO`@hBTEkL_eXmB|GeaSGkV`PQyfsPgbTEqWGd@XCsKSaPOrJFbRBCgI_]pDbHEgPgsXxSLpIAuFo^xTbUFjOScxIsQ_vAEGCOkdPgBWfAMWcPMCQ`@AGC]JgexQqzFcNaauHWYq@CCGQOs`pIROf@QMguHWf@NA^D?KO_PCBIFdRLCkJO]`|cAIgY|?qUSnpJDGMc_PDaOcbH[W[zYRCtPJD[M?_PMr@GOPAdtMsQoxBpGCUClX[AweMM_bxOCQpGA~GCSgnH{ByfuNma}@GQp@aLEeMCePXRZfzOYaUHW_pZBHEeRGiHlr|gUPIfiH_k`nB`FCMog@_SHGYRpCWH_g`sCYKY\d@iRciHnaWF[[W{amdkMg`TFQ^ge@[CMO?hhUalemOMdaH_cP]dHJoVkqHhbvgoaWH_X?~QIccJIW{qXyCEhcaWEKOOa@gCtLk^`CydWe@fGIQ_rxpCaiNaWGsR?qAIc}JEXK|@{CqOIAWCwPwmadduNaatEcR@KBGGiUOqXyCqPLCcIcTOl`tC_KW\xIIYWeaTECP[bHHRLFfRIiA@OROsCGHKXwwpqReHGSVCsMo}AndlM]b\OIcGeaMDqK?XX?qeDvNYbEHgl@lC{K?WSopbsGg\RjCsKG_PgccHgZS~IQdJOIAYDk^xTbGekMm^|@QTc}pMCILOepLr]F~OA_H@YItLPMDeLsb@Lq[C}JIVx@yGCxpMC]JgcPQqzEPMK^C}iJWf@_ESNsexUBTgHQmiqHoePbCPHmXcr`krpHaTBCwSGxANCvKU\hHyZWf@iGKQ[exfRah@QQdLPsR_w`xBuIo]xLqmDmMcbpN{S?p@dBKGW_hVBYgMRAjAI?[pcDWK?WSopbr}HCRTD?LH?AGdvM}]hFY[dLi[a_I{\@LaugCPgbTEqWDPpOC?Jsb@MA^DdLW\LIQbWgAKE_PwrpxBtfkO?`xTsS@Pb]FAMG\`QrLFBPKgAI?cpJblFcQ[p`hRxHYRlDCJ?^`[C{LU[xHa`tHPPAoIWZXRBKe[Le[\Ci_gg`WBsHW]XHbDfrQqd|Mymwg`WA{O[jxnBigUOm`dKqlgg`WBoKcX_{AjD}Nyc\LcSOk@lFwP[bHHQzF[P{hQIGU?vaLCeHsXxGBMfhPAiiIGkPrCsJ[_LDyQdQPPDaMWe`ZbtgBP]iQIGi@WbaFKROlp]C@gnS_iQIOY@|cNJg\hDaMSnITacJO\HKQtGHP[ftSQhTRj?acHGTGi`ZB_IMX_wiIC~PQAuOO`HBQFD]Lu_|KylGhAMEePoo`hrSEhNC`|TKS_zBCIiVs~y?S@GJQCe}IOdPwcaHYTCpP{SlhwTxDGOGnphCdHySOo@ibhHOS^DGLOc`kC@GeVGpxhRdF]PshaIO[pNAtE}MovP|CfhoTQkUIWaPWBfFYM{ePXsBgpTAkQIWepzChK_XGuHzsjHrTrDKPOrQJC`HEQws@yCMikaeD{``WR[GQOoeTQYhdXPRBWF?^pCAyfXPmb|RSSo~a}FERkthtCIhPS[k}IW[OybBEQMCi`^rQfwQOeuIWWPRb^HGSgqppCdH~aeFSWXTA~esNoc`LkT@Qb\IQX[wIIS|iBSKgaI_\@BbEIYTgjX^B|hBRUlYGgT?m`cGKTsvQCCPhgTnDOO_ma_EZLGZGu`sCeiHU\DON_jPYavFGRSlA@cXi^ULDOLoq`}cTJe\lFieWiAYFmQ_pH{ByfuNmdTManWi@tEENci`^ruFwQOeuI_ZpDbSGsRwgXgrqgZTVDOPWtALCyLE]TBAEtTjFaiG{YOtPjBWG}YGshxsLIlVDCWIg`P]C~LIZ?xyBSfHSSWkiIgWADdaLIZcvhnb^gPRGjE@OTPObXIOXSshpbcfKPMgU@WTPKagFgQkp@hRdflQofpVSTPXbVFIRgiPYRQgIP_htWkTOw`xBuIoWhSr@edNqcTLquGS`TGqSOghPqcDHISSkh`SB_PTCmKC]PHq[EKNc_@JQ\gb@TBSOCaX[bnF~Psh`[cTOtB@GAPKkp[bSfHM{bhRCT_zbFIqWG~qOSchRRQlmIoWp@AGDuSGtxrSfiJUXDWUOyqXdjJ_VCpq@SUi_UBDWJ`AaVdcJKZ\AaWdXpUCoKC\o|P{ciKM]xIy\T^PUCaKwbXMROfUNKa@QIjtmpUDCLoghdBcF\NSalOIvDwPUBMNgaP]Rjf\N?]DFaddtPUDCLo^H@AaeSM?[_|YIt?pUBIFSWXTAwD~Noc`LiqDvpVCwHwRwg@{CkKY^PJa]T[PVBcKGix_R|HER_fDNQtwj`jF}POn@]rGeeMob`QyyWE@VD[Mge@ZBdGGOWbHRqowjacEsSOgpRqgERMCahOa|WjaBDqK?XX?q_emMaclPQrWjaOEaPsrxwsMGcQ?i`Z{TolCGGoU?o`lcHhbTikaIwUaCD_LIZGuqCshhbTinAIwU?lCGJ?ZGuqCspifTjD_JOX`YcGGkU?uqCspit_kDgJWV?m`]A}E?Ko``OAhRtDcKoapiCYHsYK{iEsUIj_UDsMGtprc]Jq[|DQVc{JCa{M?[xLQaFfPwghQYtWD`_EaWGzIKsZHXSCl@[sA?J@fBOEcLOYou`mB_HLF{YPaCrLUZw|PzsQHoSIlp_SD_p`kB{F{O?_P@aCCIQ}EOZ?}etLkZ[v@mb\e{LyZ|N[A_vCJHSY?tHnr`G~QGiTWCZaDciHmY?spocaIFU@@WLw[Ox@rBgFSMo\o{A^DWYQNW^p_bwIeY[zYFdYJ@aqEGOGnq\C|K]YgyQSDCIN_kEGOOa@DAJCWGwPwc@Ga\DnGw_pGr?EUMYdpLQxTuKBWTHC\PUBQEwMM^|@A\DGjI_kESNGdPJAVCoHcROepMAiIv@[QpKA}eMMG[XIQktpJc_WHWTgrAWD|MG^\IQktpKRaqH[X_{aReKKqYW}QUczJY_QHcYx@q_DiMo^\FIhtVJZcuHs\@\A|fxPAgdWyxTyoL?kFkQOgPPAbDGISSohpZCWdCLoghRq|EQKg[`DY_UAkJdCLodhOqaeSMOalNa_WEabFUP{o`abmHLR?ntaJGGJa_DGMG^`IrXEtP?cxRyuXNadD{UGoHwcJHSRwhXWR@gJ@EBwHwTgj`VaoDaJGUWlB_OKAoJC[pLAvFVOEaPDy[dQIfbCJOY?tqIEGM__@Uq{gOAwDsJkV_nP^A~EUM[\p?qEo_DqK?ZGu`lb[EyL{[?z@vb|`?JcZow`|BzFwNw^x?A?kXWtA?WOopaBDEKK[X?r@wF?OioeGgrameYOQ`dEiQszhyT}l``cBOOAHFGMS[oy@sbiFUMs`qnwOB@EiL_]G{`xbsFkN[^@mS|o_ByLW^H@AAcEGMO_`PAqEEO_mHw``FQ~FlPyf@SY{uFKe`QIk`xCAGcQGePOahHQfiGUf?sDHDaLCZGwPsbpFqOCmMQqYDHGaRCfHOQcdPIqUDPMUdx`[BOScoHaRGeXLAYcuIcpXbJFWScWHoRkf`NQ^d?IASGk`XUVohH]SWjXVAmd]I}U?kHWeMoHIY[@IiTcjhWQsdlJbAeHkb`cKckxYAsdiJUUolhZbFE[OZBGJ@[axdsJiVWmx]RBEPKqYYEP]BHERKgXSqpdrKEYLelpa[K`jDoJwVsnp^r?E@KCWKpxkWE_qKIW[p@aRDEJKWWsuHmUDOqGGVko`fRNE^L?YCsPgrSjy`cIkrXhBSEiLUYothjbVeoUN?gFXDr_fAME[OwhprcFKWGoawqVTcJqVenP]i|dzjxW}qAFWWbefMM]\?yHsbhfoOA`TcSB?\fIMg_L?a@SBGFOQ_h@aDwE_zHo\[z@uRlFZMw\wzxwC@OzMy]C|hzbvfpNc^K}`|cJGs`uGcyhxBuFtO[_|AACSHGROhBkXOwqqFwNq^g~X~B}f}OO_m@IEcLg\O{`|CAGSQGuQ?d|`kASMGkPmb`FQMs]G|P{cDJrDwCaSHGaTCqHsSGhPSalHQUUMOHHYaLEaOc`hCQIcXGyQChke_QCWK_^SdhKQYc|IASShHSUN?cGiGsYh`RCeLKaXSrHfROkaHxMSshiRUepLiZcvhyTKqDekAofagDUJXMY\CyhuRmf`NJBgfa]MkflNq^t?I@SCgPOihuGpNM?]hOyaTDIJSWgtPqbuGKPa][lNiaDGI\S{h|SAgTPica]``Ji]tGieTOidTQitUIlT\jHYItDijUUml`ZIutqJwVvLT?QmD[iyTujpVindvkZY`DcNhOtdJJUWktXqrtgJ[WhIkoivTnJ^V?mD[QwuCKVX@?t]I~D}j}V}o@_J?e@kDWL?_AwUBQf?UQmXfzSehlSYitZ~~~~~~~") dhar859nx = dhar859.networkx_graph() pelkh856nx = pelkh856.networkx_graph() # List of graphs to process graphs = [('dhar859 ', dhar859 ),('pelkh856 ', pelkh856 )] 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\n") 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 dhar859 :", nx.degree_histogram(dhar859nx)) print("Degree histogram pelkh856:", nx.degree_histogram(pelkh856nx)) print("\n Symmetry properties of the graph\n") 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") Adhar859 = dhar859.automorphism_group() print('dhar859 :', Adhar859.structure_description(), ' | center order:',Adhar859.center().order()) Apelkh856 = pelkh856.automorphism_group() print('pelkh856:', Apelkh856.structure_description(), ' | center order:',Apelkh856.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") ##