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?

amakelov added some commits
@amakelov amakelov Pointwise stabilizer, group centralizer. e8b0265
@amakelov amakelov Improved .centralizer(), started normal closure. 699595c
@amakelov amakelov A faster algorithm for normal closure. 0c5ecb5
@amakelov amakelov 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
@amakelov amakelov 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
@amakelov amakelov Restored alphabetical ordering in perm_groups.py fe7270a
@amakelov amakelov Commutator of two subgroups, derived series. 8050c65
@amakelov amakelov Lower central series e3b48c6
@amakelov amakelov Debugging in .centralizer(), docstrings. 8ba9892
@amakelov amakelov Debugging in subgroup_search. 45893b8
@amakelov amakelov Nilpotency testing, improved solvability testing.
And minor fixes in several docstrings.
dba132c
@amakelov amakelov 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
@amakelov amakelov 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
@amakelov amakelov More tests. ccb7847
@amakelov amakelov Added tests/docstrings for the new functions in testutil.py 6b8a887
@amakelov amakelov Fixed lines longer than 80 characters. 414e15b
@amakelov amakelov Prepared the docs for the new functions. c41edc6
@amakelov amakelov 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. @amakelov
  2. @amakelov
  3. @amakelov
  4. @amakelov

    Naive implementation of center, new file structure.

    amakelov 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. @amakelov

    Renamed .commutator() to .derived_subgroup()

    amakelov 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. @amakelov
  7. @amakelov
  8. @amakelov

    Lower central series

    amakelov authored
  9. @amakelov
  10. @amakelov

    Debugging in subgroup_search.

    amakelov authored
  11. @amakelov

    Nilpotency testing, improved solvability testing.

    amakelov authored
    And minor fixes in several docstrings.
  12. @amakelov

    Tests, new utility functions, triviality testing.

    amakelov 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. @amakelov

    More tests, new file structure.

    amakelov 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. @amakelov

    More tests.

    amakelov authored
  15. @amakelov
  16. @amakelov
  17. @amakelov
  18. @amakelov
Something went wrong with that request. Please try again.