Skip to content
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

Non-deterministic CDLP algorithm #101

Open
szarnyasg opened this issue Aug 22, 2020 · 1 comment
Open

Non-deterministic CDLP algorithm #101

szarnyasg opened this issue Aug 22, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@szarnyasg
Copy link
Contributor

I had an interesting discussion with the igraph authors at their forum. They highlighted that the non-deterministic CDLP algorithm isn't only faster but also better in some cases (as it tends to avoid the oscillation of labels). So when touching the CLDP codebase, I'll also add a boolean flag to set deterministic/non-deterministic behaviour.

@szarnyasg szarnyasg self-assigned this Aug 22, 2020
@szarnyasg szarnyasg added the enhancement New feature or request label Aug 22, 2020
@szarnyasg szarnyasg mentioned this issue Apr 8, 2021
4 tasks
@szarnyasg
Copy link
Contributor Author

A correction to my earlier post: the nondeterminism (always picking the smallest label) is not the main cause of the oscillation - instead, the problem is the synchronous nature of the algorithm. An asynchronous algorithm does better for avoiding the problem.

A potential workaround is partitioning the work, then

  1. select k vertices and their incoming edges in the matrix randomly
  2. compute the new labels
  3. assign the labels to vector l
  4. if all vertices were processed, we're done, otherwise go to 1.

@szarnyasg szarnyasg removed their assignment Mar 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant