Network analysis of category of groups
up vote
0
down vote
favorite
I am taking a course in Network Analysis at my university and I would like to do something related to category theory in my home project. To be more precise, I would like to take some amount of finite groups and construct a graph with edges connecting two groups if there is a homomorphism from one group to the other, with edge weight dependent on the kernel of the homomorphism. Who knows, maybe something interesting will surface. For instance, I wonder if clustering this graph would do something meaningful, i.e. separate the symmetric groups into one cluster.
Is there some software that can help me iterate over finite groups and construct all the homomorphisms between them? I have no idea how computationally difficult group-theoretic problems are.
soft-question math-software gap computational-algebra
add a comment |
up vote
0
down vote
favorite
I am taking a course in Network Analysis at my university and I would like to do something related to category theory in my home project. To be more precise, I would like to take some amount of finite groups and construct a graph with edges connecting two groups if there is a homomorphism from one group to the other, with edge weight dependent on the kernel of the homomorphism. Who knows, maybe something interesting will surface. For instance, I wonder if clustering this graph would do something meaningful, i.e. separate the symmetric groups into one cluster.
Is there some software that can help me iterate over finite groups and construct all the homomorphisms between them? I have no idea how computationally difficult group-theoretic problems are.
soft-question math-software gap computational-algebra
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am taking a course in Network Analysis at my university and I would like to do something related to category theory in my home project. To be more precise, I would like to take some amount of finite groups and construct a graph with edges connecting two groups if there is a homomorphism from one group to the other, with edge weight dependent on the kernel of the homomorphism. Who knows, maybe something interesting will surface. For instance, I wonder if clustering this graph would do something meaningful, i.e. separate the symmetric groups into one cluster.
Is there some software that can help me iterate over finite groups and construct all the homomorphisms between them? I have no idea how computationally difficult group-theoretic problems are.
soft-question math-software gap computational-algebra
I am taking a course in Network Analysis at my university and I would like to do something related to category theory in my home project. To be more precise, I would like to take some amount of finite groups and construct a graph with edges connecting two groups if there is a homomorphism from one group to the other, with edge weight dependent on the kernel of the homomorphism. Who knows, maybe something interesting will surface. For instance, I wonder if clustering this graph would do something meaningful, i.e. separate the symmetric groups into one cluster.
Is there some software that can help me iterate over finite groups and construct all the homomorphisms between them? I have no idea how computationally difficult group-theoretic problems are.
soft-question math-software gap computational-algebra
soft-question math-software gap computational-algebra
edited 20 hours ago
Alexander Konovalov
4,97221956
4,97221956
asked 23 hours ago
Serg
540315
540315
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago
add a comment |
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
GAP has a function AllHomomorphismClasses
that determines homomorphisms between groups up to equality of kernels and conjugacy of images. From that it would be easy to build a function as you suggest.
(There isn't anything magical behind that function, but it uses a fair amount of existing functionality so that it would not be feasible to try implementing it from scratch
However, in general there will be many homomorphisms -- e.g. $S_4$ has 5 homomorphism to itself, and cyclic images just indicate prime divisors of the commutator factor group.
You might want to limit to cases of "small" (whatever that means) kernels, and might want impose further restrictions, e.g. symmetrize and check whether there are such homomorphisms in both directions.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
GAP has a function AllHomomorphismClasses
that determines homomorphisms between groups up to equality of kernels and conjugacy of images. From that it would be easy to build a function as you suggest.
(There isn't anything magical behind that function, but it uses a fair amount of existing functionality so that it would not be feasible to try implementing it from scratch
However, in general there will be many homomorphisms -- e.g. $S_4$ has 5 homomorphism to itself, and cyclic images just indicate prime divisors of the commutator factor group.
You might want to limit to cases of "small" (whatever that means) kernels, and might want impose further restrictions, e.g. symmetrize and check whether there are such homomorphisms in both directions.
add a comment |
up vote
1
down vote
GAP has a function AllHomomorphismClasses
that determines homomorphisms between groups up to equality of kernels and conjugacy of images. From that it would be easy to build a function as you suggest.
(There isn't anything magical behind that function, but it uses a fair amount of existing functionality so that it would not be feasible to try implementing it from scratch
However, in general there will be many homomorphisms -- e.g. $S_4$ has 5 homomorphism to itself, and cyclic images just indicate prime divisors of the commutator factor group.
You might want to limit to cases of "small" (whatever that means) kernels, and might want impose further restrictions, e.g. symmetrize and check whether there are such homomorphisms in both directions.
add a comment |
up vote
1
down vote
up vote
1
down vote
GAP has a function AllHomomorphismClasses
that determines homomorphisms between groups up to equality of kernels and conjugacy of images. From that it would be easy to build a function as you suggest.
(There isn't anything magical behind that function, but it uses a fair amount of existing functionality so that it would not be feasible to try implementing it from scratch
However, in general there will be many homomorphisms -- e.g. $S_4$ has 5 homomorphism to itself, and cyclic images just indicate prime divisors of the commutator factor group.
You might want to limit to cases of "small" (whatever that means) kernels, and might want impose further restrictions, e.g. symmetrize and check whether there are such homomorphisms in both directions.
GAP has a function AllHomomorphismClasses
that determines homomorphisms between groups up to equality of kernels and conjugacy of images. From that it would be easy to build a function as you suggest.
(There isn't anything magical behind that function, but it uses a fair amount of existing functionality so that it would not be feasible to try implementing it from scratch
However, in general there will be many homomorphisms -- e.g. $S_4$ has 5 homomorphism to itself, and cyclic images just indicate prime divisors of the commutator factor group.
You might want to limit to cases of "small" (whatever that means) kernels, and might want impose further restrictions, e.g. symmetrize and check whether there are such homomorphisms in both directions.
answered 7 hours ago
ahulpke
6,823926
6,823926
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2998521%2fnetwork-analysis-of-category-of-groups%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You can use GAP. See alex-konovalov.github.io/gap-lesson/05-small-groups which a part of an introductory lesson on programming with GAP. I think the idea of which graph to construct require some more thorough elaboration, though.
– Alexander Konovalov
20 hours ago
P.S. In case this may be useful: gap-system.org/ukrgap/gapbook/chap0.html and gap-system.org/ukrgap/Examples/Examples.htm
– Alexander Konovalov
20 hours ago