عملیات برای هممورفیسم های گروهی در GAP
عملیات برای هممورفیسم های گروهی
هممورفیسمهای گروهی نگاشت هستند، بنابراین تمام عملیات و ویژگیهای نگاشتهایی که در فصل 32 توضیح داده شده است ، برای آنها قابل استفاده است. (اما اغلب روش های بسیار بهتری نسبت به نقشه برداری های عمومی موجود است.)
هممورفیسم های گروهی تنها با نگاشت مجموعه ای از ژنراتورها، گروه ها را به گروه ها ترسیم می کند.
KernelOfMultiplicativeGeneralMapping( 32.9-5 ) را می توان برای محاسبه هسته هممورفیسم گروهی استفاده کرد.
gap> hom:=GroupHomomorphismByImages(g,h,gens,[(1,2),(1,3)]);
gap> Kernel(hom);
گروه([ (1،4)(2،3)، (1،2) (3،4) ])
هممورفیسم ها می توانند بین گروه ها در نمایش های مختلف نقشه برداری کنند و همچنین برای به دست آوردن گروه های هم شکل در یک نمایش متفاوت استفاده می شوند.
gap> m1:=[[0,-1],[1,0]];;m2:=[[0,-1],[1,1]];
gap> sl2z:=Group(m1,m2); # SL(2,Integers) به عنوان
شکاف گروه ماتریس > F:=FreeGroup(2);;
gap> psl2z:=F/[F.1^2,F.2^3]; #PSL(2,Z) به عنوان گروه FP
< گروه fp در ژنراتورها [ f1, f2 ]> gap> phom:=GroupHomomorphismByImagesNC(sl2z,psl2z,[m1,m2], > GeneratorsOfGroup(psl2z)); # نسخه غیر NC گران خواهد بود
[ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, 1 ] ] ] -> [ f1, f2 ] gap> Kernel (phom)؛ # ماتریس مورب
گروه ([[[-1، 0]، [0، -1]]، [[-1، 0]، [0، -1]]]) شکاف> P1: = (1،2) (3,4);;p2:=(2,4,5);;a5:=گروه(p1,p2);; شکاف>
ahom:=GroupHomomorphismByImages(psl2z,a5,
> GeneratorsOfGroup(psl2z),[p1,p2]); # در اینجا تست هممورفیسم ارزان است.
[ f1, f2 ] -> [ (1,2)(3,4), (2,4,5) ] gap> u:=PreImage(ahom,Group((1,2,3),(1,2 )(4،5)));
Group() gap> Index(psl2z,u);
10 gap> isofp:=IsomorphismFpGroup(u);; تصویر (isofp)؛
<گروه fp بی نهایت اندازه در ژنراتورها [ F1, F2, F3, F4 ]> gap> RelatorsOfFpGroup(Image(isofp));
[ F1^2, F4^2, F3^3 ] gap> up:=PreImage(phom,u);; gap> List(GeneratorsOfGroup(up),TraceMat);
[ -2، -2، 0، -4، 1، 0 ]
برای automorphism aut ، Inverse( 31.10-8 ) automorphism معکوس aut ^{-1} را برمی گرداند . با این حال، اگر hom هممورفیسم دو شکلی بین گروههای مختلف باشد، یا اگر hom تزریقی باشد و بهعنوان بیجکشن تصویر آن در نظر گرفته شود، باید از عملیات InverseGeneralMapping( 32.2-3 ) استفاده شود. ( برای بحث بیشتر در مورد این مشکل Inverse( 31.10-8 ) را ببینید .)
gap> iso:=IsomorphismPcGroup(g);
Pcgs([ (3،4)، (2،4،3)، (1،4)(2،3)، (1،3)(2،4) ]) -> [ f1، f2، f3، f4 ] gap> Inverse(iso);
#I نقشه برداری باید دوطرفه باشد و منبع=محدوده داشته باشد
#I ممکن است بخواهید از 'InverseGeneralMapping'
fail gap> InverseGeneralMapping(iso);
[ f1، f2، f3، f4 ] -> Pcgs([ (3،4)، (2،4،3)، (1،4)(2،3)، (1،3)(2،4) ] )
40.3 کارایی هممورفیسم ها
GAP اجازه ایجاد هم شکلی بین گروه های دلخواه را می دهد. این بخش کارایی پیاده سازی را در نظر می گیرد و راه هایی را نشان می دهد که چگونه نمایش های مناسب را انتخاب کنید. برای گروههای جایگشت (نگاه کنید به 43 ) یا گروههای رایانه شخصی (نگاه کنید به 46 ) این معمولاً جای نگرانی نیست، مگر اینکه گروهها بسیار بزرگ شوند. با این حال، برای گروه های دیگر، محاسبات خاص ممکن است گران باشد و برخی اقدامات احتیاطی ممکن است برای جلوگیری از محاسبات گران غیر ضروری مورد نیاز باشد.
به طور خلاصه، همیشه ارزش این را دارد که به نقشهبرداری بگوییم که یک هممورفیسم است (این را میتوان با فراخوانی انجام داد SetIsMapping) (یا ایجاد آن مستقیماً با GroupHomomorphismByImagesNC( 40.1-2 )).
عملیات اساسی مورد نیاز عبارتند از محاسبه تصویر و تصویر اولیه از عناصر و آزمایش اینکه آیا یک نقشه برداری یک هممورفیسم است یا خیر. هزینه آنها بسته به نوع نقشه برداری متفاوت خواهد بود.
40.3-1 نگاشتهای داده شده روی ژنراتورها
مشاهده GroupHomomorphismByImages( 40.1-1 ) و GroupGeneralMappingByImages( 40.1-3 ).
محاسبات تصاویر نیاز به بیان یک عنصر از منبع به عنوان کلمه در مولدها دارد. اگر نمی توان آن را به طور موثر انجام داد (این توسط KnowsHowToDecompose( 39.26-7 تعیین می شود ) که به trueعنوان مثال برای گروه های جایگشت دلخواه، برای گروه های PC یا برای گروه هایی که به طور محدود با تصاویر ژنراتورهای آزاد ارائه می شوند، باز می گردد) باید فاصله ژنراتورها محاسبه شود. از نظر عنصری که می تواند بسیار گران و حافظه مصرف کند.
محاسبات پیشتصاویر از قوانین یکسانی با نقشهای جایگزین ژنراتورها و تصاویر آنها تبعیت میکند.
آزمایش اینکه آیا یک نقشهبرداری هممورفیسم است یا خیر، مستلزم محاسبه یک ارائه برای منبع و ارزیابی مرتبطهای آن در تصاویر مولدهای آن است. برای گروههای بزرگتر، این میتواند گران باشد و اگر نقشهبرداری به عنوان هممورفیسم شناخته شود، باید از GroupHomomorphismByImagesNC( 40.1-2 ) استفاده شود.