Satsuma
a delicious .NET graph library
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Pages
Namespaces | Classes | Enumerations
Package Satsuma

Namespaces

package  Drawing
 
package  IO
 

Classes

struct  Arc
 Represents a graph arc, consisting of a wrapped Id. More...
 
class  ArcLookupExtensions
 Extension methods for IArcLookup. More...
 
class  AStar
 Uses the A* search algorithm to find cheapest paths in a graph. More...
 
class  BellmanFord
 Finds cheapest paths in a graph from a set of source nodes to all nodes, or a negative cycle reachable from the sources. More...
 
class  Bfs
 Performs a breadth-first search (BFS) to find shortest paths from a set of source nodes to all nodes. More...
 
class  BiEdgeConnectedComponents
 Finds the bridges and 2-edge-connected components in a graph. More...
 
class  BiNodeConnectedComponents
 Finds the cutvertices and blocks (2-node-connected components) of a graph. More...
 
class  Bipartition
 Decides whether the graph is bipartite and finds a bipartition into red and blue nodes. More...
 
class  BridgeDfs
 
class  CheapestLinkTsp< TNode >
 Solves the symmetric traveling salesman problem by using the cheapest link heuristic. More...
 
class  CompleteBipartiteGraph
 A complete bipartite graph on a given number of nodes. More...
 
class  CompleteGraph
 A complete undirected or directed graph on a given number of nodes. More...
 
class  ConnectedComponents
 Finds the connected components of a graph. More...
 
class  ContractedGraph
 Adaptor for identifying some nodes of an underlying graph. More...
 
class  CustomGraph
 A graph implementation capable of storing any graph. More...
 
class  Dfs
 Performs a customizable depth-first search (DFS). More...
 
class  Dijkstra
 Uses Dijkstra's algorithm to find cheapest paths in a graph. More...
 
class  DisjointSet< T >
 Implementation of the disjoint-set data structure. More...
 
struct  DisjointSetSet< T >
 Represents a set in the DisjointSet data structure. More...
 
class  FindPathExtensions
 Extension methods for IGraph, for finding paths. More...
 
class  HamiltonianCycle
 Attempts to find a (directed) Hamiltonian cycle in a graph using TSP solvers. More...
 
interface  IArcLookup
 A graph which can provide information about its arcs. More...
 
interface  IBuildableGraph
 A graph which can build new nodes and arcs. More...
 
interface  IClearable
 Interface for objects which can revert their state to default. More...
 
class  IdAllocator
 Allocates integer identifiers.
 
interface  IDestroyableGraph
 A graph which can destroy its nodes and arcs. More...
 
interface  IDisjointSet< T >
 Interface to a disjoint-set data structure. More...
 
interface  IFlow< TCapacity >
 Interface to a flow in a network. More...
 
interface  IGraph
 Interface to a read-only graph. More...
 
interface  IMatching
 Interface to a read-only matching. More...
 
class  InsertionTsp< TNode >
 Solves the traveling salesman problem by using the insertion heuristic. More...
 
class  IntegerPreflow
 Finds a maximum flow for integer capacities using the Goldberg-Tarjan preflow algorithm. More...
 
interface  IPath
 Interface to a read-only path. More...
 
interface  IPriorityQueue< TElement, TPriority >
 Interface to a priority queue which does not allow duplicate elements. More...
 
interface  IReadOnlyDisjointSet< T >
 Interface to a read-only disjoint-set data structure. More...
 
interface  IReadOnlyPriorityQueue< TElement, TPriority >
 Interface to a read-only priority queue. More...
 
interface  ITsp< TNode >
 Interface to TSP solvers. More...
 
class  Kruskal< TCost >
 Finds a minimum cost spanning forest in a graph using Kruskal's algorithm. More...
 
class  LowpointDfs
 Calculates the lowpoint for each node.
 
class  Matching
 Adaptor for storing a matching of an underlying graph. More...
 
class  MaximumMatching
 Finds a maximum matching in a bipartite graph using the alternating path algorithm. More...
 
class  MinimumCostMatching
 Finds a minimum cost matching in a bipartite graph using the network simplex method. More...
 
class  NetworkSimplex
 Finds a minimum cost feasible circulation using the network simplex method. More...
 
struct  Node
 Represents a graph node, consisting of a wrapped Id. More...
 
class  Opt2Tsp< TNode >
 Improves a solution for the traveling salesman problem by using the 2-OPT method. More...
 
class  Path
 Adaptor for storing a path of an underlying graph. More...
 
class  PathExtensions
 Extension methods to IPath. More...
 
class  PathGraph
 A path or cycle graph on a given number of nodes. More...
 
class  Preflow
 Finds a maximum flow using the Goldberg-Tarjan preflow algorithm. More...
 
class  Prim< TCost >
 Finds a minimum cost spanning forest in a graph using Prim's algorithm. More...
 
class  PriorityQueue< TElement, TPriority >
 A heap-based no-duplicates priority queue implementation. More...
 
class  RedirectedGraph
 Adaptor for modifying the direction of some arcs of an underlying graph. More...
 
class  ReverseGraph
 Adaptor for reversing all arcs of an underlying graph. More...
 
class  StrongComponents
 Finds the strongly connected components of a digraph. More...
 
class  Subgraph
 Adaptor for hiding/showing nodes/arcs of an underlying graph. More...
 
class  Supergraph
 Adaptor for adding nodes/arcs to an underlying graph. More...
 
class  TopologicalOrder
 Decides whether a digraph is acyclic and finds a topological order of its nodes. More...
 
class  TspUtils
 Utilities regarding the traveling salesman problem. More...
 
class  UndirectedGraph
 Adaptor showing all arcs of an underlying graph as undirected edges. More...
 
class  Utils
 Various utilities used by other classes.
 

Enumerations

enum  ArcFilter { All, Edge, Forward, Backward }
 Allows filtering arcs. Can be passed to functions which return a collection of arcs. More...
 
enum  DijkstraMode { Sum, Maximum }
 The path cost calculation mode for Dijkstra's algorithm. More...
 
enum  Directedness { Directed, Undirected }
 Tells whether an arc, an arc set or a graph is directed or undirected. More...
 
enum  SimplexState {
  FirstPhase, Infeasible, SecondPhase, Unbounded,
  Optimal
}
 Corresponds to the states of the two-phase primal simplex algorithm. More...
 
enum  TspSelectionRule { Nearest, Farthest }
 The operation mode of InsertionTsp<TNode>. More...
 

Enumeration Type Documentation

Allows filtering arcs. Can be passed to functions which return a collection of arcs.

Enumerator
All 

All arcs.

Edge 

Only undirected arcs.

Forward 

Only edges, or directed arcs from the first point (to the second point, if any).

Backward 

Only edges, or directed arcs to the first point (from the second point, if any).

Definition at line 221 of file Graph.cs.

The path cost calculation mode for Dijkstra's algorithm.

Enumerator
Sum 

The cost of a path equals to the sum of the costs of its arcs.

    This is the default mode.
Warning
In this mode, Dijkstra.Cost must be nonnegative.
Maximum 

The cost of a path equals to the maximum of the costs of its arcs.

In this mode, Dijkstra.Cost can be arbitrary.

Definition at line 10 of file Dijsktra.cs.

Tells whether an arc, an arc set or a graph is directed or undirected.

Undirected arcs are referred to as edges.

Enumerator
Directed 

The arc, arc set or graph is directed.

Undirected 

The arc, arc set or graph is undirected.

Definition at line 141 of file Graph.cs.

Corresponds to the states of the two-phase primal simplex algorithm.

Enumerator
FirstPhase 

The first phase (finding a feasible solution) is still running.

Infeasible 

No feasible solution exists as deduced by the first phase.

SecondPhase 

The second phase (finding an optimal solution) is still running.

Unbounded 

The value of the objective function was found to be unbounded.

Optimal 

The current solution is optimal.

Definition at line 32 of file NetworkSimplex.cs.

The operation mode of InsertionTsp<TNode>.

Enumerator
Nearest 

The node nearest to the current tour is selected for insertion.

Farthest 

The node farthest from the current tour is selected for insertion.

Definition at line 135 of file Tsp.cs.