Show / Hide Table of Contents

Class TSP<TVertex, TEdge, TGraph>

Algorithm to answer the TSP (Travelling Salesman Problem), meaning finding a path that best link every vertices.

Inheritance
System.Object
AlgorithmBase<TGraph>
RootedAlgorithmBase<TVertex, TGraph>
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>
TSP<TVertex, TEdge, TGraph>
Implements
IAlgorithm<TGraph>
IComputation
IAlgorithmComponent
IVertexColorizerAlgorithm<TVertex>
ITreeBuilderAlgorithm<TVertex, TEdge>
IDistancesCollection<TVertex>
Inherited Members
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.Distances
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.GetVertexDistance(TVertex)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.SetVertexDistance(TVertex, Double)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.TryGetDistance(TVertex, Double)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.GetDistance(TVertex)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.GetDistances()
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.DistancesIndexGetter()
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.Weights
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.DistanceRelaxer
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.Initialize()
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.VerticesColors
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.GetVertexColor(TVertex)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.TreeEdge
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.OnTreeEdge(TEdge)
ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.Relax(TEdge)
RootedAlgorithmBase<TVertex, TGraph>.TryGetRootVertex(TVertex)
RootedAlgorithmBase<TVertex, TGraph>.SetRootVertex(TVertex)
RootedAlgorithmBase<TVertex, TGraph>.ClearRootVertex()
RootedAlgorithmBase<TVertex, TGraph>.RootVertexChanged
RootedAlgorithmBase<TVertex, TGraph>.OnRootVertexChanged(EventArgs)
RootedAlgorithmBase<TVertex, TGraph>.GetAndAssertRootInGraph()
RootedAlgorithmBase<TVertex, TGraph>.AssertRootInGraph(TVertex)
RootedAlgorithmBase<TVertex, TGraph>.Compute(TVertex)
AlgorithmBase<TGraph>.SyncRoot
AlgorithmBase<TGraph>.State
AlgorithmBase<TGraph>.Compute()
AlgorithmBase<TGraph>.Abort()
AlgorithmBase<TGraph>.StateChanged
AlgorithmBase<TGraph>.OnStateChanged(EventArgs)
AlgorithmBase<TGraph>.Started
AlgorithmBase<TGraph>.OnStarted(EventArgs)
AlgorithmBase<TGraph>.Finished
AlgorithmBase<TGraph>.OnFinished(EventArgs)
AlgorithmBase<TGraph>.Aborted
AlgorithmBase<TGraph>.OnAborted(EventArgs)
AlgorithmBase<TGraph>.VisitedGraph
AlgorithmBase<TGraph>.Services
AlgorithmBase<TGraph>.GetService<T>()
AlgorithmBase<TGraph>.TryGetService<T>(T)
AlgorithmBase<TGraph>.TryGetService(Type, Object)
AlgorithmBase<TGraph>.ThrowIfCancellationRequested()
AlgorithmBase<TGraph>.Clean()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: QuikGraph.Algorithms.TSP
Assembly: QuikGraph.dll
Syntax
public class TSP<TVertex, TEdge, TGraph> : ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>, IAlgorithm<TGraph>, IComputation, IAlgorithmComponent, IVertexColorizerAlgorithm<TVertex>, ITreeBuilderAlgorithm<TVertex, TEdge>, IDistancesCollection<TVertex> where TEdge : EquatableEdge<TVertex> where TGraph : BidirectionalGraph<TVertex, TEdge>
Type Parameters
Name Description
TVertex

Vertex type.

TEdge

Edge type.

TGraph

Graph type.

Constructors

| Improve this Doc View Source

TSP(TGraph, Func<TEdge, Double>)

Initializes a new instance of the TSP<TVertex, TEdge, TGraph> class.

Declaration
public TSP(TGraph visitedGraph, Func<TEdge, double> edgeWeights)
Parameters
Type Name Description
TGraph visitedGraph

Graph to visit.

System.Func<TEdge, System.Double> edgeWeights

Function that computes the weight for a given edge.

Exceptions
Type Condition
System.ArgumentNullException

visitedGraph is null.

System.ArgumentNullException

edgeWeights is null.

Properties

| Improve this Doc View Source

BestCost

Best cost found to answer the problem.

Declaration
public double BestCost { get; }
Property Value
Type Description
System.Double
| Improve this Doc View Source

ResultPath

Shortest path found, otherwise null.

Declaration
public BidirectionalGraph<TVertex, TEdge> ResultPath { get; }
Property Value
Type Description
BidirectionalGraph<TVertex, TEdge>

Methods

| Improve this Doc View Source

Initialize()

Called on algorithm initialization step.

Declaration
protected override void Initialize()
Overrides
QuikGraph.Algorithms.ShortestPath.ShortestPathAlgorithmBase<TVertex, TEdge, TGraph>.Initialize()
| Improve this Doc View Source

InternalCompute()

Algorithm compute step.

Declaration
protected override void InternalCompute()
Overrides
QuikGraph.Algorithms.AlgorithmBase<TGraph>.InternalCompute()

Implements

IAlgorithm<TGraph>
IComputation
IAlgorithmComponent
IVertexColorizerAlgorithm<TVertex>
ITreeBuilderAlgorithm<TVertex, TEdge>
IDistancesCollection<TVertex>

Extension Methods

GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, String)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, String, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, XmlWriter)
GraphMLExtensions.SerializeToGraphML<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, XmlReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, TextReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeFromGraphML<TVertex, TEdge, TGraph>(TGraph, String, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
GraphMLExtensions.DeserializeAndValidateFromGraphML<TVertex, TEdge, TGraph>(TGraph, TextReader, IdentifiableVertexFactory<TVertex>, IdentifiableEdgeFactory<TVertex, TEdge>)
SerializationExtensions.SerializeToXml<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>, String, String, String, String)
SerializationExtensions.SerializeToXml<TVertex, TEdge, TGraph>(TGraph, XmlWriter, VertexIdentity<TVertex>, EdgeIdentity<TVertex, TEdge>, String, String, String, String, Action<XmlWriter, TGraph>, Action<XmlWriter, TVertex>, Action<XmlWriter, TEdge>)
  • Improve this Doc
  • View Source
In This Article
Back to top QuikGraph