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

Codechange: [Linkgraph] Skip MCF source node Dijkstra when all demand satisfied #7913

Conversation

JGRennison
Copy link
Contributor

MCF Dijkstra iterations are executed for all source nodes in a round-robin order.
Source nodes typically require different numbers of MCF Dijkstra iterations
to satisfy all of their demand.
This change is to avoid performing MCF Dijkstra iterations on source nodes which
have already been fully satisfied

Executing Dijkstra's algorithm is relatively expensive, particularly on large graphs, it is useful to avoid executing it in cases where the output is not used.

Copy link
Contributor

@nielsmh nielsmh left a comment

Choose a reason for hiding this comment

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

Looks right, although I don't have experience with this part of the code yet.

src/linkgraph/mcf.cpp Outdated Show resolved Hide resolved
src/linkgraph/mcf.cpp Outdated Show resolved Hide resolved
src/linkgraph/mcf.cpp Outdated Show resolved Hide resolved
… satisfied

MCF Dijkstra iterations are executed for all source nodes in a round-robin order.
Source nodes typically require different numbers of MCF Dijkstra iterations
to satisfy all of their demand.
This change is to avoid performing MCF Dijkstra iterations on source nodes which
have already been fully satisfied.
@JGRennison JGRennison force-pushed the skip-linkgraph-mcf-dijsktra-when-demand-satisfied branch from 14a3484 to 555ce38 Compare January 7, 2020 22:14
@nielsmh nielsmh merged commit 6e7117e into OpenTTD:master Jan 8, 2020
@JGRennison JGRennison deleted the skip-linkgraph-mcf-dijsktra-when-demand-satisfied branch January 9, 2024 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants