Skip to content
This repository

Centralizers, improved normal closure & applications #1495

Merged
merged 18 commits into from over 1 year ago

7 participants

Aleksandar Makelov Don't Add Me To Your Organization a.k.a The Travis Bot Stefan Krastanov david joyner Aaron Meurer Christopher Smith Coveralls
Aleksandar Makelov

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

Don't Add Me To Your Organization a.k.a The Travis Bot

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

Stefan 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.

Don't Add Me To Your Organization a.k.a The Travis Bot

This pull request passes (merged babfccb into a35203f).

Don't Add Me To Your Organization a.k.a The Travis Bot

This pull request passes (merged c232fb2 into a35203f).

Stefan 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.

Don't Add Me To Your Organization a.k.a The Travis Bot

This pull request passes (merged c97bcf35 into a35203f).

Stefan 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: c97bcf3

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.

Don't Add Me To Your Organization a.k.a The Travis Bot

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

david joyner

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

Stefan Krastanov
Collaborator

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

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

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.

Aaron Meurer
Owner

@amakelov is this ready to be merged?

added some commits August 06, 2012
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
Aleksandar Makelov

Yes. I just rebased it over the current master.

Don't Add Me To Your Organization a.k.a The Travis Bot

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

Stefan 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.

Aaron Meurer
Owner

Ok, merging it now...

Aaron Meurer asmeurer merged commit 00abb2f into from August 20, 2012
Aaron Meurer asmeurer closed this August 20, 2012
Aleksandar Makelov

Thanks! :)

Christopher Smith
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.

Aleksandar Makelov
Christopher Smith
Collaborator
Christopher Smith
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

Showing 18 unique commits by 1 author.

Aug 20, 2012
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
Something went wrong with that request. Please try again.