Skip to content

Conversation

EwanGilligan
Copy link
Contributor

@EwanGilligan EwanGilligan commented Jun 2, 2021

Add Zykov and Christofides Algorithms for Chromatic Number. This builds on the previous pull request #382 to add two additional algorithms for calculating the Chromatic Number. These use the same method selection as the existing implementations, and so are simply additional options to use.

@EwanGilligan EwanGilligan marked this pull request as draft June 2, 2021 14:49
@EwanGilligan EwanGilligan force-pushed the egilligan-bab-chromatic-number branch 2 times, most recently from 4c77fee to 101c55d Compare June 9, 2021 12:49
@EwanGilligan EwanGilligan marked this pull request as ready for review June 9, 2021 12:53
@james-d-mitchell james-d-mitchell requested a review from mtorpey July 28, 2021 13:20
wilfwilson
wilfwilson previously approved these changes Sep 21, 2021
Copy link
Collaborator

@wilfwilson wilfwilson left a comment

Choose a reason for hiding this comment

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

Looks pretty reasonable to me.

Copy link
Member

@james-d-mitchell james-d-mitchell left a comment

Choose a reason for hiding this comment

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

This generally looks good, mod some comments. If you're able to address the comments, that'd be great

@james-d-mitchell james-d-mitchell added the new-feature A label for new features. label Jan 6, 2022
@EwanGilligan EwanGilligan force-pushed the egilligan-bab-chromatic-number branch 4 times, most recently from 4db0f0c to 0af7fc2 Compare January 13, 2022 14:12
@EwanGilligan
Copy link
Contributor Author

@james-d-mitchell I've made the requested changes based on our discussion yesterday, let me know if you have any further comments.

@james-d-mitchell
Copy link
Member

We should either update this PR and merge it, or close it.

@james-d-mitchell james-d-mitchell added the gap-days-brussels-2025 Label for things we might work on in Brussels label Apr 7, 2025
EwanGilligan and others added 3 commits April 7, 2025 14:16
Style changes from review

Duplicate tests already included

Add outline for Byskov algorithm

Add function to find three colourable subgraphs

Moved three colourable processing to before Byskov

Added declaration for Byskovs

Handled Special case for three vertices and no maximal independent sets

Wasn't actually getting the complement of the independent set

Create category isDigraphAlgorithm and sub-category isDigraphColouringAlgorithm

Will be used to distinguish different colouring algorithms that are available.
Add Bound Global objects for Digraph Colouring Algorithms

Update original functions to use new method selection

Update test for new method selection

Forgot to subtract set before getting the induced subgraph

Remove from extreme test as it is far too large for these tests

Move tests that are too slow

Special case was not needed

Add loop checks to Lawler and Byskov Algorithms

Remove Extreme Tests

Add standard tests that will run in a reasonable amount of time

Not all chromatic number tests were duplicated, as some would use too much memory or take too long
Fix formatting

More formatting issues

Should be the last one

Added Documentation

Misc Comments

Make label match docs

Optimise away the subdigraph use

Remove another copy

Fix lawler issues

Optimise Byskov

clarify todo

Revert to using induced subdigraph

Fix some linting

Missed a few

Fix Indent

Add method selection objects for Zykov

Initial algorithm skeleton

Fill in the rest

Forgot about edge direction

Documentation

Start adaptation for pruned trees

Simplify logic

Add tests for Zykov

Add filters and method objects for Christofides

Initialise variable for Christofides

Update comments

Initial version of Christofides implemented.

Fixed a few syntax errors

Fix calculation of MIS

Remove debug print

Cleanup christofides

fix typo

Convert to using Blists

Need to benchmark to check improvement
Fix formatting

Missed some trailing whitespace

Restart attempt at in place zykov

Revert to just copying

In place is more hassle than it's worth
Remove redundant extra check

Use new function for Christofides

Fix merge issues

Add vertex ordering to Zykov

Add Christofides test

Optimise clique finder used

Fix lint

remove duplicate bib

Update for new method selection

Fix test output

Update Docs

Remove unused reference

Fix spelling mistake
Add additional explanation to Zykov

Improve vertex picking for Zykov

Simplify vertex picking for Christofides
@james-d-mitchell james-d-mitchell merged commit 32fd72d into digraphs:main Apr 10, 2025
27 checks passed
@james-d-mitchell
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gap-days-brussels-2025 Label for things we might work on in Brussels new-feature A label for new features.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants