Skip to content

Conversation

gmou3
Copy link
Contributor

@gmou3 gmou3 commented Dec 25, 2023

Added three functions to the main matroid class.

These correspond to two connectivity check algorithms, is_paving() and is_sparse_paving(), and a miscellaneous function automorphism_group(). These are all standard and regularly used notions in matroid theory.

📝 Checklist

  • The title is concise, informative, and self-explanatory.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

@tscrim tscrim self-requested a review December 28, 2023 23:52
Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few small doc changes. Otherwise LGTM.

@tscrim
Copy link
Collaborator

tscrim commented Dec 29, 2023

Thanks. Can you squish those commits into one with at least slightly more useful message (e.g., "changes suggested by the reviewer")? Then this will be a positive review.

<rant> I really hate GH's way of incorporating reviewer changes. The commits are usually far too small, the message is completely generic without saying why these were being changed. I want to apply copious amounts of fire and holy water to it and then launch it into the sun. </rant>

@gmou3 gmou3 force-pushed the is_paving_and_automorphism branch from 0ee3317 to e34645b Compare December 29, 2023 01:44
@gmou3 gmou3 requested a review from tscrim December 29, 2023 10:47
Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. LGTM.

Copy link

Documentation preview for this PR (built with commit e34645b; changes) is ready! 🎉

vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 2, 2024
sagemathgh-36962: Add is_(sparse_)paving() and automorphism_group()
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->
Added three functions to the main matroid class.

<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->
These correspond to two connectivity check algorithms, `is_paving()` and
`is_sparse_paving()`, and a miscellaneous function
`automorphism_group()`. These are all standard and regularly used
notions in matroid theory.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36962
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 5, 2024
sagemathgh-36962: Add is_(sparse_)paving() and automorphism_group()
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->
Added three functions to the main matroid class.

<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->
These correspond to two connectivity check algorithms, `is_paving()` and
`is_sparse_paving()`, and a miscellaneous function
`automorphism_group()`. These are all standard and regularly used
notions in matroid theory.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36962
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
@vbraun vbraun merged commit 974cf61 into sagemath:develop Jan 14, 2024
@gmou3 gmou3 deleted the is_paving_and_automorphism branch January 15, 2024 13:58
@dimpase
Copy link
Member

dimpase commented Jan 26, 2025

@gmou3 - where do you get this definition of sparse paving? People complain it's not correct, and I don't see any references to this added here.
Definitions found in https://doi.org/10.1016/j.ejc.2011.01.016
and https://www.sciencedirect.com/science/article/pii/S0196885812000802 look different.

@dimpase
Copy link
Member

dimpase commented Jan 27, 2025

There is also a missing reference to paving definition. One can refer to [Oxl2011], p.24.

vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 4, 2025
sagemathgh-39382: Correct method `is_sparse_paving`
    
It was brought to my attention that the method `is_sparse_paving` is
incorrect. See
sagemath#36962 (comment).

The method should only check the symmetric differences of `r`-element
circuits rather than all (`r`- and `r+1`-element) circuits.

The algorithm used is based on a somewhat unusual definition which can
be found in https://arxiv.org/pdf/math/0404200.
    
URL: sagemath#39382
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39382: Correct method `is_sparse_paving`
    
It was brought to my attention that the method `is_sparse_paving` is
incorrect. See
sagemath#36962 (comment).

The method should only check the symmetric differences of `r`-element
circuits rather than all (`r`- and `r+1`-element) circuits.

The algorithm used is based on a somewhat unusual definition which can
be found in https://arxiv.org/pdf/math/0404200.
    
URL: sagemath#39382
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 9, 2025
sagemathgh-39382: Correct method `is_sparse_paving`
    
It was brought to my attention that the method `is_sparse_paving` is
incorrect. See
sagemath#36962 (comment).

The method should only check the symmetric differences of `r`-element
circuits rather than all (`r`- and `r+1`-element) circuits.

The algorithm used is based on a somewhat unusual definition which can
be found in https://arxiv.org/pdf/math/0404200.
    
URL: sagemath#39382
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Feb 10, 2025
sagemathgh-39382: Correct method `is_sparse_paving`
    
It was brought to my attention that the method `is_sparse_paving` is
incorrect. See
sagemath#36962 (comment).

The method should only check the symmetric differences of `r`-element
circuits rather than all (`r`- and `r+1`-element) circuits.

The algorithm used is based on a somewhat unusual definition which can
be found in https://arxiv.org/pdf/math/0404200.
    
URL: sagemath#39382
Reported by: gmou3
Reviewer(s): Travis Scrimshaw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants