# SageMathCell online https://sagecell.sagemath.org/?q=bupxbm # ''' Main properties of the graph H4K3p | Ord.: 2778 / Size: 6945 / Diam.: 6 / Avg.dist: 5.19476 / 5-reg.? True / Girth: 3 Symmetry properties of the graph H4K3p | Aut.group.ord.: 1 / Cayley ? False --- vtx.trans. ? False -- edge.trans. ? False Degree histogram H4K3p : [0, 0, 0, 0, 0, 2778] Automorphism group structure C_n is the cyclic group of order n; x means direct product; : means semidirect product. DahrH4K3p : 1 | center order: 1 H4K3p distance distrib from vtx. 0: [1, 5, 20, 80, 320, 1136, 1216] Number of k-cycles for k=3 up to 4 H4K3p 24 & 0 ''' import networkx as nx H4K3p = Graph(r":~?jYii_???G?G?ETS_??@?@??oi`???A_A_@xTE???E?D_BQiS???M?H?FDSw?GPGP?KrGHo?OaWaGX_OQ_@@K`AOqG``?AAXaC@cHBE?ECaCWbCACK?KHEGrEHcGG?_DGD?BrIHo@?IWIGF_SQ_A`S`S?~Kaf?DAhag`}@DI?KFqCgBgq][?WNeHQFOC{g?wY?VeLQHOo@osGnCYaQ__B`g`]?tKdF?FBPa{`i@II?O@q@H?waeC?_BeAO@odKW@GX?VALrHHOAOqGmKZ_QR_C`c`[OvGc`?HBHaw@mHHE?SDqDHBwaMC?gJeIOFoc[W@W]GRcMQHoOAo{Wf?[aR`_E?W_UGL?hB?K?p_koYXQA?YFQCobkAYK?sMeHbFXcsG@oZ?UcL`HXoB_uGl?ZCQq_F@k`YGu?db?MBXaspkXJA?]DaDWbsAKK?{JEIrFhcWGA?DSCkBVI?oC?ag`WWmO@_G@TPQo|[aB?OBJAtpihGI?_FVCibdaW[@CAAA}@tdDWAGPOOmKUG?oCOgGjw^UPT_G`n`\WsCdT?PBtaOPvpN}?c@|@T?oqdK@GGmGSEIc?WAOVsTSNBGsoC_tOkKZyQ}_H@opNgygen?R?s___^xRu?eCUCIbDA?K@KJQIAF~c^WAWWGV}LhHJOCo~wec[CRj_I?T?QwLWgB?SA?aN`dX@U?gD@D]byQIc@OKCJ{EtcdwA_[KR{MgHjODOGGJsFQSS_I`?PFgqc_h?TAiAdpypCE?iEgD`b^aVk@SNwHjF@CyWAoFwDOBBIToD__Gb{XOOV_J@YpOO~ob|?UB]ayPgHIa?kFUCiBdqW[@[BUAA@}DNgAwOCPwKiGJODonoi_]EPj_J`dpYotOcD?VBsaOPvhNq?o@V@I?tQ_K@_HyGiE@cIWB?VoTQNBGtOE?vwm_YAQh_K@~`LOwGfP?X?__no\@P]?qC}CSB?qD[@cJSIAF~C^GBGXOUiLVH@OEOwWfo\QRT_L?^?TGKKhT?YA]AIP_XAi?sDVDIBtQGK@gKCJ}EtCdGBO]_QAM~H~OEoLOGGF{S{_L`NpDWoK`P?ZA_anp|@D]?uEhD`b^AV{@kMiHVFICowB_DWCiBSI?oF?dG_GX}O|_M@Y@OO~sb~?[BTaopnxJq?wFiC_bnA^k@sAAA{@tDDgBgQkOCK{G^OFOnwik]EPg_M`_`^gu_cj?\BiAT`qhKM?{@~@T_oqdC@wHSGAE^CNGBoSCTwNiGjOF_qglOYkQA_N@~PL?wGfT?^?s?__^hR}?}CgC@BNQF{@{IkITFiCOWBwZoVSL@HToFowWf{\URS_O?ZoTgMwgF?_AVaJPdp?M@?DnDUbzaG[A?LYJmEvc_WC?]wR]MlH`OGOJWJSECSv_O`J`D_q{_F?`AlalPwPF]@AEtD`BUqRKACMCHZFYczgCOF[CABYILoG_dga{XWOB_P@\pOG|gav?aB?au`mxIu@CFYCzb_Q]sAKAEAX@zDJwCWQoP[KlG@oGogWhc^kPn_P`eP]osKdj?bBzAOprHLi@G@m@U?zq_[AOGuGtE@CLwC_T_TmNAGyoH?rOnOYEQv_Q@uPMgwCfh?d?k?loWPRU@ICWCZb?aEkASJ[IkFvcOwCgWCUqLtHUOHO}_cK[sRX_R?\OOGLcgp?eALAL`_PBQ@KDBDLB|ALsAWLmJAEkCegCo]{R[MkH`OHoGWHgFgSm_R`EPE_oG`l?fAya_PzHDa@MEkDvbZaOKA[MCHWFZczwD?EsD]BkI@oI?ew_CWsOZ_S@\@OG|kat?gBZAo`jPHa@OFtC`beAZ[AcAsAu@`DLGDGRSOAKXGKOIOgWh_^iPl_S`jp\_uscB?hBla\@oHNU@S@s@?_uqbSAgHgG@ELcEgDOUsT]NkG`oI_r?nSYEQu_T@o`JOzWfX?j?`_e?]hQu@UCuC?bEABKAkIsIuF`C\GDWWCUuLsHVoIo|_es\]RA_U?Z?ToMsgF?kA@aEPepA}@WDBDLb|qLcAoKAJWEzCjgD_[GQqMsHuoJOJGJOECSu_U`?pBOrO`\?lAzA_Pz@De@YEZDzbOqUcAsNYHkFVCogDoFWCABWIKoJ__W`_XiOl_V@UPU_{Gbl?mBVAzPl`GE@[FvC`beqZCA{AEAZ@zdJGDwOKOuKvGUOJol_iw^YPB_V`l@WOtccv?nBkA\`oHN]@_@y@\_}Q_SB?HsGzE[c?gE?VgTuNxG`OK?vWncZsQB_W@}PNOzkeB?p?n?_o[hQY@aCzC\BMA?SBCI{IBFqcXgEGWKVIL]H\oKO{gdw[ER\_X?O_SwLsht?qA[AMPfX?I@cDADRbvQNSBGLMJ\E`CfwEO\sQCMfHqoKoKoH{EAS]_X`MPF?rg_D?rArAfpwHDy@eE^D_bXaS{BKMAHeFNc}WE_FkDsBwI@OL?bo_KXIOe_Y@V@OW}WbJ?sBMaoPkhIQ@gF^C`BhA[sBSAwAB@rDHWEgPoOEKeGQoLOnWjg^oPA_Y`h@ZwsGcz?tB_aXPrhNa@k@A@Q?vqf[BWGyGBEQCHwEoUSSyN@GmOL_oWmWYwQy_Z@}@NWzgeB?v?q_fOWHPq@mC^C@bHqCcB[ICIcFnc]wEwZgVoLzH@oLo{odo[ER^_[?]?VGNkgD?wA@AHpbhBi@oDADRBvaNCB_KEJcEmcmWF?[CRMM[H|oMOJgGKFGSf_[`?`C_p{`v?xAraf@wHDu@qExD|b]AO[BcM{HAFRCxGFOCGDKB]I[OM__OaWW{Ow_\@]@VG~kaD?yBMAoPkxIY@sFcCmb_qZsBkBMA[@_dFWFWOGPIK[G[oMojggK^GPf_\`h`ZosGcx?zB|a]@vHKE@w@x@[?}a_SBoHKG^E?cFgF_UOS{N@GnoN?sgloYCQ]_]@xpJwwKex?|?n__o[xQQ@yCdCMb?QBcBsICIdFmC]WFgXwUALcHQoNO~Ofc\oR@_^?O_SgLohr?}ARaF@_H@u@{D^D@bxqKcBwLoJyE{c_wFo[CRGM]H|ONoK_HwEAS^_^`H@BooC_~?~A{am@~PCI@}EBDrbVqVCB{MwHAFQcxwG?CCAC@BIgOO?G_C_AWT@__?POHOC{iJ@??b?QoHhSeA?@F?c_RahkCOIaHmE|cDWG_TSRKLvGGOP?jGeGZ}O^_a@VPLOvK_t@DAGAzPvHDQAICTDrblaIKCSGsJaF]CVgGgP{VOMrGloP_yGi{XsQV_b@tpS_rScb@EBlAg`fxHqAKF[DSbKARSC[KaGnF|CtgGwXWPINsHgoPor?a?^yR^_b`fpDO~Kep@GAxATplhBiAODuCnbWQF{C_JsHZEscKGH?VwQeLdGYoQOuO`S^]Rz_c`lPBw}Cfx@HB\aE`|@NIAQE{CGBxa]kCgH_JUFVC]GHORSUwM`G}oQ_fOlc\UPq_d@NpYWyObn@JBxAdPdxJeAUFsDNBGAV{CkNqIWETCkgHW^{SeKdHYOR?kWfcYkOn_e@XpMGtg`T@KAta\PiPAUAWDnC}bVaCCCsNEIyEIcjgHg]STaKYHSORO|?j[W_Qd_e`z`V_p{dF@MBPaM`yhMuA[EcCWBuq\SCwLSGtFhCxGHoYsP}N[HpoRoc?nk[mPk_f`HP]Gx_bR@NATA|@qPEYA]CnD~BfQK[D?GIJyFVcTWI?TOQoL[GAoS?sw_g^{Rv_g@|`TWo{dL@PAIAuprpCUAaDCC|bZaAcDCLgGgFfCxWIG]OSUK{HYoS_cwkg\{Ps_h@\PLWso`N@QBBaMP|hLUAcFSDKbFaOsDKHkJjFFcXGIWUSQOL}GZOSoq_`k]yRF_h`p`VGqscj@SAGav`rXCUAgDOCmBUA?kDOKeG]FlCpwI_\GS}KZHBOTO_gnS\IPO_i`P@MwuW_b@TBBaL`{`LIAiFEDYBHqQ[DWHqJ`FFcZgIoVcRELKGUoT_vOaG][Rk_j@}pS?o{dZ@VAUaq`uHFmAmDlCcB[aFKD[L[GIFwC}WIw]{SUKrH[OU?d?kg\uPp_k@V@I?tO_J@WBXaHpxpMmAoFED^bGaRsDcHeJcFFcYwJGSOR}LaGNOUOtG_g^qRo_k`vpQOpOcL@YAAa~ps@D}AsDpCrbRADCDgKyGPFiCpwJO]cSUKxHXoUobolC[gPD_l`YPH?vg`f@ZBBaN@{XLqAuFoDRBBqT[DoHwJmFFcWWJ_T_QgLOGAoV?owbK^SRZ_m@w`PWrWd|@\APAq`u`FyAyDCCxbYaB[DsKsGSFhcpwJg^sTYKNHOOV_bWlO[aPD_n@^PLwso`D@]BOAA`}xNyA{FEDXBIARCD{GIJoFTCUgJwUCQOLuG]OVovgas][Ra_n`uPQ_pCcL@_AFatPvPE}B?DkCqBYA@{E?L{GDFkcvgK?\sTkKIH]oWOfokS[qP[_o`VpMos_`|@`BFADp~XM}BAFkDRbIQPkEGGyJuFDC^GKOV{QGLXGMoW_t_aW^URM_p@rPQwrkd^@bAUAx`tHC}BEDKCjB]QDcEKKwGsFcc~wKW^oSKKWHNoX?e_kS[kPR_q@Y@K?uo_^@cBHAN`xHNYBGFLDLBKQTKESG]JYFWCYgKgTKR{LGGYOXOtWaK^WRM_q`|pOop[cd@eASawpt`C}BKDvCaBTQASEWK[GWFxCyGKo\?TyKIHZOXoaOno[SPu_r`R@JOvC`R@fBZa@PyxLABMFiDObJAPkE_GoJxFDC[wL?UORWL_GFoY?po`G^iRe_s@{POopscr@hARAz@sXC}BQDZC|BQAEKEcL_GDFnCuWLG[sSaKsHQOY_`wl?\iPd_t@[pG_ts_p@iBLaMpxHNEBSFfDUBGqPkEkHaJDFMCUWLWSoQcLtGROYosgao^CRM_t`upVWogd`@kAPayPspC}BWD_CsBXA@{EoLCGhFqcrgL_]CTSKeHEoZOawnK[SPx_u`TpMOs_`v@lBIaKPxHNaBYFUDWBAaV[EwHuJDFHcTgLoVkQGLPGJoZ_vG_S]_RV_v@}`OopGch@nAFavpvxEAB]DKCnB^QC[E{K[G\F}CwWLw[sSwK}HPO[?`Om{[iPy_w@]@N_vO_T@oBKaBp{xMeB_FjDMb@QR[FCHUJ\FAcUGMGTgQWLfGTo[Ov?bs^kRH_w`qpTopWdt@qA[A~PuxCiBcDGCubTqFCFGLOG[FbcugMO\_SYKcHTO[obGk{\MPg_x`Y`JgsO_r@rBCaJ`ypNiBeFwD^BLqP[FOHGJVFAcSgM_VoRoLoGDO\?pGaC]}R|_y@spPgqkdN@tADAw@rxF}BiDQCeBYqCcFSLKGUFbcswMg^wToKqHDo\_aWk{\OPf_z@Q@KGt{`z@uB^aM@}HKeBkFeDJB@QQCF[HyJwFXCQgMwUWQiLCGHo\oq?_{^QRf_z`qpSWpodx@wAXA|pvhCiBoDoCyB^A@SF_LaGvF~cqWN?^KTiK|HDo]Oaok{\CPl_{`T`H_uK`\@xBJaBp{@MyBqFTDEbGQTcFgGSJiFLC[GNOS_RQLZGXO]_pGak]oRr_|@qpT?pcdb@zAVAs`ohD]BuDmCgbPAAsFkL]GRFbctGNW]sS_KDHJO^?b_k{\YPa_}@\@M?v__T@{BOaEPwxLuBwFJDQbCqU{FsHmJqF[CQgNgTwQWLnGOo^OpGaO]aRs_}`w@RWoScz@}AOau@ohDuB{DGCqbSqE{FwK{GNFvCwGNo^STeKwHDo^o`OmS[_Pt_~`W`JGsO_x@~BZAK`~@KeB}F]DEbJaSKG?CAAA@@dSGO?GOCOAKI`o_?OgGgC]TF`??`_PWGsiVA?@B_aOPpS}CGEbD]beaC{GOLMItFJCGGO_YkTaM]GVO`?twjc[cOh`A`G@No|_dLADARa\@yxIMCIChCwbvQTcGSH[HzFhCiWOoUKVwKXHqo`_kgn[WmRb`B@Y@]Gpwf\AEAvA}`a@MaCMFbC^BUqKcG[NGGvEicWwOw]gP_L[Guo`o|gbcYcPi`C@cPSoz{_rAGBIaj`uX@yCOEXDTBmqACG_KyIaFZcDwPG\CPML|GkOaOyoawZeP^`C`u@DGvgabAHBnaG@m`DYCSCOCrb~AR[GgGmHlFxcfgPOPcRONxHGoa_boeG^kQS`D`SP[_rwetAJAjazpe@LqCUDYDsbMQYKGkIwJaEZctwP_ZGSuMdG^Ob?uohK\QOx`E@m`QwyC`nAKB^AfpthBACYDqDkBHq^{GsJgJRESc}WPgVcUiK_HyObOnwlwX[Rq`F@{`BGuWbxAMByaC@l@FmC[FzCJbWQMkGwNwG]Evc[gPwR?QqNcH]oboewdK^UQw`F`MPIo}CdnANA^AV@|pJIC_CHC~bxQRSH?JuJlEBcywQ?X_SwMSGCoc?|G_wZmPx`G`E`Jo|OcTAPAsarPehNaCaEGD^bhaBSHCNsGnEbcYwQOQ_Q]NsH\oc_jGl{WgRJ`H@mPTwwO`PAQBcaN@k`DmCeCzCvBpQT[HKIUJ~ERCuGQWYcSWMuG\ocozO`sYgPH`I@FPJW|CcTASAnauPaXKmCgE[DKBcA@KHOMyGYEhcQWQgOcR_NnHNodOhWnGX]R]`I`a@UWyw_zATBcaK`lhDqCkCtCqBpQSKHWJkJeEBcwGQoZSTMMCGOod_}_aWYMPa`J`GPHw~kdhAVApArPfXNUCmE`DEBmaEkH[N?GME{c\wR?QWQ]NpH^Oe?hWncXORR`K@c@Q_xo_RAWB}aGPgxEUCqC{CobpQScHcIcJSEMcqwRGW_TuMiGHoeO{w_wZ_P}`L@APNO}gc`AYAqArPePNyCsE|DPb`ACsHgMeGSEmcQWRWPKQgN]HDOeongm?WMRe`L`hPP_zG`xAZBcaMplPDICwCqCtbpQTsHoJ]JLE]C{wR_XOS_MWGCof?xGbSZEPT`M`JpHw~wdbA\AwAyp_xMuCyEGDZbgaAcHsMgGRElCQWRoPOQaNZHDOf_hWnOXART`N@kPTWwO`^A]BvAB`npFAC}CHCybwAQkH{IgJQELCqwRwYsSWM}GXOfo}Wa_YMPk`O@@pJO~{dJA_AjA}p`pNYD?EcDSBjA?{I?NmGHEnCTwSGROQSN[HJOgOkwmgXWRE`O`dpVOwo`hA`BbaE@n`EYDCCUC{brqUsIGIKJYE]cxGSOZ[SOM\GJOg_{gakZWPF`P`HPLG}ocJAbAzaqpbxLQDEECDLBnQCkIKMiGyEfC\gS_RsQSNRHKoh?gol[XgRa`Q@g@T_y__NAcBlaKphpF}DICFCib|QSCISJwJJEGcuWSgXkTcMKG]ohO{OaoZUPF`R@G`L_}ccJAeAla{@`pNuDKE~DCBcQBCIWMMGUEycWWSwP_ReNNH]OhokGmoXURE`R``@QozS`DAfB~AAPi@DeDOCPCzBrqVKI_JsJJEKCsgT?YoT?McGBoi?ww`{ZcPn`S`J@KW}WcJAhAbAv@eXM}DQERDZBbAFSIcNqGHEkcSGTOO[Q}NoHVoi_l_mCXIRE`T@mpP?xc_bAiBhAL@hpFaDUCyCdBuQQ[IkI_JuEFC}wTWWOS{MpGUOio|_aGZIPF`U@IpKo}KcJAkAtAxpcPKYDWEgDQBgA?{IoNUGdEpCPwTgP{RwNNHXojOjgnsW[Ro`U`fpVowo`fAlBmANPhpFED[CrCdBtaRcIwJaJJEJCvwToZKSOMTGNoj_}?_cYmP]`V`@pI?~gdTAnAbAsPfPMeD]ECDHBmQD[I{MMGPE|cYGU?OwRINYH^ok?lglWWQR\`W@n@U_z__\AoBnA@plHEyDaClCjbqaRkJCIYJdELc~GUGXwSGMjGUokO~wbWZoPM`X@NpMw~_c^AqAnAp`dPMqDcEKDQbeqF{JGN]GTEccVWUWPoQINgHUokononSXoRL`X`j`Qgw__xArBfAH@j@FuDgCbCmbqaQ{JOIiJEEQCwWU_Z_T_M{GFOl?xoagYaPy`Y`B`LO|?dtAtA{A{pfxKuDiEUDABhqC[JSNAG[EccTGUoPSQINfHPOl_k?lsWQRU`Z@b@TGxK`pAuB{AKPnxCyDmCwCxB~QP{J[IYJgEHC}gUwYGSyMGGIoloyw_[ZMP_`[@L`Ng~Gc^AwAya~`eHKuDoEsD]BkA@sJ_NkG~EwcRgVGPGQINlHSOmOiWkWXYRi`[`c`O_y{`TAxBgA@plpEeDsCMCoBtQUkJgIYJbEIc|wVOWoTAMVGZOm_xoaKYkPs`\`I`J?{gcdAzAtaup`HLADuEiDKbaAASJkNOGZEccSwV_PkQINaHRon?hgmwWwRp`]@k@V?zO_\A{BrAC`hHDiDyCpC{B|qP{JsJKJOECcuwVgXgSGMbGQOnOxoasY}Pr`^@H@IO{gcpA}Axa}@epKuD{EKDUbfqEKJwMqGFEoCXwVwOwR]N^HWOnoj?kWXERf`^`h`QGw__vA~BwaM@mpCyE?B@@`?oqiCK?EGBG@eDOgW?KSESBNIbOo?WoKkEYTI`_?poXGKwi\BCBxAvp|HBYEGFuDjbxQECKONsJRFucNWW_^wUuN`G\opOe?hoZURv`a`L`QouOfdBDA\acplpNuEIC|DKbWQ^CKWLcH]ETc\GWoZOQiKeGxOp_vGdKXYP~`b@npJ?q?brBFAxAFPt@JUEMDtCJBhaUSK[JuGOFVcnGWwVoOuM`H\oq?{WnS]{Oj`c@xp^g|G`ZBGBta}PzPAAEOFnDwbtaCsKcJEGuFMCigXGUOPyMQHUoqOlObk[uQb`c`ZPE?xSdHBIAOAl@jhMeESCeD^BSa\cKgHUIzEkCwwXOQsTaLVHrOqosWf[WyPg`d`hPN_p?b\BJBSA]`bXEMEUEmCwbDaKkKoMaJiFzcFWX_\SVCNzGLor?zGmW^eOU`e@vP\o~{_`BLBGaYPepDqEYEVCpBMqJSKsKsHcEWCTwXgXoR]K|Ggor_iGak\gQ^`f@T`C?zgcpBMAkAH`uXHYE[D^CUbnQQKK{G_IgEzCvgXwPWTCLxHlorobWi[ZeRS`f`FPTgvoebBOAEalPlPL}E_DmCBBmQVsL?LyHeEDcZWY?\oUgNWGEosObwhOYuRN`g`^PCgwcdXBPBVaP`fPFyEaFKDzbyaB{LGH[IDE|c~gYOSwPmMiHMOs_rwdOWqPL`h@~P[w{_`\BRA]Ah@hPMyEeD\CIBeaPsLKKYHsESCVgYW]sUGNyG]Ot?bGhCY{RN`i@U`AOxsc\BSBKaS`bxCuEgFWDgBvA@kLSGYIyEoCugYgSwPsMbHLotOpgfcXEPW`i`r@^W}G_rBUAWaj`hPMQEkDrCVBaQSkLWL_HlEDcXgYo^CV]NGGQotocggSZgRp`j`Xp?oz[d`BVBQAP`exFMEmFdDaB|aEKL_HEIDE~C}wZ?VgPOMHHPOu?pgfGXIPT`k@t@Z_|?_ZBXA\AiphPMEEqD_CBBnaVKLcKgH^EHCRWZG[oVeNeGIOu_`gj?ZIRT`l@T@BwxKc\BYBPAP`f`FaEsFxDtbqAC[LkGgI]EgcrwZWSwPaMcHIouovWekWUP_`l`wPW_~w`tB[AZagPhPMmEwDMC]BjQQSLoLQHEEWc\WZ_\?UoNSGEovOd?gSZaRs`m`SpBGxOc\B\BZAW@`XEmEyFKD~bzaASLwGcIZEiCrwZoUcOKMoHZov_pgf{X[PR`n@|P[W{_`PB^AEanplxLAE}DsCPbaQT[L{KcHXEICRWZw]cUGNqGZow?`Wh{ZiRi`o@]P@gx[crB_BLa^P_pFmF?FgDuBxA@[MCHqINEjCuW[GScO{MtHSOwOtOeoXMPJ`o`up^o{O`rBaAKAn@ghNeFCDjCUBhQPKMGKUH[EYCYW[O^kUWNTGKOwodOioZKRI`p`UpFww[dpBbB\ARPahDeFEFGDnB|QDSMOHcINEkctg[_TSPgMFHWox?pWdCX}Pn`q@z@\?}?_VBdADac@nxM}FIDkCTBgaPKMSLaHLEKCTG[g\[VkNCGXOx_d_icZERI`r@QPAWzod^BeBJA\`_pFAFKFrDeBuQAkM[GiIuEac{w[wV?OYMXHJoxot_egXAPJ`r`q@YO~s`XBgANAkpghNYFODHCKBmqSKM_LmHLEHcVw\?]?VGNkGDoyOcGiWZWRI`s`\p@gx?c|BhBDaU`fHEIFQF^DxBpAEcMgGUIYE|CwG\OToPcMFHZOy_sGe[XWPJ`t@|pX_|C_|BjAYAbpiXLqFUDaCRbjAPKMkKyHoEBC\g\W[_UsNxGOoz?cwiKZQRI`u@XPCGykcRBkBRaWPdPCmFWFcDoByA@[MsGeIxEac~G\gTGPqMFH^ozOq?fkWKP|`u`sp^O{O`~BmA^abpj`LMF[D}CEbfaQCMwLwHLENCSg\o^{UWN\GHozo`WhSZ_Rd`v`QPAgzGdLBnBDaTpePEQF]FGDjB{QC{N?GKIiEnc|W]?T[OUMmHRo{?sodkWYPU`w@|@^?~o_LBpAQAe@hxL]FaDuC[BnqO{NCKKHgEMC\w]G\WUONnGQO{_egj_ZyRD`x@X`BOwwchBqBIaQpdxE]FcFCDsbvqEkNKGmIIEucxw]WS[PQM^HYO{ougf_X{PE`x`x`ZG{o_nBsASac`hxLuFgDFCQBdaU[NOK{HJEPCYg]_^?VwNwGBO|O_oiSYiRo`y`Y@AGwwczBtBXa^`f@CYFiF]DcBwqDKNWGwIIEpCyG]oVCP{MwHBo|_tWd?WYP\`z@p@[g|[`fBvAXanPn@KUFmD]CDbgATKN[KKHdEJc[W]w]gUaNKGMO}?fojGZmRD`{@^pEWzWcNBwB^A[pehCYFoF{DwB|A?sNcGsIIEsCwg^GTcOUMhHOO}Or?ckXQP``{`u`X?}k`DByABAjpi@N}FsDFCVbcQVkNgKKHmEGc^G^O[OVYNRG^O}ocOh[Y]RW`|`WPAwwwctBzBOAT``hDmFuFaDibrABSNoGaIIErczW^_U{OwMMHHo~?ooeKWsPy`}@}@]_~?_LB|A[AlpmPKUFyDFCPBeAVSNsLYH\EEcSG^g\GUONfGVo~_dwhsY]RQ`~@S@@Wy[d\B}B[A\PeXCYF{FCDobuqFCN{GKI_ElC}g^wV_PiMpHBo~oqWckXGPk`~`z`Zg{o_bC?A?`?__XTQG?CCAC@BAgcO?GICIAFdPW_?OWGUCLIbP??_wOcG[TFaA@S?tw^ggjCCAi`hO}hPAGGDYBO@~qb{OOI}EiBwDEg`?V?KiFnI\PA?mgX{N?S~aC@]_rO]gh`CGA~`c?{hRUGWD_B\@tQd{OoJIEoBlDIg`_UgLiFOIQpB?lwZ{M}S_aG@T?rW\wgJCPAa`mO|hPQGcDuBS@rqc{PKJMEIB}DLga_TCK{FZIApDOggZWNMSPaJ@]OsO[{hZCVAu`a_}XReGoD]BG`tA_kPcIIE{BpDFgbOVKLMFNISPEol?WgNqSraM@Uoq_\CgJC\Aa`ko|@PmG{D{BU`rqcSP{JCEIBzDNGc?UoLKFhIFpGOjgZOMSS}aP@^_og\_gzCbAf`do~XQqHGDhBP`zA`{QSIcE}BdDLGcoVOKIFVIHPHohwX_NaShaS@X_t_]Kg^ChAk@moxPREHSDpBA`vQbCQkI]EQByDHgd_UKLQFeIFpJOiwZCMSSzaV@]oog\GgnCnAf`fO~pQMH_DwB]`|q`SRCIqENBqDIweOSgL[FUI[PKolWXoMISXaY@^Ov?^GgTCtAh`bo|XQQHkDIBO`vAfkR[JGEUBadCwf?VGLmF|IDPMOioW{NASma\@Q_tW\chdCzAv@cowhPYHwDvBX@}A`SRsIwENBvDGWfoSgLGFRIZpNokGXcMIS[a_@OOgOSKibD?Aa@Q?h`SEI?DDAd@RqgcS?IKDJAedQwg?S[IQDMIfP_?oGWGKETRb?@`?p?WoiFE?BA`a_pxSQK?EEBD`bQhSW?KMEHBFDRWw?[CMCFBIhPo?w_[_MWTAb_@pOxO[{iHF?Bb@qoxhSeM?FFBc`rah{_?OAGAC@dTH??_OOOGKIeQ?@?g_gO]TLc?A@`@W_si\G?CBaAP@pS}OGH_D^AuQc{_ORMIvDjdGH?_ecT_J]IVQ@@LojcU_ShcCAS@SwnwgrGGCjaj`]@PyOOHXDSa}QaC__Q{I_DzdDx@_f?SqJfI^QB@Mwh?VQSxcEA]PQwm?hnGKC~Af`\pRAO_HYDMatA`K`CQQI{DrDEhAOfkT]JFISQCpL?gwViSzcIAVPROlKgRGTCcak`\xPuOkHtDRApqcK`[RAIMD|dLXB?dKSgJ\ICqEPHGjkVOSRcLA^@SGk[hLGZCrAb`]PRqOwHSDHaua`K`sQQItDodDHBofGTOJFIVqFpLwgwVwSqcOAXPTWmogNG`CjAm`XpRQPCHsDCavqasaKQMIWD}dHXC_eGTWJjIBqHPJ?jKU[S|cRA^PPGlCgpGfCbad`]`QIPOHkDPAxQ_{acQaIsDfDMhDOfgSQJWIGqIpGwh{VeSkcUAYpSgmGgNGlCnanPXpRMP[HrDCatab{a{QMIPD|DIxE?f{TkJwIFQKPJ_g[VSSlcXAR`S_lkh~GrCuadPXHPqPgHwDWa~q`sbSQiIFDqDGxEocwTSJQI[QLpKWhoUQSTc[A\`VwnCg\GxChA`p\hQiPsHMDPatQesbkRSIZDcdChF_fCToJuIFQNPJWg[VEScc^AR`TglohbG~CqAc`XHPmQ?H@C`AOqiSc?QGHGCeDOXG?cSQSHNIbqO@GockQYTIc_APpHGcwiXI?D?a_`OXTES?ICDCAbAg[g?SIIIDFdPhO?gWSUILIcq_@OwgcS[TKd_AoPWOkKifJ?DaAq@X`SIU?JDDdArqgkk?UKJJDedQxW?k[UQJMIeR?@_GoGWETSe?B@@`?ooiPK?EAbA``xSeW?KEEDbBQhSo?WMKHEFDQx__v?[yNjIZR@@moxW^KSoeAB]pq?}shzKCE}bep{@RmWOL_FZBvQd[o_ZKM|FgDJX`?uk\uNZIORA@lgz?]kSeeEBS@tW~WgzKKEjBg@~XPmWWLZFRB{AasooYyMlF}dCHa?t{[gNXIErCPhgz[^OS^eHB^@sg{kh\KREvB``~PRqWgLXFHBvq`kpSYYMyFpdEXaovC\[NJIQrDpkgwW^mSpeKBT@rw|GgZKXEebkP{hPQWsLyFSBqqc[pkZEMEF}DMhb_tG[qNSIErFPhgzo^[SQeNB\psW{khPK^EsB``}HR]X?LiFUBxq`[qCYoM~FbDMXcOvc[YNTIKRGphWxw^gSieQBZ@tO}CgVKdEibl@wpRIXKLqFEbuAakq[YUMRF~dJHd?uC\MNkIDrIPjozG]KSseTB\@pg|Kg|KjEdbe@~HQEXWLfFObya`[qsYeMxFbDNxdov{[YN]IHrJphWxS^cSfeWB\Pv?~wgLKpEjbap|xQQXcLEFSbvAekrKZGMYFedDxe_vK\{NwIBRLPj_wk^CSheZBP`s_|[hfKvEsbcPxhPqXoL}FXb|Q_srcYsMJFsdGhfOsW\]NPI^RMpkOx[]YSYe]B]@ug~KgLK|Egbap{`Q}X{LEFPBuafCr{Z]M[FedCXg?sCYCLBIhrO@g_s_YWT@e_BPPhOs{iLL?EbBQphhSaY?LFEcbRah{w?[AMAF@dSho?wO[OMKI`r_@ogwg[]TDf?B``pWwsiPM?FBbaPppSy]?N@F`BoqiK{?]GNGFeDOhw?{S]SNNIbro@wo{k]YTGf_BppxG{wiZO?G?c?a?XTQ_?OCGCCBAgD??_IOIGFdOY?@?W_UOLI`S?A?x?c_[TBgACSAT`N_ghOCGiChA]`PA_GPWHOC~Abd?OawQgHwDEI@@F?cgRkI[SAAM`Hof?S{gCC]AR@M_h`OGG}CcA[`RQ_WP_H[CtAdd?obGQoHkDII@`E_dgROIQSBAL`JoewS_gGCTQRHLsgHOPGaCmq\pPU_cPvHTCrAct@KbKQGH~dLyA`DCcyRXIASDQG`J[fKSPgJC]qSPKoh\OVGvCaA]XRm_oP\HGctQ_d@caGQ~HpDFYBPFKdKRKITSEqLPG_fuSrgMCUQQhLCgHO\GaCkq\PPe_{P~HVCrAcT@{bCQGHzdNyC@E{dMRjIESGQJpJSeOS|gPC^QO`Lgg|ObGeCda^HQ}`GPjHPczq`dASacQ|HcDLYCpFScGRUIHSHqH`HgfaSjgSCXqTxMKgXOhGlCmQX@RE`SPpHACvabTAkaWQQHydHyD`EKdURfIESJQIpJCeOSxgVC]QO`LGglOnGeCfa^hQM`_PyH^C|a`DBCauQKHqdIYEPC_dYRVI\SKqLHH{eGSZgYC^aVPNGgPOtGhcbA\HQU`kPGHOcvqftB[bIQVHaDCyF@FGdkR}ICSMQIxGofASlg\CQATHLkhdOzGuccqW`P]`wPuHXC}a`DBsa}QKHudGYFpC_dIRRIZSNqKHHkeGS^g_COQGPCKibP?GaCQAH`SAa?PDGdCRqglC?aKPJGedQiG@C[aQPMIfs_AOHGGcETRh?C`AP@Goi@Q?HAcaaPxS]c?QEHDcbQhLG?cMQHHFDRiW@KCeCRBIhSoAW`K_eWT?h_CpQXPK{iLR?HbCqqXhSme?RFHccrahlO?gASAI@dSI_@OOgOSKI_T?A_hOgg]TCi?D@a`XOsiPS?IBdAQ`pSq?KFpCgrgTQTN@SciR_?`C@C[rHSeiTgGidTQs?CGaG`eWiddRD@@SoiX_@@K@AKqLSqiZgXIetRc?GHaGReOIfDRtBLS{i^_@`G@ESpDS}i`gPigTSS?KHAGoeHIgdSdAHTGid_B@{@I[yHSeidTRs{TSyia?UF_CwrctTTMHSgiiTToB?KGJAEcijTUtGdQyitT\?K?o?kgYIixT`SbTLIkDUK?_BaAR`oIkTU\RLSyirTYOA?M?HEFEisTZTKdSAjXTn?C?g_gW]Ij\TrSOTPimTVS?OA_Ab`xImdVdPDTKi{T]oAo{GfM[_ijT]iny[YidT}j?_E`s@KSzDUDRRTIImDWQkM?IDODPr{dWYkUaaiVT\ipTWs?SIaI`fwipdXDD@Ssi}TcIqW@OV?SbNbTciqyMQhtUAjJTeOA_mGhM^?jKTfS[tSAipU[jN_F`W@US|DU]jPgpigtTylDUd?NAoakHyQlHUhPaTRIkdYalU?YFPCoRkdWYlTUnRQTSilTYylb") H4K3pnx = H4K3p.networkx_graph() # List of graphs to process graphs = [('H4K3p ', H4K3p)] 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 check_all_isomorphisms(graph_list): n = len(graph_list) print("\n Isomorphism check of all pairs (a dot means the pair ARE isomorphic):") for i in range(n): label_i, G_i = graph_list[i] for j in range(i + 1, n): label_j, G_j = graph_list[j] if G_i.is_isomorphic(G_j): # print(".", end="") print(f"{label_i} IS isomorphic to {label_j}") else: print(f"{label_i} NOT isomorphic to {label_j}") def non_isomorphic(graph_list): reps = [] labels = [] for label, G in graph_list: if not any(G.is_isomorphic(H) for _, H in reps): reps.append((label, G)) labels.append(label.strip()) # remove extra spaces if you want return labels def isomorphic(graph_list): labels = [] for i, (label, G) in enumerate(graph_list): if any(i != j and G.is_isomorphic(H) for j, (_, H) in enumerate(graph_list)): labels.append(label.strip()) return labels def compare_graphs_list(graphs): canon = {} count =1 for label, G in graphs: s6 = G.canonical_label().sparse6_string() # print(f"{label.strip():15} : {s6[:40]}...") canon.setdefault(s6, []).append(label.strip()) print("\n noniso ->",len(canon)) print("\nGroups:") for group in canon.values(): if len(group) > 1: print(count,"Isomorphic :", ", ".join(group)) count=count+1 else: print(count,"Unique :", group[0]) count=count+1 print("\n START \n") #noniso = non_isomorphic(graphs) #print(len(noniso), " non-isomorphic -> ",noniso) #iso=isomorphic(graphs) #print(len(iso), " isomorphic -> ",iso,"\n") #compare_graphs_list(graphs) nonisographs = graphs # Print properties for each graph in the list print("\n Main properties of the graph\n") for label, graph in nonisographs: print(f"{label} | Ord.: {graph.order()} / Size: {graph.size()} / Diam.: {graph.diameter()} / Avg.dist: {graph.average_distance().n(digits=6)} / 5-reg.? {graph.is_regular(k=5)} / Girth: {graph.girth()} ")#/ Alg.conn. {algebraic_connectivity(graph).n(digits=6)} ")# / Domin. number: {graph.dominating_set(value_only=True)} ") print("\n Symmetry properties of the graph\n") for label, graph in nonisographs: 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("Degree histogram H4K3p :", nx.degree_histogram(H4K3pnx) ) ''' 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()} \\\\ ") ''' # Check isomorphisms # print(f"Are isomorphic G5 and G6? {G5.is_isomorphic(G6)}") #check_all_isomorphisms(nonisographs) print("\n") # automorphism group structure print(" Automorphism group structure") print(' C_n is the cyclic group of order n; x means direct product; : means semidirect product.\n') AH4K3p = H4K3p.automorphism_group() print('DahrH4K3p :', AH4K3p.structure_description(), ' | center order:',AH4K3p.center().order()) print("\n") # 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 print("\n") for label, graph in nonisographs: print(f"{label} distance distrib from vtx. 0: {distance_distribution(graph, 0)}") # Counting k-cycles for each graph print("\nNumber of k-cycles for k=3 up to 4") for label, graph in nonisographs: print(f"{label} "," & ".join(str(count_k_cycles(graph, k)) for k in range(3, 5))) ''' # from 0 versio Molodtsov? for name, G in nonisographs: 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 nonisographs: 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 nonisographs: 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") ## ##