-
-
Notifications
You must be signed in to change notification settings - Fork 729
Irreducible factorization of pointed convex cones #41316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
orlitzky
wants to merge
7
commits into
sagemath:develop
Choose a base branch
from
orlitzky:irreducible-factors
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+281
−0
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Documentation preview for this PR (built with commit 38133b3; changes) is ready! 🎉 |
d4309e8 to
b844f90
Compare
Hauser and Güler's paper "Self-Scaled Barrier Functions on Symmetric Cones and Their Classification" is one of the many places where it is proved that pointed convex cones can be decomposed into irreducible factors. This one is nice because the proof is simple (linear algebra in R^n), and it provides uniqueness when the cone is solid.
The paper "Computing symmetry groups of polyhedra" by Bremner et al. sketches an algorithm for computing the irreducible factors of a polyhedral convex cone.
This was effectively suggested in PR 40367 to compute linear isomorphisms of cones. To find isomorphisms, we would like to decompose the cones into irreducible factors, and then look for isomorphisms between factors of the appropriate size. Since the isomorphism algorithm is combinatorial, it is better to work with lots of small cones than it is to work with one big cone. In any case, this is of independent interest and is not too hard to implement. Thanks to Dmitrii Pasechnik for the suggestion (and the algorithm).
Add a new method for people who don't care about the details of the factorization and who only need to know whether or not their cone is reducible.
Permutation invariant proper polyhedral cones and their Lyapunov rank, by Jeong and Gowda. There's a result in here that provides an example for the new is_reducible() method of polyhedral convex cones.
Combine two results from the literature to make a reducibility example out of cones.rearrangement().
b844f90 to
38133b3
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Every pointed convex cone can be factored in to a direct sum of irreducible (i.e. cannot be factored further) parts. When the cones are polyhedral (as they are in sage), this factorization can be computed. This PR adds two methods to cone objects:
irreducible_factors(), to return the factorizationis_reducible(), for when you only care about the number of irreducible componentsThere are many places in optimization, game theory, and even graph theory where some cone being irreducible is important. This was indirectly suggested by @dimpase in #40367 where factoring can decrease the time it takes to compute linear isomorphisms.