Documentation ¶
Index ¶
- type Distance
- type Graph
- func (graph *Graph) AddEdge(from, to int, weight float64)
- func (graph *Graph) AddVertex(labelExternal, labelInternal int)
- func (graph *Graph) ComputePath(middleID int, prevF, prevR map[int]int) []int
- func (graph *Graph) CreateVertex(label int)
- func (graph *Graph) ExportToFile(fname string) error
- func (graph *Graph) PrepareContracts()
- func (graph *Graph) Preprocess() []int
- func (graph *Graph) ShortestPath(source, target int) (float64, []int)
- func (graph *Graph) VanillaShortestPath(source, target int) (float64, []int)
- type Processed
- type Vertex
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Distance ¶
type Distance struct {
// contains filtered or unexported fields
}
func NewDistance ¶
func NewDistance() *Distance
type Graph ¶
type Graph struct { Vertices []*Vertex // contains filtered or unexported fields }
Graph Graph object
pqImportance Heap to store importance of each vertex pqComparator Heap to store traveled distance mapping Internal map for 1:1 relation of internal IDs to user's IDs Vertices Slice of vertices of graph nodeOrdering Ordering of vertices contracts found and stored contraction hierarchies
func ImportFromFile ¶
ImportFromFile Imports graph from file of CSV-format
Header of CSV-file: from_vertex_id;to_vertex_id;from_vertex_internal_id;to_vertex_internal_id;edge_weight;contract_id;contract_internal_id int;int;int;int;float64;-1 (no contract) else external ID of contracted vertex; -1 (no contract) else internal ID of contracted vertex
func (*Graph) AddEdge ¶
AddEdge Adds new add between two vertices
from User's definied ID of first vertex of edge to User's definied ID of last vertex of edge weight User's definied weight of edge
func (*Graph) AddVertex ¶
AddVertex Adds vertex with provided internal ID
labelExternal User's definied ID of vertex labelInternal internal ID of vertex
func (*Graph) ComputePath ¶
ComputePath Returns slice of IDs (user defined) of computed path
func (*Graph) CreateVertex ¶
CreateVertex Creates new vertex and assign internal ID to it
label User's definied ID of vertex
func (*Graph) ExportToFile ¶
ExportToFile Exports graph to file of CSV-format
Header of CSV-file: from_vertex_id;to_vertex_id;from_vertex_internal_id;to_vertex_internal_id;edge_weight;contract_id;contract_internal_id int;int;int;int;float64;-1 (no contract) else external ID of contracted vertex; -1 (no contract) else internal ID of contracted vertex
func (*Graph) PrepareContracts ¶
func (graph *Graph) PrepareContracts()
PrepareContracts Compute contraction hierarchies
func (*Graph) Preprocess ¶
Preprocess Computes contraction hierarchies and returns node ordering
func (*Graph) ShortestPath ¶
ShortestPath Computes and returns shortest path and it's cost (extended Dijkstra's algorithm)
If there are some errors then function returns '-1.0' as cost and nil as shortest path
source User's definied ID of source vertex target User's definied ID of target vertex
func (*Graph) VanillaShortestPath ¶
VanillaShortestPath Computes and returns shortest path and it's cost (vanilla Dijkstra's algorithm)
If there are some errors then function returns '-1.0' as cost and nil as shortest path
source User's definied ID of source vertex target User's definied ID of target vertex
type Processed ¶
type Processed struct {
// contains filtered or unexported fields
}
func NewProcessed ¶
func NewProcessed() *Processed