Class AStar<T>
- java.lang.Object
-
- com.inductiveautomation.ignition.designer.blockandconnector.routing.AStar<T>
-
public abstract class AStar<T> extends java.lang.Object
A* algorithm implementation using the method design pattern.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AStar.Path
-
Constructor Summary
Constructors Constructor Description AStar()
Default c'tor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.util.List<T>
compute(T start)
Find the shortest path to a goal starting fromstart
.protected java.lang.Double
f(AStar.Path p, T from, T to)
Total cost function to reach the nodeto
fromfrom
.protected abstract java.lang.Double
g(AStar.Path path, T from, T to)
Cost for the operation to go toto
fromfrom.
protected abstract java.util.List<T>
generateSuccessors(T node)
Generate the successors for a given node.java.lang.Double
getCost()
Get the cost to reach the last node in the path.int
getExpandedCounter()
Check how many times a node was expanded.protected abstract java.lang.Double
h(T from, T to)
Estimated cost to reach a goal node.protected abstract boolean
isGoal(T node)
Check if the current node is a goal for the problem.
-
-
-
Method Detail
-
isGoal
protected abstract boolean isGoal(T node)
Check if the current node is a goal for the problem.- Parameters:
node
- The node to check.- Returns:
true
if it is a goal,false otherwise.
-
g
protected abstract java.lang.Double g(AStar.Path path, T from, T to)
Cost for the operation to go toto
fromfrom.
- Parameters:
from
- The node we are leaving.to
- The node we are reaching.- Returns:
- The cost of the operation.
-
h
protected abstract java.lang.Double h(T from, T to)
Estimated cost to reach a goal node. An admissible heuristic never gives a cost bigger than the real one.from.
- Parameters:
from
- The node we are leaving.to
- The node we are reaching.- Returns:
- The estimated cost to reach an object.
-
generateSuccessors
protected abstract java.util.List<T> generateSuccessors(T node)
Generate the successors for a given node.- Parameters:
node
- The node we want to expand.- Returns:
- A list of possible next steps.
-
getExpandedCounter
public int getExpandedCounter()
Check how many times a node was expanded.- Returns:
- A counter of how many times a node was expanded.
-
f
protected java.lang.Double f(AStar.Path p, T from, T to)
Total cost function to reach the nodeto
fromfrom
.The total cost is defined as: f(x) = g(x) + h(x).
- Parameters:
from
- The node we are leaving.to
- The node we are reaching.- Returns:
- The total cost.
-
getCost
public java.lang.Double getCost()
Get the cost to reach the last node in the path.- Returns:
- The cost for the found path.
-
-