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.










share|cite|improve this question
























  • 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















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.










share|cite|improve this question
























  • 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













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.










share|cite|improve this question















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






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








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


















  • 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










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.






share|cite|improve this answer





















    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    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

























    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.






    share|cite|improve this answer

























      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.






      share|cite|improve this answer























        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.






        share|cite|improve this answer












        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.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered 7 hours ago









        ahulpke

        6,823926




        6,823926






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Quarter-circle Tiles

            build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

            Mont Emei