# SageMathCell online # https://sagecell.sagemath.org/?q=bahvid # 11 isomorphic graphs found # Z_11*(9)Z_23 F. Comellas, M. Mitjana (August 1994) # Z_11*(3)Z_23 M. Sampels (1997) # all others by F. Comellas (2024) # The graphs are in sparse6 format . GCM=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_K@_GE_SA@CA_SA_SA_[B_[B_WD_[B_cC_cC__F_cC_kD_kD_kD_sE_sE_sE_{F_{F_{F`CG`CG`CGbkMA_mFW|d?|`_]FkuFkIDW|`gwFkQFk^FstFsfFpBew~GcTCGqF_~`WbF{kF{UC_~c?sF{RGCfEH?fH?GSsGCeDx?a?vGK[FP@`wUGKcCh@bgkDh@c@@dPAaGYGSsGSaCpAe@Ba@BbW`G[ZEXBbgibgcbO\FK\bkHGclE`CcWtGchEPCbGcCgpGcQFPEHX^b@QL[HC?cJPkdPDIXka_aJhk`oxKxk`HHLcNEPdL[bJHjMCmE?uLkYDgqF@lcxTK`lbGpHPm`w{L@mL{RCHcLsI@g^LsWD@eb@PLKWGxLb?XDXWb?wIP]b?`CXT`_oH@n`WdK`n`OfDHVL{kK@od@oagqI@UMCJEXQJCKIPgao[ISrFXpcgtJpcMK^EpdMKRJXaMKjHxWKHpd_qEhMNSZFXTJA@P{yJ`zP{JB_cFYNeOvGxaPKKJpaKyOdwpJH|QCOHx`MaPd`FLQKQKVDxIIqP`oSIaP`whHpYPSXF`MMXuexMHx\OCVHpfNQDeo{HpUNkHD`DKCSD`XJX~egwFKtJStH`aN@}aodDorKXyOCPChLIHya?jDxdOiQaOTCxbQSeDOsJi?QShF@aKhvRKQI@|OA^TKQDpPJAhe@aKprOydbOoGiDOyJTSLCP`RYiao[DGwMYM`gTBohM`}a?hGpJNcbGxZMy@S{UDPeMyCRs]DhvPYXSSaF@JOQ\cxdKxga@dOKTC@dOyVRcjHh^KYGRI]dWrH@uNIX`ggJiHSQjaxHH`XPAj`P[KaCRqjcG{JXfOyHQqp`_yF`_SQcSsMCopF`VaWdD@ZMPt`oZH`RJY[eprOQURy{`wXHh[PQUSKvJIHPYKdAHR{XBx\MqEPAp`H\KYTRAp`o`JQCSiva_XCGnOY`fHDLHiUyxV[IGp`LP~dXIJQAQYSc@EI@zOQrb_aKqdSs^HxSOaTSZ@awvFYCPAmUB@axEIq@SIyWsLBPJHxUSAufPgPiMWrFXKSCpqPq\cXPIyIVQzdPSNa`TqwXkQBo^Kq`WBAXkPBpqNq^UrG`_MDPtNqtWkJAHhPagYBQ`PJQYgUcuNH~SzGXKRAooJ`{Ur?e@HIXSPQuXbMaglGhEJaSRbNb_mHALVjVZKOA_bMikVkRHPLKABWjK`wcK@zNafWjTfPKJpqOYlUZU`GJExPJzIZsgEWuHYSXSxHPsMq_XzTaWxGxWRQ{Xz[c@hOiRSA~Wb\dozKpxOrR[[TBXgMaTUjUZcVCxTPiaTatX[QJyIRAbZRgbWlH`OPamZja`W]DgrJH|UzSaw[C@OJpwWBfcOmIX]KYZWrZbO]IHTNADQzKaGpIx^NYDPB```RNH|QyaTzTbxGKH~OqYSRee`DNYWRYnUz[`GeIa\SYqUzjeGsFPcRQoWra`OzNasVBBWrmaGnKHcLIqWRf`gYConHALWZM~~~") Gsamp=Graph(r":~?B|_C?_C?_C?_C?_K@_K@?c@_K@_SA_SA_SA_OD_[B@CB_[B_[B_cC_cC_cC_kD_kD_kD_sE_sE_oF_sE_{F_{F_{F`CG`CG`CG`O_eG|d?|ao[FkwFkmF_|bW|cC_E[OC?`c@?cCXBg_aOvFW}dW}aO}`gWFseE?}aW]Fp@b?aF{MDO~G[lF{TF{PE_~awYDg~eP?`goGCJDgnGCKFH?bP@dH@`waDOrGKjGK`Ep@`_XGSQA_bGSdGSIGSPCPA`OxFSIC{I`GIDcI`gRBwfG[tG[zG[TG[HC`BfPDJCXCp\LsgHxm`_SLPmbXaLsXD`SLs\JC[COcE`IJC^CWtJ@ofPJLHlfP_aGTFPJeoyH@PbOyH`UMKQIHXL{^DpneHeL{HDpOIXnahdMCRF`GMCVDpEKXo`wjGxjMC\DWoIXpb?fJppb_iL@p`wvGxQMSUCHJHhqeOvJXqaOoGhqcgpEpXMShGhjLcjGkLAXCGh`bPDchGH`VJ`rcXlM[OFHMM[MG`YM[JLaAa_wIQScX\NYSagiD`FHiSbwfIaIQc\FXQKH}QcQD@XJPeMyAaovIxfOQUdWqL`wQARe_xLaGcOpHpkNCXDwuExgLcXEpJOYTbpVKQTchcPiTcotG`aNaT`wrHqUbWnHaUa?RDXOKPtPYU`geEo{Ih_Q{cD?qJyNQ{HB`NN@yRCJF`JRCQJXcLABRCJJqPQSJ@whKCJH@KMaH`W]I[KDxZNI@RKUEqRRKODHLLP|a@MJx`Mpya@VJ`}TSOIhlNiHSS\K@dQQ\UC]KpjQQhePQKXgLINQSbIPgNAq`pUOIIUSwKxsPQ_USZF@GL@~PArehYJhdOynU[gG`zRi^UcZGpwUcMCXJOiKPysfXEOqp`wVCwnGpx`odCpEIsMGxbOi]SitbgcHxgUkkHP]NQ``_sHQ@SQ~bOfDHINyRSKrEgzIiGUzC`GzIqLQI}fXdNiJPyOT{NAp|Py\WsqHI?SiiWsVChiPqiVJEdwvI`iPybTKSBwrExfObBagdJhsUywW{UDPHNAkTzF`gMF@HJXtOCHAGiFHHMqJXC]KHvOq^VShE`FKpvSk\IX[JpvSYyb?oG`lOAlUJPb?rLi`TYnUBBaGlKicVzTd_tI@ZTq~XbTd`bLH}TyzVsSAxMJZIXZUdhNJy\WJBYslH@HLQDRQcdgpG`^LYZTZVaGWJpeMqLRcKCpTOq[VZLcG{IHsQYcWj\boqE``Kx{OjAc_mNYFUzR[KRDpcMaFQJ?[SpIIEPiZTiuf@FNygUrMZSaDPUKhePIMSCTBxYKRIZzfaw^H`aPapYRgaWXCGoKagTjHcwrJH^OALTqxehOIxxPQkWj]`G[CG{H`QPa|bPfNa@RqiWJdbW[D@CNH|TbOc_xIYMSAdVzi`ggI`\Ma]SJ@aGeE?sJPjTqxa_VC_xH@\NqyeGwF`eOaPWRKa_nHhOJPjSRLbW]CPcLQLSypdHLKXyNaCQJYd`SIpXPalVbDbO`KH}OABTbNb_bIYHSQcWJ[~~~") G2=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_K@?c@_SA?kA_SA_SA_[B_[B@CB_[B_cC_cC_cC_kD_kD_kD_sE_sE?{E_sE_{F_{F_{F`CG`CG`CGcSYDW|c_pFkJFkkEg|b?XD?|d?|`OUFkQFsL@whFsQCw}aGuFp?`GdFsSF{\Fx@`_~aWwF{iF_~`_acSZBgacOrGcOCGacSoE`?b_eDH?bWmGC`FX?b`?aG{GKMBX@fH@a`@aWbEW{GSQAgvGSLGSbDhAb_vG[ZDOuF`B`GxG[qFPBdpBa@BawfGc_DxCcxCcgyGcNEXWbxYKPkbG^Kpkd`OIHkagkLccDXkeGrFKYEXHJkNC?nEXJK{eEXDJ[LHhle@FLkOAooH`lb?iLXlbhFJCRAxWK`p`WnHPWbgdJCNAH`KkNE@SJ`\`wVCoiIX^`w{IcQHXjLsxH@RLssF`hLsfHhmaObH`XK`jL{pHpgL{YCpna_gJHnf@SL@ob@RKxjMCKCpDLHobpbLPodHIMCtHxpa?yIx_MK_Ehpa@ZLPp`GlIqAPSHAgnFPPIsHBG`F[HBHM`GKDpYJssKPcLKoIPcMiDbxHIx_KaMbO_NARbWcHP`MyRb?wIAQQ[vHHJPILa@HKH|OaDb@HHx[NaFbwbEIQQcfEguNASeHXMy@PaQQkSKPxPyTdHQJaTd`LOITao]NiNQsuExONaMQQUexTPYPQs]Gx[MQOQsbCp\MqUf@eNQVboqE`ILQ?PAVb`IOYPQ{gGh~SIfb_`GhMK@iN{I@WwGhPe`DIHxbhdPQKQCxKHzPaaexQIy[T{VDhRJPuPInaozIAmT{^L@tSqh`oyHPtPIa`hOMhyOaceheKy[UCdDhaOIiTqpdH\NYCUKXC?dEPwUKMC`TTaq`gzKxgTYmUSmL@}TAqaWiJH[OiZUSQIhbKhuQI_SkQDonI`uaw[D`qRy~`XSMPxPAPR{UBW`DXEMSPCHdMQ\``hPIiV[gHx{OQZSrD`OcEozWbDa_xF`UPy}WK\FHGLPuSqzag_KqMUrEcggE`ZPRCW{KEwyJiDW{IBQMPzAWbGe@^Py]WBGb@KOICSQtXCmEH}PYLRYyVkpJx_NiZaGXHxSRAxdpENiWRidVKJC_fIX]MYW`XJPiWU{sGyOSrM`giD`ySItVrU`OjJPfYjUbWuHhhLX~TbQagqHpVTZIY{kJXdOYfYjWa_jIQjTbRYjXa?hKIFTawYJXaWVCgyI@vVZX`oRKQFPAt`oiJxrUYvVjLehEJP{OqXU[RA_^GqhUZJbgjE@]OQM[[XDyBPi~[ZddgzH`NJXiXreawbH@KPQcSkWBo_HAFRJJYCLBpeMYASYsbpKHhUMZ@ZcPDxPKAh\Rk`OgMxyOYPZrlf@NJHsMyfVkfI@TIxsSasZcTBPTRI`VbHcGuHX_PB@]BqaolNQ@RQ~YCtF?zNq?RRH[{[HpQNqsXzY`W^KyGSjQ]bu`OUCWeKq]SBYdGqI`xNY]XJ^agcDWqJH[VAy``\KX|RiwZRg`oqGyDPYvXbm~~~") G3=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_K@?k@_SA_SA_OG_SA_[B_[B_[B_WE_cC?{C_cC_cC_kD_kD_kD_sE_sE_sE_{F_{F_{F`CG`CG`CGaGxaw|eg|c?|bgbFkhFkMEO|`W]C_}d_}`W}ag^FsKEw}GCfE?}fKXFKrEoxfHBfKHFGyaG`CSPDSPaKOAGlaH@`_TDOwF{QDW~GS[F{cF{NF{OCo~d@?e`?bWyGCkGCRBGjFX?a_uGKJ@g{GKdGKIFX@bwzGSmEGsGSNGSIBPAdpAb@BagoG[UDonG[SCHBcPJLclEpgLsLA`WLstIhmcwuJxmdHGLsaGhUJ[aKSI@waGkZCPMI{aE`ELPoeXkb_wF`kM[YCoqFXCLcgHXXJSkH[sH[KAhIHXb`WoHXpchEHp_LXnf`ZL{HCHHL{QHP\L{^DP]MCkE?rKxodWqIXoaW]HhhMKMFPDGxpb?]J`pawZChlMKJIxlMSOBhdKxqaxQMS\F@q`xPM[KCXMM[\EHNK`raWkHhXM[UJQQc_rKXhPqS`wjDhFHiSdOwLA?QcLC@hQc{JxwQcWD`YMi@OcYCHYPKVFXHJPtbW]DwuIXY`o]I`jQQX`WhIP\LhsQSUJqAO[RAogKSUExfapEHpxPSUCXDQ{SDx[MqPQkMBYCQkTBWbCxaKqUb?eDH`NqUa?qH@tMyV`XOIX[QYVbWuGiRRC[CxIIiKRCdI@|RCvIhjRCRBHHRKnEhERKH@_kIhdNYJRKHJXePQNTkHHH`KXvNSHK@jPqc`GgGxWP{rIHaOYZSkvIPXOYhb@RIpcLH}O[cHyFSsQCgfHxiaWiDwpHxuehNMisaPLKaDRaoUSeEXGIYqc?tHpRPILU[[IH\JyGSQrdHINAZRisaO{Gh{NqDUc{IXhMitc@SNI?TYtaPiOAPUkgDOsGaCPima_YGaPTi{dhCJpvTsXB_cKqHUy|a?cLP|OR@c`PNq@PYNSSQAg_H`[NYO`OOCGjH`yPZEbonJ@gNqhTcLBG]F@SOqy`wdJxxUywW{MDXKMi_SRF`oRNqNRZGcgpJ@~SbBXCWHaOSaoXCrJp_KxsTbDbOgHhQMaoexbMaFRjDbwoHPZQA`SrObG^JYaSiiTqydpKHpWOi^T{VDpIJH`RqiYklIpcPqaWJC`gpHH[XRJYsmH@`RYxVRUb_lJ`dSY{YRV`OmIInVbVa_fKqFRRCYcIBxQJpyNiYcWyIxxOanVr\`_\I@xOQGWR`bgeNAGUzK[SWBOvI`bOiKV[_HiLTAuYZ_axVNiFRq`UspF@EIh{SrP[{NF@TJjIZRgdWzIHQLP~PQj`_oEoyIA`TBHb`dLXuOA_Vr]bGiKHlNiOSZBa?bEOyGphNb?e`SPaPRacVJddGqEhIMqNSBNcGeKx~TYoVbiaghJxgNI[Tqx`OYCwoJH\SZB`g`CopHp^PrDaw_CXQOQEVZQ`gnGxXJhdTjSegvFXOJ@|Sqfd@FK`vOQEPb_dhgLPlNa`Vq~e_yKYMQARSBMeO{KyITinVJ[~~~") G4=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_K@_GG_SA_SA_SA_OC_[B?kB_[B_[B_cC_cC_cC_kD_kD_kD_sE_sE?{E_sE_{F_{F_{F`CG`CG`CGaSLCO|c?|`OMDo|eowFkhFk[Dg|cOeFkrFsjFsXF_}aWVFsfFskF{TEw~agnF{WEG~cwxFO~`WYFx@eWsFX?GS`GC^C_qF`?b?^GCKGKdGKbGKZDP@`_nGSZEhA`w]GSPBXAbhAaOXBkQaObG[QaOyaORDczG[J@_`G[HBxBaogG[xGcYGcNE@C`wsGcKGcvH@U`_vGpHKCtEw{Kpgex[exRJ{cDGvIskKhkbWgDOsJpkbgfIHjLcIH`kbGqJPkcolKhlL{\IhlaoXI@SLkLD_oLsfIxm`o]D?nJhm`h`L{MB`ncGaEpn`o_L{PDpndpJIKdH[HEPJIxobwrH[VHXicofDXo`hFIhoa?oGhSMCjHxZMCSLHp`WZCOpKPpcOlMKH@g\MKOCHfMhz`hfMXuOkRB_]C`fLYIaxfOKkKxxOcbEHWJ`fN[MDhZJiBP{mJPwPqNb?yGqNdH^PIOQSmEiOa`NIHvNQOepHJX`OQP`WiHHRQSjEXTIpeQSHDwqF@HQS_KAQeOxK@wfHXaGSFHDK`{Q[xI`d`OxPkYDHYJqRehGMaRcg{Jq?Q[MAhFIpbQcmGhGQc]E`IIiJQ{`HAJQibepKIXWPYMS{IBIJR{]CxVKX|OIJbPHJy?OQ`TSHB@_NyXTIid?kJaCTYlbO[EX_T[RF`LNAWT[jKpuOAESAkeh]KhzPQlchDKHcL@uTknFADTk\K`hOiXaoqLH}a__HhhMQGR[bCggGpha_iDXQJ`~O[SB`tQsSJHjOY]eX_MPtTsPBwoEHTMineGyKpxNihVsPEHEIIvawpEpYNaFR{zH`jRIpWC`JqIRqcVB@b_]OYHSzAcGcJHqOqGWSHDX`LAbWSdDonPAKSYqa?wFXLPaeUcKHh\Jq@Ri`aoiHh}Pq`UsOKiDQzBc?qEhSKPbQ{VChbLQIRQ~Xc_KXrNBG`PbKp~RYdU{PCoiFQMURMd_uIY`VrOa@TJ@}SaeYCcE@DJqEYC^E@XK@`SqgcozHPgTA|WkLFYAOY^UixfXNJi[TIxW{\E`IPIbYKTB_sF@cNQF`PXOyLSyrXjXaowOyTRJTbw_DH\LQhZ[tHP|RazVj\bPWKPqOYcZkfI`aNqDOq|`WeHA_SIvWsJBGeFaAVzSaWlHpRLAGSkbGp}Si}WbY[[gF@SJaAPi~[cOAgYIP|SIzagWJPyRabSchGxtVAxXBRdGiGxPLY_Xj^`wcH`^NIeVcbJXgNQ@SBL\[KAwZHPMIQx`GRBGoHpONyz`WUJ`sQzHYkaFPWOaYVjJaWcIy?RywZRo`wZGhKIHaMy\d?sGxNOIUYr_b?nIpiNiaUZW`oTCOyMPwRAtdg{JXsRyo[JfaxOKHzPiyWbaa@HHpULQXUJEeX^LY?Qqv\Bl`O]CXvOrIYRh`wPHPuNYLURRepEIyWSbVZrn~~~") G6=Graph(r":~?B|_C?_C?_C?_C?_K@_K@?[@_K@_SA_SA?kA_SA_[B_[B_[B_cC_cC?{C_cC_kD_kD_kD_sE@CE_sE_sE_{F_{F_{F`CG`CG`CGekZFkLDW|cohFO|bo|b_\FkODw|bgcFkRCG}`OlFsQDooFp?cwzFsIE_}`W}cOfD?~cWtF{^Cg~aO~bG_F{KBx?cP?aGVBwkGCwGKTAoWGKND@@G[pFX@`_iGKSEH@ekTEkt`WMEktEowaWmGSNGSfGSRF`AapAcxBbPBcXB`OxG[vGcMAHC`GuGcoGcWGcVEpeag\H@k`WmIXkbohLcJHX`Lc]JHkaWVH`U`gVCGuK@aaw{JXia_VBXdawaGsfIxZJ`lcgkJ@eLkLEXleXPIhl`odEo{GxSaGuI{jEpOI`^cXfLseHpNLsqF`bLPmapLKXmb@eb?`HpedxeK{oH`_L{SHPnaGYJXn`xKLXnexNL{aJXodgyMC^E@WMCZL@oaOcMKPDXHMKHDOnGhp`HaMKMCppdwwIALbpMMaReXEK@}Q[UGpvPARaWsIYAQ[SH`ONA?dxGI@UOyHd?xI@jQKIBGmFHZQcdExYJy@PiSePGKaS`XcNaSdxHJPjMX~bgaDxzNyEbPWPqTa?dD_zLYIQITagiHyIQk`CWePkeIpxPk_D``PiMf@aNAFf@LMsXF@INAQc_wF`yc?xIyUb_gLIU`wpEPQPyU`gNE@XQ{\DXtQ{MD`DPIVbGYCX`KxzTklIXxRQpbWxIH_LAqc`YOYESYlUSOC@sPYqeX`MiBQQXborIx`RygbOyFY@TsYHXYJxiQQjUCHBPMJpyT[KAhfdOsIHfMq[a_fJHfLY]bGmIhgbG`DGzJaOa?XHPbNincWiH@IKQAcXHJxqTSyIHWPAMRz?`oPB_gNq\W[oJIBSigVR?Wc^DOsF`cPAdcGmIXcPAuV[yLHiSZ@e_yMyBOqPVrAfPDNIDRq}`_zJpdNaMUclHhZOQMQSJB@PKAN`ORIHUJhi`HWJpsMqHScaLH{OIhTqudGjHH[SItYCaEPaOQdVZIYKqI`]KhjPYhaPUK@}PYhWsSKhhRYdTAoXklLHqRifXkTB_sFIcTseGp{OynbXKNa?OaP`_pGi@OiYTSIBggDP\Miwa?QEPVPIcYrZa?zNyDPaQTa{`g`OAFSIkVbRePLPaOUYzWRWb?[EyORAtZChEHMKhgWKMC@FKXqSYfVkZBo^J`]ObG`gODopHYi[BbaorE`JLQfVzJb@\KXxPaNX{vHHTMYIRAyXcH@OfIPRIaDSsoExNK`dMyPXsUCqCPQ\TzY`WcChtRIjXRV`wZGhZNh}Nyfc`aNQJPaZUBXbw{GpXJQ}Yr`eWvFHIIPqSA`aokJIHRqkUZAc`cL@uNiWUywaGSDhNJyATQ~`_dJIJPy_WzGb_jHhyOqcVjM`HFJQATanUzSag\DGpRqgXbXbokDhMJhbVZVaO[IX^NICPR``ghNqERieTZe`xGJi`TAtVric?gHPsOawVZLaPTJ`uRQeXBW~~~") G8=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_GC_K@_SA_SA_SA_OE_[B@CB_[B_[B_cC_cC_cC_kD_gF_kD_kD_sE_sE_sE_{F_{F_{F`CG`CG`CGbSdFG|`GfD?|agxFk`E_|`gmFkvFkSFkKFsQFs[Dw}cW}e?pFsYD_obSYESY`WYBcYF@AbobEo~GcOC?pFO~fW~aoyF{lGCiGC]Cp?eh?`weGCiGKPGKcDh@G[MDX@f@@c_iFXAaWWGShFPAepA`O\G[UBxBaOqEhBbgrG[JG[eF`CcOjGcIDPCd`CbWjGcgEkXJPhLc`Gh[LclHphLcLFHkao\KxkfXLLcaGxlcwmLkTC_oEHlex`LkgJx`d?wFcgKSgECgL@oaguI`eLpqa_vFPIIpmb?cLPma`NLsJK@nb?sL{PKhnaW]HHZL{_EhJehXK@pawZEhGJstLCRE`XLPodxKI@oa?SEX\MCZCpeMCMC`EIXpcXNIhp`WNChp``ZLXqd`WJpq`O_DGsGpqbwqJxqc?hJ`d`XVMYEQ[qFHhQ[rHxRPyR`WRLPyQ[WC@WMc_COvHpXKK_E@fP[QJaHP[QF`[KKOB`[QATa_lHhfMySb?oI@XQQSaGpHhzQcdDGkPSNB_hE@OKcUDHJ`_hH`SMqDdxUKhw`HQKhtPCbFPdQCVDpxNaTdPIHhbOyTaxQJYMQkNBHGJH~QsKAOTNY@QsdHHYQszGyDQ{XGpUJhcQ{uIhaPIV`OUIp\OsdEqARAeUK[EHbNX~TqpchKQQ[UKPDxUKINTSIAWfF`IOsaHh_NQNRYqexJNQ\USKCXYJh^TK\CxHJh`NcrGx\NI?RSUEPDNqX`OsMxyPif`GIAH}Oild`YMqCU[rLPsUcXBglIIFUcaKq@PagUclGpNOyebo{JPeSY{W[fEyLRi_WBB`wZBwyJPxUBBcWlDpJPYmVs`GpKLXvSsVJ@yPQ[TrCagcGyCOyHVkJCHRMqFP[MB@bMaFSIta?eHxaMY^dOrGhEHY^V{KJyCRQdWkXK@zSy{f@SLYCPrLYC^CGnKykUqwYCMA`HIPTObAYCLAh_NAiWBMbGzIxxRY{`GZOY[TJ?YKQHpXMadSygchVNyYSyiepIJXzPaWbGsEpbMXwX{OFXgOAdTjXa?[Do{IhVPzG`wOH@LMp}OIdbwcDWxHqIVrY`_MAxPLQAXkZBxDIQcVjZbokKpvOi\T[iDWnIHcKqLRCLCxILY@OQmYkHGxGNiQSZXaOkIPTMX}V[aEGrI`^PqZUs\BomE`]NiMTc`FGzMyaSZ?Z{wGhsMi]UB`awvJ@bOAHTjG`g[IXSKaGRqlbwwIxhLQZVRc`HfOYLSIgVzTbgfEOxNy?Uy~axTLAAQIQXZhcHRKPhSA`XJN`GaOIOSYnUBWdxVNyKQIwVJUaGRF@DJAaWJAdo{OQ_TYnXR_`wyHXKL@rOYy`gpLYbVB@Yzda`HN@xQAWSbJ`oRBojHhuVZWaHGH`SJpyRRKcXJMhxOAGRat`oTBWqNAXSJFcojH@MIPaVJS~~~") G12=Graph(r":~?B|_C?_C?_C?_C?_K@_K@?[@_K@_SA_SA_SA_OD_[B_[B_[B__F_cC_cC_cC_kD_kD_kD_sE_sE@CE_sE_{F_{F_{F`CG`CG`CGb?YCKMCoqFG|e?|aoxFkNEGrFkvFk]C?jFsOA_[FsTD_mFsQBg~`gtF{VF_~fO~cg{F{cFx@bwtGCtGCZBp?bgnGCHGCWb?wF[RBCIBCWbCRBGaDx@a`@aWlGKiEpAaGhGS`GS]C`A`_OGSjGSYDsYFSJBOmFcQBSYCWfFCYBk`CWgcK`cGicGsaomHpSeXCKHgL[VBwaJxj`_wHXgL[IKpj`gbIHRJPke?zGpOLc[HPZJhk`GME`cLkzLHl`gQDopLkSEguK`magcHxPLsREPmaobaoXKxiaouHKJAsbDpHHhTJsHDpHJcvKhnb`FJHnaGpIHnbGxGpnbG_JPne`MJkSHphdHGHsNHpUK{\F`SIpWahSehSexSd`SK[cKPpOiIc`KIPTO[cFGyKxtPSHC_ePCMDxUNHzNyLax^LPwPkaD`OOA@PklEPCKYFPsPLQJPsMAXGJh_PsPAWoK`dOyN`_pHPxP{OE`JIs[CXJHiHPcODPJKhsaHBH[kIp\M`uNaA`OqJhsa?ZEo{KqOfXFK@xQCPAwXHhgQCjHhRNyOfXbMy@e@vP[^JHva?]CwpQQceGwNP{SSfEHgLIHQsyHaBPae`HTJXwSAeah[KHpOqfd@FPafbxCHI@OafagZGxHJyFTCaFH_RIgc?dDHOIptMsZB_vGptQkeDx`OITd`iOqWSCSD@^RCSIP}RCNGpPKAhUcuFX_KyYRcNCh_PQJTkhF@hSQueOsFP{OAu`PIOiQSivdHWMYvahIHxrMaBVCQDXTLACVCVHxOKqUTc_EX]Oi_TcsJYKSin`WoJABT{oNQ]T{VGhxOaxWSLDhdLQCPIocwgFXDIyC`WuJHfPZC`H`KXhRbCcOeSahUjD`_aHQSQiaWs_H@YNaISZE`_iH`wPAlVcsIXaOQcVchKY?Ui}`W{JyYUQ}dXKMQXSZF`oRBWdJaKS[NJ@iMP|S[gGXdNqHYCLBGbEQDOqJYCrIisVJBYKaDOuFHTTYkYS^CxRNy[UZQbolKXzSIs`G[JIEWZJaOwJQRUZR`OJDHCHHNIyrbWdJ@oRrY`ogHhUKIcSjYd_vIhdL@{VY{`gND`QNY^WKtIH[OqZWSXEPONqdXzVa_nH@fNyiWJ[`_eGXXMHsNj@bWlJXeNaIRbH`o\GhZNQZXsIDOjK`xSipc@LKHwRqtZ{^DwoJqHRyyXsrFHoNqQQi\XsLCxNJa?PA[YkeExYOyXUi~fPRMqDURB[k\ChQJp^ORGZKPKPgQI]TIkZKQAgrKp~WZKb`hNYVSb?X{OBpFPQqVI{[K_IAJRYmUbLcwlGpPMZ?Wzfd@RNApVjAZCNAx[NISXjR\cjFPWNY~XR_`PDHaXTZWZboaOeDwwMQz[BqeXGJpfQZH[rsbxaOQHTRT\Zu`W]CgiIQ`VRnegvF`BIHVNRG~~~") G13=Graph(r":~?B|_C?_C?_C?_C?_K@?{@_K@_K@_SA_SA_OC_SA_[B?sB_[B_[B_cC_cC_cC_kD_kD_gG_kD_sE_sE_sE_{F_{F_{F`CG`CG`CGa?PD{OBCOF[OC_kEkLACOBoiF[OC{YBgaFkvFkhFkXC?dEO|`OdFkrFsbD?}`WyFshFG}`_MEw}GChFsaEG~b_eF{dDg~co~cO~`o_F{`FO{GCHAw[GCZBw_GCXD@@fH@d?oGKeGK^GHBe`@bXA``AepAdpA`xBbPBdXBc?rG[qF@B`xHHP`bwzHKTCPHJ@]dWoF`FHKLC`HKk{HHZbgtIHSK{mEwwJhfaOkI@XK{PCHXK{RBHgcxDLCHJhcLCnGpaL@hbOdJhg`GrIXYeXXJ{rJSeEWtd_nE[fIpeLKID`QIhh``OJ`iawhDP[LSSEPifHQL[[FPEL[UEHjdgxK@jawmH@k`WZIHkb_]LcRBGbD`kaPbLc^H@pO[mIhdMKmEhMMH|OC]DPeLxp`WoKppahSMxyPKeEx_KPbNyHdXJJpuPKjEGsHPUPK`H`OPSNEpZPSMD@CNyEPSZIHXNyI`oRDgwG`xNsRDY@`ORNsKAWTJSRCh]KKaJYGP[MAH]N@zP[{GpuPcLF`NJiKaPLPcMBHcNCXBWfIXmbG`JxcOSVHx_MALawbGhQMyLc_sIYLe`KI@VJqL`H_NYFQSTK@tQQ\SCLC_qFAGQAQdOpGiGQS`HpyQyYcHYKQAOaDR{]CGsMQ?QsUE@GS{nFP[Li^SifbOjIPvRyfdxKJxbLiXRsIBpKSKPHa]`W\E?tTCZDxIOAWRYgaxJMahdxOOqW`xNIxwQyia_lJ@xTSSBhrMp{OAi`HCOQZSsHF@MOQTU{H@WQGxWKYlfHUMiYUSSC`UQY_UKWDPoV[fF``PquVIzbovIHwQyuV[hEP`MY@OiMaGcCprdgqHPragiGhSVc^IP`SArUa{dpNMQ|bP`MqdU[uG`DHXnNiDV{aCWxKaTWcaHhWTqvW[LBgbFYP`_\JXeOYjXC\C`aMyWURGaP\OYSSIcT[QBx^QcL@wYHpybPTNABUzDWsNAplMQORicXcgEhVKaEUCbEhsNj?XJOe?uGpSPAaVsuI`WOaVUZCcpJNyaTywVsvIHzRAaXJPYSWF@GPqRTiwYsTJ`{OqdWSTDgmIy\XjX`WUB_iLpyX[UD@yNibURD`O[JPqRz@X[[CglFPaMyZU[IFXbMAjTq~Zk{Hq[SixX{_F@MJx_Nb_`gWGhRPyYYkWEH[RQ\WbPaHRNqRUrMYkfIXXJyCQysWkPKiDQI}WBK[cKKptUixZCbD`bMi@OQ[[{NFGzGxxTb[bXINI]TrGYz[dXZNI@SYqWrP`_sGqGQjFZ{VH@cKhnRJbbwqEpQRJ?ZrbbooEGyRI`WbQ`WSGpmUBR[shHxoOqFQBiaOUDHTNBL[jib?_HX\NYW\bnd_zMP~RYr]Brex]KiRRysWjse`aOAFTquWrPa_yOa_Sr?XBQcgfEpLSYvVRL`oUC?pJHZMbH~~~") G16=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_GF_K@_SA_SA_SA?sA_[B_[B_[B_WD_cC@CC_cC_cC_kD_kD_kD_sE_sE_sE_{F_{F_{F`CG`CG`CG`gRf_|bwlFkZBo|cG{FkVB__FkhFkRCSRA_taWXaWdEoxGSRFSRCOmFCMBGYFsWC_}dW}cgqFsbFscD_}`gc`ge`gX`gw`gkGCYFxB`G~`GtF{gE_~coiEG~cx?``?eH?ex?bgmGKiGKtGKSGKjGKQGSfFOzGSnGSbG[XFHBcWpEXBcOoG[PDxB`OdIh_bwdISdDGvIsdDhOI[IBWdE[nHhVa_[HhMaxLJPgLsNApLLK`HhVK{J@_WGxXbobDXF`GkE@FJxke_zG`jb_kG`ja?YJ`dL[]Eh\KXja`ZLcpH@k`opKXk`WmKpkbO`CPSLkUB_cE`lagsHpleH]LkQH`mehZLHiLsMKHmfPWL{_J@bL{PIxaL{oHX`L{I@onGhYOKQEpTJSHBXYKpwagxJP_Mk_GhQJSfKHxcwgE@MI[YCxONaGPsfHHNPKfEXUNKoGpGIHqN[OBxWJpq`WvG`^KPqPcWIX^MAJb_^NyCP[KHp|PcmF@bMYKcHEOyKa`NIXXKiLd?{KiLdXbOALbgaHaM`w[NiHPQMfPhNQN`_lNQCP{PF@JNIBP{eF@aOQN`OVH`{dxCIP{O{KF?{L@{OITdguMH{cWyJYARCXC_gFHZJ`adPZMacc?mJXwRCqKPrMqQRKvGpeMABQQea_vFHPQCSDXRIi[SCcD@GRYecGsKyCQYeePUSQedOxHpzOqfb?hJaES{H@wyJqCS{UBhSIyg`ozLIHTKMH@_SAha?eHXfRA^TKJBpfOY]TK\FXDIAYcOuKHoRQadGkH@fPAYRimaGUAx_QIYb@WLH|Rqo`wjJh|QazcGlDx|UCKKaBQYUUKKEPeOyORy|`OxHp]Uawe@XJ`rUY|a?rIpdSAkVkTD@\LAXVsTBXPNq}boeDorHQoUz?bwrGq^Ur?fPSLPpMiqaxVOQOUQxbWrJxrSYqUjCcXPNQHRYubGbIp_KIZbPGOi^TbE`wgD_zGhgOCWKPzNqRXBLc@INAEVBAXk{J`~PApXsOAO{IPuXs_C_qIivXSPI@xRqiW{_ExQQYyWzHYSMJ@uSarXSHHH[JxiMIGaOoIIBRIkYkhNq[SZEZKhEguHPKQrX`OXCOlJHcY{NAolEpeTbSYsvG`sNqIQIbaOWBYsVRRaxHHx_OzAZj]aPeMASSijVSUFXKIHQZciDWmI@sOIa[[UEHKOyOTi{bguHxiMracH\JptQa\VJe`W\HxbSQiWZKawiIaIQrdaHUNy?QilUjhdPEIaCVJ@YJWbPOJhvSjg`HJNA[TrBXJkaGqE`\My_YB_conGasWbPYrnehJK`dNyVVBZ`W]E_zKHoYR]a?[CokOiERan`w^GpdLQAQBbag]HPRJy`UbDePHIiEPQ]TRe`OTK`sSiuWJhf`DOiSVbIYBkdHpSIlXbVZZn`WOBWwQJBZB^~~~") G18=Graph(r":~?B|_C?_C?_C?_C?_K@_K@_K@_GD_SA_SA@CA_SA_[B_WE_[B_[B_cC_cC__F_cC_kD_kD_kD_sE_sE_sE_{F_{F_{F`CG`CG`CG`GJCCfEGrFkSDGmE_|ew|aG|a_XFkRAw}bW}`gVCWwFsjFp?`_YBW~bo^FW~bgyF_~cC_GK_c?xc?uc?cDkHA?T`KHA{HCsH`KWCP?cgtGCQE@?`OQGCUGC[D`@fX@eOxGK^DX@`wYGKJCSJAsJAgcD{JFSJBCJAOiFSMBxAehAcOwGS`EhAd@Aaw[Ex_KSVDHXJpbaws`oVDGoH[SAojHPj``LL[fHPSKpjdwpH`LLcjI@PLHk`PNL@iLcUISlIPlcGnISzIPfepQKkcChQIh\`wmGXGcHBdOqGXI``BI{KD@B`PMJ`l`wxLHlbp`Kxld@PJXl`wTGpKLkODgnGhHaGQEhDH@TcoiD`DGxYLCrIHma@cLs{IXcLsLBHIHqEbWwHPXO[OEPIK[rHPXJxucOhHHZMiJagpNAJextNyGP[PK@vNAKepZNX{PQK`ooG`yPcIHH|aHRNkzLH|PKRDxTIp|OStIXnb?dEGyL{NEHWL{kG`xOIL`_cGpfPQLcpWNa?Pk[GpGMyLaGmJhpMcRE`FK`pM[MBhVJP[MHqcoxFXaNaMcWmPsbF`iNqM`OfHXtNI`bXLKptRsmF@`MkZEOtKPtOclH@_QyebGcQiZSYe`gcCgsQqVS{jKi?RIdS{]EX^MAWS{UFXCMcUE_uNsULIISckK`}P{YFHEKANaOiJ`oRigb_pIiHSigbO^IyXRagb`MMYUTCeE`]OQPQcSCXbMQPQ[WBgrHy@QIQf`SJqhbokE@SLQYTKiExCMqTVKTD`LNAGQiuep]KqDQkgHh`KaEQi^`g]JhrUI|ehJIinUY|cxTIpbUApVseHHhMAS`O`CX[RSI@g[H`fcHFJQ@QAtV{RChMKAcVa~b?zH`PUQsV{OIxbOYjTshF@SQQjTkaE@OJ`^Nz?bGqJPoTzJcHdOYGSAn`wbJ@wOi`TyvcgfF`OOQRXkRBxcMrCWrLdhVMaIQAmaOaG`RIa@cxCHpvPK\IXqRiiXBM`gSIpxVZKXsTB?mFA]WSkJHeNykWS\HX`QBCZCYEpEIaVSAxWcOExULPzTjXa_bEOxIJQYbXagWJiSSiiexoNIUSceHx}QQtWJUbWlJaGRZBYK[H`dNypVBJYShDhSKHfNb\ZsXDQOUAzf`MMyFRZIZB\bpXJh~OiHRJbd?yHXYTS]LPxQqaUZV[CZIAARY_Saq[s\J@gMr@bwiE?xIAoVREa@LNYrVAzWjh`oQBOqHzOc_yIHYJxfNZSd?jDpwWrIYZkeXFH``NRZbgjIhgNaCPJ]``WJX]QzSYzn`oRHxZRI^SbbbO^DwpOABUJ]a_rNQ?UQvVZeaG{H`PKA[Rrbd?hEpaRA[Wjh`gsLPvNasUrecwoKYURJFXJhcGvF@^UAqYjkbGyIXeObDZzncgnHXgNqGRzR`_MAHUMqYSYv~~~") # List of graphs to process graphs = [ ('GCM ', GCM), ('Gsamp ', Gsamp), ('G2 ', G2),('G3 ', G3),('G4 ', G4),('G6 ', G6), ('G8 ', G8),('G12 ', G12),('G13 ', G13),('G16 ', G16),('G18 ', G18)] 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="") else: print(f"\n{label_i} is NOT isomorphic to {label_j}") print() # Newline at the end 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 graphs\n") for label, graph in graphs: print(f"{label} | Order: {graph.order()} / Size: {graph.size()} / 8-reg.? {graph.is_regular(k=8)} " f" / Diam.: {graph.diameter()} / Avg.dist: {graph.average_distance().n(digits=6)} / Girth: {graph.girth()} " f" / Alg.connect. {algebraic_connectivity(graph).n(digits=6)} ") # Domin. number: {domination_number(graph)}" print("\n Symmetry properties of the graphs\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()}" ) # Check isomorphisms # print(f"Are isomorphic G5 and G6? {G5.is_isomorphic(G6)}") check_all_isomorphisms(graphs) # 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 graphs: print(f"{label} distance distrib. from vertex 0: {distance_distribution(graph, 0)}") # Counting k-cycles for each graph print("\nNumber of k-cycles for k=3 up to 6") for label, graph in [('GCM ', GCM), ('Gsamp ', Gsamp), ('G2 ', G2)]: print(f"{label} ", " ".join(str(count_k_cycles(graph, k)) for k in range(3, 7))) ##