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