6 # redef fun debug_a_star do return true
12 redef type N
: NamedNode
16 init(graph
: Graph[N
, Link[N
]], name
: String)
22 redef fun to_s
do return "node:{name}"
25 fun print_path
(path
: nullable Path[NamedNode]) do if path
== null then
28 var names
= new Array[String]
29 while not path
.at_end_of_path
do
33 print names
.join
(", ")
42 var graph
= new Graph[NamedNode,Link[NamedNode]]
44 var na
= new NamedNode(graph
, "a")
45 var nb
= new NamedNode(graph
, "b")
46 var nc
= new NamedNode(graph
, "c")
47 var nd
= new NamedNode(graph
, "d")
48 var ne
= new NamedNode(graph
, "e")
50 var lab
= new Link[NamedNode](graph
, na
, nb
)
51 var lac
= new Link[NamedNode](graph
, na
, nc
)
52 var lbd
= new Link[NamedNode](graph
, nb
, nd
)
53 var lcd
= new Link[NamedNode](graph
, nc
, nd
)
54 var lde
= new Link[NamedNode](graph
, nd
, ne
)
56 var context
= new ConstantPathContext[NamedNode, Link[NamedNode]](graph
)
58 var path
= na
.path_to
(ne
, 100, context
)
68 var graph
= new Graph[NamedNode,Link[NamedNode]]
70 var na
= new NamedNode(graph
, "a")
71 var nb
= new NamedNode(graph
, "b")
72 var nc
= new NamedNode(graph
, "c")
73 var nd
= new NamedNode(graph
, "d")
74 var ne
= new NamedNode(graph
, "e")
76 var lab
= new Link[NamedNode](graph
, na
, nb
)
77 var lac
= new Link[NamedNode](graph
, na
, nc
)
78 var lbd
= new Link[NamedNode](graph
, nb
, nd
)
79 var lcd
= new Link[NamedNode](graph
, nc
, nd
)
81 var context
= new ConstantPathContext[NamedNode, Link[NamedNode]](graph
)
83 var path
= na
.path_to
(ne
, 100, context
)
93 var graph
= new Graph[NamedNode,WeigthedLink[NamedNode]]
95 var na
= new NamedNode(graph
, "a")
96 var nb
= new NamedNode(graph
, "b")
97 var nc
= new NamedNode(graph
, "c")
98 var nd
= new NamedNode(graph
, "d")
99 var ne
= new NamedNode(graph
, "e")
101 var lab
= new WeigthedLink[NamedNode](graph
, na
, nb
, 2)
102 var lac
= new WeigthedLink[NamedNode](graph
, na
, nc
, 3)
103 var lbd
= new WeigthedLink[NamedNode](graph
, nb
, nd
, 1)
104 var lcd
= new WeigthedLink[NamedNode](graph
, nc
, nd
, 3)
105 var lde
= new WeigthedLink[NamedNode](graph
, nd
, ne
, 8)
107 var context
= new WeightedPathContext[NamedNode, WeigthedLink[NamedNode]](graph
)
109 var path
= na
.path_to
(ne
, 100, context
)
117 fun case_weighted_too_long
119 var graph
= new Graph[NamedNode,WeigthedLink[NamedNode]]
121 var na
= new NamedNode(graph
, "a")
122 var nb
= new NamedNode(graph
, "b")
123 var nc
= new NamedNode(graph
, "c")
124 var nd
= new NamedNode(graph
, "d")
125 var ne
= new NamedNode(graph
, "e")
127 var lab
= new WeigthedLink[NamedNode](graph
, na
, nb
, 2)
128 var lac
= new WeigthedLink[NamedNode](graph
, na
, nc
, 3)
129 var lbd
= new WeigthedLink[NamedNode](graph
, nb
, nd
, 1)
130 var lcd
= new WeigthedLink[NamedNode](graph
, nc
, nd
, 3)
131 var lde
= new WeigthedLink[NamedNode](graph
, nd
, ne
, 8)
133 var context
= new WeightedPathContext[NamedNode, WeigthedLink[NamedNode]](graph
)
135 var path
= na
.path_to
(ne
, 5, context
)
142 case_weighted_too_long