You are on page 1of 17

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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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);

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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);

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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;

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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;

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


Ö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;

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


Ö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)])

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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);

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


Karakter Tablosu

Display(CharacterTable(Grup));

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


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;
IsSolv(x) . . . end
Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)
gapi ct2:=CharacterTable("A5");
CharacterTable( "A5" )
gapi Display(ct2);
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
A5
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

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)


gapi c:=CharacterTable("M11");;
gapi Maxes(c);
[ ”A6.23 ”, ”L2(11)”, ”32 : Q8.2”, ”A5.2”, ”2.S4” ]

Erkan Murat TÜRKAN GAP (Grup, Algoritma ve Programlama)

You might also like