-
Notifications
You must be signed in to change notification settings - Fork 34
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
Fixing issue #21 #22
Fixing issue #21 #22
Conversation
…and extended the test case set for this algorithm.
It seems like travis is checking the source code using pmd, but the codebase is not completely in shape for pmd checks. I fixed the util subproject as this is the area where my changes reside, but it seems like I would have to fix all automata lib modules to make pmd pass in the travis ci build. |
It seems, you directly invoked the PMD maven-plugin from the CLI (which uses some default configuration). The Automatalib build process uses a specific configuration (and exclusions) file. To replicate what Travis does, you can invoke From what I saw, after reverting 6cba2a5, it was mostly just formatting stuff. If you don't mind, you can grant me push access and I can look into this. Also, I have to think about your changes to the |
I granted you push access. Feel free, to adapt the PR. You are right about the SCCListener change. TheAlgorithm in the version as proposed in Tarjan's paper, needs a fine grained control about backtracking during DFS. Up to my understanding this is currently not supported sufficient well by the graph traversal infrastructure to maintain the old SCCListener interface. But I am open for discussions. |
This reverts commit 6cba2a5.
make checkstyle/pmd happy
- revert most of the changes of 8231a67 because they introduced a change in the API and unnecessarily traversed nodes multiple times. However the commit discovered one core issue, which was during cycle detection the update of the SCC id with the start number (wrong) rather than the scc id (right). This fix, along with correct handling of cached values is now implemented ontop of the old code-base. - Merged the "AdvancedSCCTest" with the regular one. - Refactored internal variable names to be more precise and added JavaDoc/ comments on what (some of) the individual variables/methods actually do.
Thank you for locking into this and fixing the algorithm! |
* Fixing an error in the Tarjan's strong connected component algorithm and extended the test case set for this algorithm. * Making pmd pass in the util subproject * Revert "Making pmd pass in the util subproject" This reverts commit 6cba2a5. * reformatting make checkstyle/pmd happy * Rework fix for SCC algorithm - revert most of the changes of 8231a67 because they introduced a change in the API and unnecessarily traversed nodes multiple times. However the commit discovered one core issue, which was during cycle detection the update of the SCC id with the start number (wrong) rather than the scc id (right). This fix, along with correct handling of cached values is now implemented ontop of the old code-base. - Merged the "AdvancedSCCTest" with the regular one. - Refactored internal variable names to be more precise and added JavaDoc/ comments on what (some of) the individual variables/methods actually do. (cherry picked from commit ceb9f96)
I found an error in the strong component tracing while debugging another project.
So, I suggest the following fix and added a few more examples, ensuring that the fix is working.