Improve path length by more than 50 %#2
Closed
mvinni wants to merge 2 commits intotvwenger:masterfrom
Closed
Conversation
Records edge dependencies and uses that information to reorder edges in the edge sequence as long as the path length is reduced.
Childless "exterior" triangles can be completed in any order. If the triangle has children, make sure to complete the edge opposite of the final vertex early (not as the last edge). Otherwise the greedy optimizer might move the completion of that edge last, causing two (or more) triangles to be constructed at the same side of the edge at the same time.
Owner
|
Thanks! I have some other changes to incorporate soon as well. I'll work on |
Owner
|
Hi, I've just updated the code with some of jpterbaker's changes and they significantly improve the agent walk time. Feel free to submit another pull request if you notice any other changes that could be made to make it more efficient. |
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Here is a suggestion to improve the output of maxfield to be much shorter. For example, for the courtsquare.portals example input, for one agent, the suggested route is:
compared with the
of the unmodified code.
In my tests the length improvement of the route for one agent has been typically more than 50 %, but naturally it depends on the randomization. For more agents the benefit may be smaller, but I don't have any figures for that.
There probably are still easy improvements to be made to the algorithm. The most common error result for a bad modification is two (or more) triangles forming on the same side of a link at the same time (getting a field and AP only for the largest). So, anybody experimenting with the code should keep an eye open for those. I have run the code through automatic tests some hundreds of times, and this version so far has not failed.
(originally I submitted a pull request to the "upstream" at jpeterbaker/maxfield#34, but so far received no response there; perhaps the website users would benefit of these changes)