GAP (Grup, Algoritma ve Programlama)
Erkan Murat TÜRKAN
Orta Doğu Teknik Üniversitesi, Ankara
Grup/Temsil Kuramından Kesitler Feza Gürsey Enstitüsü, İstanbul
08 Şubat 2010
GAP ne için kullanılır?
Yapılacak ispatların doğruluğunu bazı gruplar üzerinde denemek
Gruplar Kuramı eğitiminde önemli görülen tanımların GAP ile somutlaştırılması
Grupların merak edilebilecek bazı özelliklerini incelemek
GAP’ta grup nasıl tanımlanır?
Üreteçlerle grup tanımlama gapi g:=Group((1,2,3,4,5),(1,2));
i Group([(1,2,3,4,5),(1,2)])
gapi h:=Group([[1,2,3],[1,2,1],[1,1,-1]]);;
Serbest Grup tanımlama ve bu serbest gruptan, üreteç ve bağıntılarla grup tanımlama
gapi g:=FreeGroup(2);
h free group on the generators [f1,f2] i gapi h := g /[g .17, g .22, g .2 ∗ g .1 ∗ g .2 ∗ g .1];
h fp group on the generators [f1,f2] i AllSmallGroups(Mertebe,Aranan Kriter);
Listeler ve Kümeler
Liste tanımlama a:=[];
b:=["elma",2,true,5,false];
Listeye nesne ekleme
Add(liste adı ,eklenecek nesne);
Listeye liste ekleme
Append(liste adı ,eklenecek liste);
Listeyi kümeye çevirmek Set(liste adı );
Kümeye eleman eklemek
AddSet(küme adı , eklenecek eleman);
Koşullu İfadeler
gapi if . . . koşul . . . then . . . yapılması istenen şeyler
i elif . . . başka bir koşul . . . then . . . yapılması istenen şeyler i else . . . yapılması istenen şeyler
i fi;
Döngüler
for döngüsü
gapi for . . . değişken . . . in . . . liste . . . do i yapılması istenen şey
i od;
while döngüsü
gapi while . . . koşul . . . do i yapılması istenen şey i od;
Örnek
gapi g:=SymmetricGroup(7);
Sym([1..7]) gapi a:=(1,2,3,5)(4,6);
(1,2,3,5)(4,6) gapi b:=[];
[]
gapi for x in g do
i if a ∗ x = x ∗ a then i AddSet(b,x);
i fi;
i od;
Vektörler ve Matrisler
gapi v:=[2,1,3,4/5];;
gapi u:=[1,2,4,5];;
gapi 2*v;
[4,2,6,8/5]
gapi v*u;
20
gapi m:=[[1,1,-1],[2,0,4],[1,2,5]];;
gapi v*m;
[7,8,17]
gapi m*u;
[-1,18,25]
gapi m[1][3];
-1
Fonksiyonlar
gapi fonksiyona verilecek isim:=function(değişkenler) i local . . . fonksiyonda kullanılacak diğer değişkenler;
i değişkenlerle yapılacak işlemler
i return . . . fonsiyonun vermesi istenen sonuç;
i end;
function( değişkenler ) . . . end
Örnek
gapi cent:=function(g,x) i local i,a;
i a:=[];
i for i in g do i if x ∗ i = i ∗ x then i AddSet(a,i);
i fi;
i od;
i return a;
i end;
function( g,x ) . . . end
gapi cent(SymmetricGroup(5),(1,2));
Group([(1,2),(3,5),(4,5)])
Bazı ön tanımlı Fonksiyonlar
Center IsSolvable IsNilpotent IsSimple IsSubgroup Order
ConjugacyClasses RightTransversal
Aranan bir fonksiyonun GAP’ta tanımlı olup olmadığına
?Aranan fonksiyonun adı şeklinde bakılabilir
Yapı Dönüşümleri
GroupHomomorphismByImages(Tanım Grubu, Görüntü Grubu, Tanım Grubunun üreteçleri, üreteçlerin görüntüleri);
Image(yapı dönüşümünün adı , görüntüsü aranan eleman);
Kernel(yapı dönüşümünün adı);
PreImage(yapı dönüşümünün adı, ters görüntüsü aranan eleman);
PreImageRepresentative(yapı dönüşümünün adı, ters görüntüsü aranan eleman);
IsomorphismGroups(grup 1, grup 2);
Karakter Tablosu
Display(CharacterTable(Grup));
gapi comm:=function(x) i local a,i,j;
i a:=[];
i for i in x do i for j in x do
i AddSet(a,iˆ-1*jˆ-1*i*j);
i od;
i od;
i return Group(a);
i end;
comm(x) . . . end
gapi IsSolv:=function(x) i local a,b,i;
i a:=x;
i b:=comm(x);
i i:=0;
i while not (Size(a)=Size(b)) do i a:=b;
i b:=comm(a);
i i:=i+1;
i od;
i if Size(a)=1 then
i Print(x," is solvable with solvability length ",i,"\ n");
i else
i Print(x," is not solvable\ n") i fi;
i end;
gapi ct2:=CharacterTable("A5");
CharacterTable( "A5" ) gapi Display(ct2);
A5
2 2 2 . . .
3 1 . 1 . .
5 1 . . 1 1
1a 2a 3a 5a 5b
2P 1a 1a 3a 5b 5a
3P 1a 2a 1a 5b 5a
5P 1a 2a 3a 1a 1a
X .1 1 1 1 1 1
X .2 3 −1 . A ∗A
X .3 3 −1 . ∗A A
X .4 4 . 1 −1 −1
X .5 5 1 −1 . .
A = -E(5)-E(5)ˆ4 = (1-ER(5))/2 = -b5
gapi c:=CharacterTable("M11");;
gapi Maxes(c);
[ ”A6.23”, ”L2(11)”, ”32: Q8.2”, ”A5.2”, ”2.S 4” ]