Updated __calc_path_preference to use Floyd Warshall #54
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.
The existing __calc_path_preference function in profile.py runs in exponential time (in fact O(m!)) since every recursive call can have up to m recursive calls. I am guessing this is the reason the chairs decided not to include __calc_path_preference in the profile initialization. The widest paths (i.e., strengths) for Schulze can also be done using the Floyd Warshall algorithms, which runs in O(n^3) time. In my local runs, this version __calc_path_preference runs much much much faster than the original version.