Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Centralizers, improved normal closure & applications #1495

Merged
merged 18 commits into from

7 participants

@amakelov

Implemented an algorithm to compute centralizers of groups/subsets/elements within other groups, using a backtrack search .subgroup_search().

Improved the normal closure algorithm with some randomization, and added some applications - the derived and lower central series, nilpotency testing, etc.

Changed the file structure a bit by introducing some new files: sympy/combinatorics/group_constructs.py, which will host functions treating several groups equally, such as DirectProduct, and sympy/combinatorics/testutil.py which will host utility functions used exclusively for testing purposes (such as _verify_bsgs).

@travisbot

This pull request fails (merged 2ec4d27 into a35203f).

@Krastanov
Collaborator

SymPy Bot Summary: :red_circle: There were test failures.

@amakelov: Please fix the test failures.

Test command: setup.py test
master hash: a35203f
branch hash: 2ec4d27

Interpreter 1: :red_circle: There were test failures.

Interpreter: /usr/local/bin/python2.5 (2.5.6-final-0)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY4d0iDA

Interpreter 2: :red_circle: There were test failures.

Interpreter: /usr/bin/python2.7 (2.7.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYhbsjDA

Interpreter 3: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python3.2 (3.2.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYzIwjDA

Build HTML Docs: :red_circle: There were test failures.

Docs build command: make html-errors
Sphinx version: 1.1.3

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYkNYiDA

Automatic review by SymPy Bot.

@travisbot

This pull request passes (merged babfccb into a35203f).

@travisbot

This pull request passes (merged c232fb2 into a35203f).

@Krastanov
Collaborator

SymPy Bot Summary: :red_circle: There were test failures.

@amakelov: Please fix the test failures.

Test command: setup.py test
master hash: 5569bb2
branch hash: c232fb2

Interpreter 1: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/local/bin/python2.5 (2.5.6-final-0)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY5KsjDA

Interpreter 2: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python2.7 (2.7.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY0YwjDA

Interpreter 3: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python3.2 (3.2.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY6MIjDA

Build HTML Docs: :red_circle: There were test failures.

Docs build command: make html-errors
Sphinx version: 1.1.3

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYovUiDA

Automatic review by SymPy Bot.

@travisbot

This pull request passes (merged c97bcf35 into a35203f).

@Krastanov
Collaborator

SymPy Bot Summary: :red_circle: There were test failures.

@amakelov: Please fix the test failures.

Test command: setup.py test
master hash: 5569bb2
branch hash: c97bcf355315130989e1c7721ddff4accb2aa795

Interpreter 1: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/local/bin/python2.5 (2.5.6-final-0)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYs8YiDA

Interpreter 2: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python2.7 (2.7.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYiLsjDA

Interpreter 3: :red_circle: There were test failures.

Interpreter: /usr/bin/python3.2 (3.2.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYwPAhDA

Build HTML Docs: :red_circle: There were test failures.

Docs build command: make html-errors
Sphinx version: 1.1.3

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYssYiDA

Automatic review by SymPy Bot.

@travisbot

This pull request passes (merged 5dd357c9 into a35203f).

@wdjoyner

I downloaded and looked over the new code. This looks good to me.

@Krastanov
Collaborator

SymPy Bot Summary: :eight_spoked_asterisk: All tests have passed.

Test command: setup.py test
master hash: 5569bb2
branch hash: 5dd357c9034a205a120f641f397787bd7b9d4ca6

Interpreter 1: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/local/bin/python2.5 (2.5.6-final-0)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYpPUiDA

Interpreter 2: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python2.7 (2.7.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYy8ojDA

Interpreter 3: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python3.2 (3.2.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY1IwjDA

Build HTML Docs: :eight_spoked_asterisk: All tests have passed.

Docs build command: make html-errors
Sphinx version: 1.1.3

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY5asjDA

Automatic review by SymPy Bot.

@asmeurer
Owner

@amakelov is this ready to be merged?

Aleksandar M... added some commits
Aleksandar Makelov Pointwise stabilizer, group centralizer. e8b0265
Aleksandar Makelov Improved .centralizer(), started normal closure. 699595c
Aleksandar Makelov A faster algorithm for normal closure. 0c5ecb5
Aleksandar Makelov Naive implementation of center, new file structure.
Implemented an algorithm for finding the center of a permutation
group using .centralizer() in a straightforward way.

Moved the DirectProduct() function to a new file,
sympy/combinatorics/group_constructs.py
ca957dc
Aleksandar Makelov Renamed .commutator() to .derived_subgroup()
The commutator subgroup, also known as the derived subgroup,
is the group generated by all the commutators of the group.

The reason for the namechange is that the name commutator
will be used for a more general procedure.
7ef98bc
Aleksandar Makelov Restored alphabetical ordering in perm_groups.py fe7270a
Aleksandar Makelov Commutator of two subgroups, derived series. 8050c65
Aleksandar Makelov Lower central series e3b48c6
Aleksandar Makelov Debugging in .centralizer(), docstrings. 8ba9892
Aleksandar Makelov Debugging in subgroup_search. 45893b8
Aleksandar Makelov Nilpotency testing, improved solvability testing.
And minor fixes in several docstrings.
dba132c
Aleksandar Makelov Tests, new utility functions, triviality testing.
Started writing tests for the new functions (currently, there are
tests for .center() and .centralizer().

Wrote some new utility functions to help in the test process.

Wrote a method to test whether a permutation group is trivial.
16ca149
Aleksandar Makelov More tests, new file structure.
Added some more tests for the new functions and created a new file,
sympy/combinatorics/testutil.py that will accomodate utility functions
used specifically in testing functions from the combinatorics module
6382189
Aleksandar Makelov More tests. ccb7847
Aleksandar Makelov Added tests/docstrings for the new functions in testutil.py 6b8a887
Aleksandar Makelov Fixed lines longer than 80 characters. 414e15b
Aleksandar Makelov Prepared the docs for the new functions. c41edc6
Aleksandar Makelov Fixed a short underline in the doc files. 0bcb3ac
@amakelov

Yes. I just rebased it over the current master.

@travisbot

This pull request passes (merged 0bcb3ac into 5569bb2).

@Krastanov
Collaborator

SymPy Bot Summary: :eight_spoked_asterisk: All tests have passed.

Test command: setup.py test
master hash: 5569bb2
branch hash: 0bcb3ac

Interpreter 1: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/local/bin/python2.5 (2.5.6-final-0)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYi7sjDA

Interpreter 2: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python2.7 (2.7.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYmdojDA

Interpreter 3: :eight_spoked_asterisk: All tests have passed.

Interpreter: /usr/bin/python3.2 (3.2.3-candidate-2)
Architecture: Linux (64-bit)
Cache: yes

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sY8bYiDA

Build HTML Docs: :eight_spoked_asterisk: All tests have passed.

Docs build command: make html-errors
Sphinx version: 1.1.3

Test results html report: http://reviews.sympy.org/report/agZzeW1weTNyDAsSBFRhc2sYpfUiDA

Automatic review by SymPy Bot.

@asmeurer
Owner

Ok, merging it now...

@asmeurer asmeurer merged commit 00abb2f into sympy:master

1 check passed

Details default The Travis build passed
@amakelov

Thanks! :)

@smichr
Collaborator

@amakelov , I didn't realize how recently your own work went in. I made a lot of combinatorics changes elsewhere, however, in getting Saptarshi's summer's work ready to merge. I wonder if you could have a look at the changes and see if they look ok to you. I can also help if this breaks some of the things that you are working on this summer if needed. It's at #1498.

@amakelov
@smichr
Collaborator
@smichr
Collaborator

I pulled your branch and rebased it on top of #1498 -- we were heading the same direction. Now only the array_form is stored and a size is always stored. In cyclic notation one has the option of specifying size but I think it's fine to do as you have done and just keep whatever ints they have given. A check for duplicates and a check for all integers being present for perms given in array form is good to keep. As David said, it's nice to know if you accidentally double entered something or mistyped a digit. But the allowing of auto-adjustment during multiplication is a nice addition. I added your week12 to my other work...if you could look at that other branch I think that would be a great "week 12's" work :-) But if you just want to keep the week12 branch separate, that's fine, too.

@coveralls

Coverage Status

Changes Unknown when pulling 0bcb3ac on amakelov:week10 into ** on sympy:master**.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Aug 20, 2012
  1. Pointwise stabilizer, group centralizer.

    Aleksandar Makelov authored
  2. Improved .centralizer(), started normal closure.

    Aleksandar Makelov authored
  3. A faster algorithm for normal closure.

    Aleksandar Makelov authored
  4. Naive implementation of center, new file structure.

    Aleksandar Makelov authored
    Implemented an algorithm for finding the center of a permutation
    group using .centralizer() in a straightforward way.
    
    Moved the DirectProduct() function to a new file,
    sympy/combinatorics/group_constructs.py
  5. Renamed .commutator() to .derived_subgroup()

    Aleksandar Makelov authored
    The commutator subgroup, also known as the derived subgroup,
    is the group generated by all the commutators of the group.
    
    The reason for the namechange is that the name commutator
    will be used for a more general procedure.
  6. Restored alphabetical ordering in perm_groups.py

    Aleksandar Makelov authored
  7. Commutator of two subgroups, derived series.

    Aleksandar Makelov authored
  8. Lower central series

    Aleksandar Makelov authored
  9. Debugging in .centralizer(), docstrings.

    Aleksandar Makelov authored
  10. Debugging in subgroup_search.

    Aleksandar Makelov authored
  11. Nilpotency testing, improved solvability testing.

    Aleksandar Makelov authored
    And minor fixes in several docstrings.
  12. Tests, new utility functions, triviality testing.

    Aleksandar Makelov authored
    Started writing tests for the new functions (currently, there are
    tests for .center() and .centralizer().
    
    Wrote some new utility functions to help in the test process.
    
    Wrote a method to test whether a permutation group is trivial.
  13. More tests, new file structure.

    Aleksandar Makelov authored
    Added some more tests for the new functions and created a new file,
    sympy/combinatorics/testutil.py that will accomodate utility functions
    used specifically in testing functions from the combinatorics module
  14. More tests.

    Aleksandar Makelov authored
  15. Added tests/docstrings for the new functions in testutil.py

    Aleksandar Makelov authored
  16. Fixed lines longer than 80 characters.

    Aleksandar Makelov authored
  17. Prepared the docs for the new functions.

    Aleksandar Makelov authored
  18. Fixed a short underline in the doc files.

    Aleksandar Makelov authored
Something went wrong with that request. Please try again.