Class: RGL::DijkstraVisitor

Inherits:
Object
  • Object
show all
Includes:
GraphVisitor
Defined in:
lib/rgl/dijkstra_visitor.rb

Overview

Dijkstra shortest path algorithm has the following event points:

* examine_vertex
* examine_edge
* edge_relaxed
* edge_not_relaxed
* finish_vertex

Direct Known Subclasses

BellmanFordVisitor

Instance Attribute Summary collapse

Attributes included from GraphVisitor

#color_map

Attributes included from GraphWrapper

#graph

Instance Method Summary collapse

Methods included from GraphVisitor

#attach_distance_map, #finished_vertex?, #follow_edge?, included, #initialize

Methods included from GraphVisitor::ClassMethods

#def_event_handlers

Methods included from GraphWrapper

#initialize

Instance Attribute Details

#distance_mapObject

Returns the value of attribute distance_map.



20
21
22
# File 'lib/rgl/dijkstra_visitor.rb', line 20

def distance_map
  @distance_map
end

#parents_mapObject

Returns the value of attribute parents_map.



20
21
22
# File 'lib/rgl/dijkstra_visitor.rb', line 20

def parents_map
  @parents_map
end

Instance Method Details

#resetObject

Returns visitor into initial state.



26
27
28
29
30
31
# File 'lib/rgl/dijkstra_visitor.rb', line 26

def reset
  super

  @distance_map = Hash.new(INFINITY)
  @parents_map  = {}
end

#set_source(source) ⇒ Object

Initializes visitor with a new source.



35
36
37
38
39
40
# File 'lib/rgl/dijkstra_visitor.rb', line 35

def set_source(source)
  reset

  color_map[source]    = :GRAY
  distance_map[source] = 0
end