@graphty/algorithms
Version:
Graph algorithms library for browser environments implemented in TypeScript
49 lines • 1.54 kB
TypeScript
/**
* Minimum Cut Algorithms
*
* Various algorithms for finding minimum cuts in graphs
*/
export interface MinCutResult {
cutValue: number;
partition1: Set<string>;
partition2: Set<string>;
cutEdges: {
from: string;
to: string;
weight: number;
}[];
}
/**
* Find minimum s-t cut using max flow
* The minimum cut value equals the maximum flow value (max-flow min-cut theorem)
*
* @param graph - Weighted graph
* @param source - Source node
* @param sink - Sink node
* @returns Minimum cut information
*
* Time Complexity: Same as max flow algorithm used
*/
export declare function minSTCut(graph: Map<string, Map<string, number>>, source: string, sink: string): MinCutResult;
/**
* Stoer-Wagner algorithm for finding global minimum cut
* Finds the minimum cut that separates the graph into two parts
*
* @param graph - Undirected weighted graph
* @returns Global minimum cut
*
* Time Complexity: O(V³) or O(VE + V² log V) with heap
*/
export declare function stoerWagner(graph: Map<string, Map<string, number>>): MinCutResult;
/**
* Karger's randomized min-cut algorithm
* Probabilistic algorithm that finds min cut with high probability
*
* @param graph - Undirected graph
* @param iterations - Number of iterations (higher = better accuracy)
* @returns Minimum cut found
*
* Time Complexity: O(V² * iterations)
*/
export declare function kargerMinCut(graph: Map<string, Map<string, number>>, iterations?: number): MinCutResult;
//# sourceMappingURL=min-cut.d.ts.map