#include <digraphx/min_cycle_ratio.hpp>
template<typename DiGraph, typename Ratio>
MinCycleRatioSolver class
Minimum Cycle Ratio Solver.
Template parameters | |
---|---|
DiGraph | |
Ratio |
The minimum cycle ratio (MCR) problem is a fundamental problem in the analysis of directed graphs. Given a directed graph, the MCR problem seeks to find the cycle with the minimum ratio of the sum of edge weights to the number of edges in the cycle. In other words, the MCR problem seeks to find the "tightest" cycle in the graph, where the tightness of a cycle is measured by the ratio of the total weight of the cycle to its length.
The MCR problem has many applications in the analysis of discrete event systems, such as digital circuits and communication networks. It is closely related to other problems in graph theory, such as the shortest path problem and the maximum flow problem. Efficient algorithms for solving the MCR problem are therefore of great practical importance.
Constructors, destructors, conversion operators
- MinCycleRatioSolver(const DiGraph& gra) explicit
Public functions
-
template<typename Mapping, typename Domain>auto run(Ratio& r0, Mapping& dist, Domain dummy) -> Cycle -> auto
- run
Function documentation
template<typename DiGraph, typename Ratio>
MinCycleRatioSolver<DiGraph, Ratio>:: MinCycleRatioSolver(const DiGraph& gra) explicit
Parameters | |
---|---|
gra in | The parameter "gra" is of type DiGraph, which is a directed graph. It is used to represent the graph on which the Min Cycle Ratio Solver operates. |
This function constructs a new MinCycleRatioSolver object with a given DiGraph.
template<typename DiGraph, typename Ratio>
template<typename Mapping, typename Domain>
auto MinCycleRatioSolver<DiGraph, Ratio>:: run(Ratio& r0,
Mapping& dist,
Domain dummy) -> Cycle
run
Template parameters | |
---|---|
Mapping | |
Domain | |
Parameters | |
r0 in | |
dist in | |
dummy in | |
Returns | Cycle |