Network Models
Shortest Path
OperationsResearchModels.solve
— Methodsolve(problem)
Description
Solves a shortest path problem given by an object of in type ShortestPathProblem
.
Arguments
problem::ShortestPathProblem
: The problem in type of ShortestPathProblem
Output
ShortestPathResult
: The custom data type that holds path and cost.
Example
julia> conns = [
Connection(1, 2, 3),
Connection(1, 3, 2),
Connection(1, 4, 4),
Connection(2, 5, 3),
Connection(3, 5, 1),
Connection(3, 6, 1),
Connection(4, 6, 2),
Connection(5, 7, 6),
Connection(6, 7, 5),
];
julia> solve(ShortestPathProblem(conns));
julia> result.path
3-element Vector{Connection}:
Connection(1, 3, 2, "x13")
Connection(3, 6, 1, "x36")
Connection(6, 7, 5, "x67")
julia> result.cost
8.0
Maximum Flow
OperationsResearchModels.solve
— Methodsolve(problem)
Arguments
problem::MaximumFlowProblem
: The problem in type of MaximumFlowProblem
Output
MaximumFlowResult
: The custom data type that holds path and flow.
Example
julia> conns = [
Connection(1, 2, 3),
Connection(1, 3, 2),
Connection(1, 4, 4),
Connection(2, 5, 3),
Connection(3, 5, 1),
Connection(3, 6, 1),
Connection(4, 6, 2),
Connection(5, 7, 6),
Connection(6, 7, 5),
];
julia> problem = MaximumFlowProblem(conns)
julia> result = solve(problem);
julia> result.path
9-element Vector{Connection}:
Connection(1, 2, 3.0, "x12")
Connection(1, 3, 2.0, "x13")
Connection(1, 4, 2.0, "x14")
Connection(2, 5, 3.0, "x25")
Connection(3, 5, 1.0, "x35")
Connection(3, 6, 1.0, "x36")
Connection(4, 6, 2.0, "x46")
Connection(5, 7, 4.0, "x57")
Connection(6, 7, 3.0, "x67")
julia> result.flow
7.0
Minimum Cost Flow
OperationsResearchModels.solve
— Methodsolve(problem)
Description
This function solves the Minimum Cost Flow problem by first solving the Maximum Flow problem and then using the flow value to solve the Minimum Cost Flow problem.
Arguments
problem::MinimumCostFlowProblem
: The problem in type of MinimumCostFlowProblem
OperationsResearchModels.solve
— Methodsolve(problem, flow)
Description
This function solves the Minimum Cost Flow problem given a flow value.
Arguments
problem::MinimumCostFlowProblem
: The problem in type of MinimumCostFlowProblemflow::Float64
: The flow value to be used in the problem.
Minimum Spanning Tree
OperationsResearchModels.solve
— Methodsolve(problem::MstProblem)
Arguments
problem::MstProblem
: The problem in type of MstProblem
Description
Obtains the minimum spanning tree.
Output
::MstResult
: A MstResult object that holds the results.
Examples
julia> conns = Connection[
Connection(1, 2, 10),
Connection(2, 3, 10),
Connection(3, 4, 10),
Connection(1, 4, 10)
]
4-element Vector{Connection}:
Connection(1, 2, 10, "x12")
Connection(2, 3, 10, "x23")
Connection(3, 4, 10, "x34")
Connection(1, 4, 10, "x14")
julia> result = solve(MstProblem(conns))
MstResult(Connection[Connection(3, 4, 10, "x34"), Connection(1, 4, 10, "x14"), Connection(2, 3, 10, "x23")], 30.0)
julia> result.distance
30.0
julia> result.connections
3-element Vector{Connection}:
Connection(3, 4, 10, "x34")
Connection(1, 4, 10, "x14")
Connection(2, 3, 10, "x23")