These "runner" functions provide a slightly lower-level access to LEMON. See "Details".
Usage
GrossoLocatelliPullanMcRunner(arcSources, arcTargets, numNodes)
getBipartitePartitionsRunner(arcSources, arcTargets, numNodes)
getAndCheckTopologicalSortRunner(arcSources, arcTargets, numNodes)
getTopologicalSortRunner(arcSources, arcTargets, numNodes)
IsConnectedRunner(arcSources, arcTargets, numNodes)
IsAcyclicRunner(arcSources, arcTargets, numNodes)
IsTreeRunner(arcSources, arcTargets, numNodes)
IsBipartiteRunner(arcSources, arcTargets, numNodes)
IsStronglyConnectedRunner(arcSources, arcTargets, numNodes)
IsDAGRunner(arcSources, arcTargets, numNodes)
IsBiNodeConnectedRunner(arcSources, arcTargets, numNodes)
IsBiEdgeConnectedRunner(arcSources, arcTargets, numNodes)
IsLoopFreeRunner(arcSources, arcTargets, numNodes)
IsParallelFreeRunner(arcSources, arcTargets, numNodes)
IsSimpleGraphRunner(arcSources, arcTargets, numNodes)
IsEulerianRunner(arcSources, arcTargets, numNodes)
CountBiEdgeConnectedComponentsRunner(arcSources, arcTargets, numNodes)
CountConnectedComponentsRunner(arcSources, arcTargets, numNodes)
CountBiNodeConnectedComponentsRunner(arcSources, arcTargets, numNodes)
CountStronglyConnectedComponentsRunner(arcSources, arcTargets, numNodes)
FindStronglyConnectedComponentsRunner(arcSources, arcTargets, numNodes)
FindStronglyConnectedCutArcsRunner(arcSources, arcTargets, numNodes)
FindBiEdgeConnectedCutEdgesRunner(arcSources, arcTargets, numNodes)
FindBiNodeConnectedComponentsRunner(arcSources, arcTargets, numNodes)
FindBiNodeConnectedCutNodesRunner(arcSources, arcTargets, numNodes)
FindConnectedComponentsRunner(arcSources, arcTargets, numNodes)
FindBiEdgeConnectedComponentsRunner(arcSources, arcTargets, numNodes)
GraphCompatabilityConverter(nodesList, arcSources, arcTargets)
BfsRunner(arcSources, arcTargets, numNodes, startNode = -1L, endNode = -1L)
DfsRunner(arcSources, arcTargets, numNodes, startNode = -1L, endNode = -1L)
MaxCardinalitySearchRunner(
arcSources,
arcTargets,
arcCapacities,
numNodes,
startNode = -1L
)
CirculationRunner(
arcSources,
arcTargets,
arcLowerBound,
arcUpperBound,
nodeSupplies,
numNodes
)
PreflowRunner(
arcSources,
arcTargets,
arcDistances,
sourceNode,
destinationNode,
numNodes
)
EdmondsKarpRunner(
arcSources,
arcTargets,
arcDistances,
sourceNode,
destinationNode,
numNodes
)
MaximumWeightPerfectMatchingRunner(
arcSources,
arcTargets,
arcWeights,
numNodes
)
MaximumWeightFractionalPerfectMatchingRunner(
arcSources,
arcTargets,
arcWeights,
numNodes
)
MaximumWeightFractionalMatchingRunner(
arcSources,
arcTargets,
arcWeights,
numNodes
)
MaximumWeightMatchingRunner(arcSources, arcTargets, arcWeights, numNodes)
MaximumCardinalityMatchingRunner(arcSources, arcTargets, numNodes)
MaximumCardinalityFractionalMatchingRunner(arcSources, arcTargets, numNodes)
CycleCancellingRunner(
arcSources,
arcTargets,
arcCapacities,
arcCosts,
nodeSupplies,
numNodes
)
CapacityScalingRunner(
arcSources,
arcTargets,
arcCapacities,
arcCosts,
nodeSupplies,
numNodes
)
CostScalingRunner(
arcSources,
arcTargets,
arcCapacities,
arcCosts,
nodeSupplies,
numNodes
)
NetworkSimplexRunner(
arcSources,
arcTargets,
arcCapacities,
arcCosts,
nodeSupplies,
numNodes
)
NagamochiIbarakiRunner(arcSources, arcTargets, arcWeights, numNodes)
HaoOrlinRunner(arcSources, arcTargets, arcWeights, numNodes)
GomoryHuTreeRunner(arcSources, arcTargets, arcWeights, numNodes)
HowardMmcRunner(arcSources, arcTargets, arcDistances, numNodes)
KarpMmcRunner(arcSources, arcTargets, arcDistances, numNodes)
HartmannOrlinMmcRunner(arcSources, arcTargets, arcDistances, numNodes)
KruskalRunner(arcSources, arcTargets, arcDistances, numNodes)
MinCostArborescenceRunner(
arcSources,
arcTargets,
arcDistances,
sourceNode,
numNodes
)
PlanarCheckingRunner(arcSources, arcTargets, numNodes)
PlanarEmbeddingRunner(arcSources, arcTargets, numNodes)
PlanarColoringRunner(arcSources, arcTargets, numNodes, useFiveAlg = TRUE)
PlanarDrawingRunner(arcSources, arcTargets, numNodes)
SuurballeRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
startNode,
endNode
)
DijkstraRunner(arcSources, arcTargets, arcDistances, numNodes, startNode)
BellmanFordRunner(arcSources, arcTargets, arcDistances, numNodes, startNode)
ChristofidesRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
defaultEdgeWeight = 999999L
)
GreedyTSPRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
defaultEdgeWeight = 999999L
)
InsertionTSPRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
defaultEdgeWeight = 999999L
)
NearestNeighborTSPRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
defaultEdgeWeight = 999999L
)
Opt2TSPRunner(
arcSources,
arcTargets,
arcDistances,
numNodes,
defaultEdgeWeight = 999999L
)
lemon_runners()
Arguments
- arcSources
a vector corresponding to the source nodes of a graph’s edges
- arcTargets
a vector corresponding to the destination nodes of a graph’s edges
- numNodes
the number of nodes in the graph
- nodesList
a vector of all the nodes in the graph
- startNode
in path-based algorithms, the start node of the path
- endNode
in path-based algorithms, the end node of the path
- arcCapacities
vector corresponding to the capacities of nodes of a graph’s edges
- arcLowerBound
vector corresponding to the lower-bound capacities of nodes of a graph’s edges
- arcUpperBound
vector corresponding to the upper-bound capacities of nodes of a graph’s edges
- nodeSupplies
vector corresponding to the supplies of each node of the graph
- arcDistances
vector corresponding to the distances of a graph’s edges
- sourceNode
in flow-based algorithms, the source node of the flow
- destinationNode
in flow-based algorithms, the destination node of the flow
- arcWeights
vector corresponding to the weights of a graph’s arcs
- arcCosts
vector corresponding to the costs of nodes of a graph’s edges
- useFiveAlg
if
TRUE
(default), run a 5-color algorithm. IfFALSE
, runs a faster 6-coloring algorithm instead.- defaultEdgeWeight
The default edge weight if an edge is not-specified (default value 999999)
Details
Internally, all exported rlemon functions call a "runner" function to
interface with the C++, for example, MaxFlow(..., algorithm =
"PreFlow")
will call PreFlowRunner(...)
.
In almost all cases, users will want to stick with the exported functions.
Runners differ from exported functions in a few ways:
Exported functions provide input checking.
Exported functions provide slightly cleaner output, such as converting 0/1 boolean into
logical
.Any
list
which is returned from an exported function will be named.The
arcWeights
argument is optional toMaxMatching()
, automatically generating a constant weight if it is excluded.arcWeights
is not optional inMaxMatchingRunner()
.