HOG2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FringeSearch Class Reference

#include <FringeSearch.h>

Inheritance diagram for FringeSearch:
Inheritance graph
[legend]
Collaboration diagram for FringeSearch:
Collaboration graph
[legend]

Public Member Functions

 FringeSearch ()
 
const char * GetName ()
 
virtual pathGetPath (GraphAbstraction *aMap, node *from, node *to, reservationProvider *rp=0)
 
void setUseBPMX (bool use)
 
void setHeuristicProvider (heuristicProvider *hh)
 
unsigned int getNodesReopened ()
 
unsigned int getHValuesPropagated ()
 
- Public Member Functions inherited from SearchAlgorithm
 SearchAlgorithm ()
 
virtual ~SearchAlgorithm ()
 
uint64_t GetNodesExpanded ()
 
uint64_t GetNodesTouched ()
 
virtual void LogFinalStats (StatCollection *)
 

Private Member Functions

void initializeSearch (GraphAbstraction *aGraph, node *from, node *to)
 
bool onClosedList (node *n)
 
bool onOpenList (node *n)
 
void addToClosedList (node *n)
 
void addToOpenList (node *n)
 
void addToOpenList2 (node *n)
 
void moveToOpenList1 (node *n)
 
double getFCost (node *n)
 
double getGCost (node *n)
 
double getHCost (node *n)
 
double h (node *n1, node *n2)
 
void setHCost (node *n, double val)
 
void addCosts (node *n, node *parent, edge *e)
 
void getCosts (node *n, costs &val)
 
void updateCosts (node *n, node *parent, edge *e)
 
pathextractBestPath (node *n)
 
void checkIteration ()
 
void propagateHValues (node *n, int dist=10000)
 
void propagateGValues (node *n)
 

Private Attributes

nodegoal
 
Graphg
 
GraphAbstractionaMap
 
heuristicProviderhp
 
nodeList list1
 
nodeList list2
 
nodeListcurrList
 
nodeListnextList
 
nodeList closedList
 
costList costTable
 
double currFLimit
 
double nextFLimit
 
unsigned int nodesReopened
 
unsigned int nodesHPropagated
 
bool bpmx
 

Additional Inherited Members

- Public Attributes inherited from SearchAlgorithm
uint32_t nodesExpanded
 
uint32_t nodesTouched
 

Detailed Description

Definition at line 30 of file FringeSearch.h.

Constructor & Destructor Documentation

◆ FringeSearch()

FringeSearch::FringeSearch ( )

Definition at line 20 of file FringeSearch.cpp.

References bpmx, currList, hp, list1, list2, and nextList.

Member Function Documentation

◆ addCosts()

void FringeSearch::addCosts ( node n,
node parent,
edge e 
)
private

◆ addToClosedList()

void FringeSearch::addToClosedList ( node n)
private

Definition at line 145 of file FringeSearch.cpp.

References closedList, and graph_object::key.

Referenced by GetPath().

◆ addToOpenList()

void FringeSearch::addToOpenList ( node n)
private

Definition at line 120 of file FringeSearch.cpp.

References currList, and graph_object::key.

Referenced by GetPath().

◆ addToOpenList2()

void FringeSearch::addToOpenList2 ( node n)
private

Definition at line 139 of file FringeSearch.cpp.

References graph_object::key, and nextList.

Referenced by GetPath().

◆ checkIteration()

void FringeSearch::checkIteration ( )
private

Definition at line 294 of file FringeSearch.cpp.

References currFLimit, currList, MAXFLOAT, nextFLimit, nextList, and verbose.

Referenced by GetPath().

◆ extractBestPath()

path * FringeSearch::extractBestPath ( node n)
private

◆ getCosts()

void FringeSearch::getCosts ( node n,
costs val 
)
private

◆ getFCost()

double FringeSearch::getFCost ( node n)
private

Definition at line 167 of file FringeSearch.cpp.

References costs::gCost, getCosts(), and costs::hCost.

Referenced by GetPath(), propagateGValues(), and updateCosts().

◆ getGCost()

double FringeSearch::getGCost ( node n)
private

Definition at line 176 of file FringeSearch.cpp.

References costs::gCost, and getCosts().

Referenced by addCosts(), GetPath(), and updateCosts().

◆ getHCost()

double FringeSearch::getHCost ( node n)
private

Definition at line 185 of file FringeSearch.cpp.

References getCosts(), costs::hCost, and MAXFLOAT.

Referenced by addCosts(), GetPath(), and propagateHValues().

◆ getHValuesPropagated()

unsigned int FringeSearch::getHValuesPropagated ( )
inline

Definition at line 38 of file FringeSearch.h.

References nodesHPropagated.

◆ GetName()

const char* FringeSearch::GetName ( )
inlinevirtual

Implements SearchAlgorithm.

Definition at line 33 of file FringeSearch.h.

References bpmx.

◆ getNodesReopened()

unsigned int FringeSearch::getNodesReopened ( )
inline

Definition at line 37 of file FringeSearch.h.

References nodesReopened.

◆ GetPath()

path * FringeSearch::GetPath ( GraphAbstraction aMap,
node from,
node to,
reservationProvider rp = 0 
)
virtual

◆ h()

double FringeSearch::h ( node n1,
node n2 
)
private

Definition at line 366 of file FringeSearch.cpp.

References aMap, node::GetNum(), heuristicProvider::h(), GraphAbstraction::h(), and hp.

Referenced by addCosts().

◆ initializeSearch()

void FringeSearch::initializeSearch ( GraphAbstraction aGraph,
node from,
node to 
)
private

◆ moveToOpenList1()

void FringeSearch::moveToOpenList1 ( node n)
private

Definition at line 126 of file FringeSearch.cpp.

References currList, node::GetNum(), graph_object::key, nextList, and verbose.

Referenced by propagateGValues().

◆ onClosedList()

bool FringeSearch::onClosedList ( node n)
private

Definition at line 151 of file FringeSearch.cpp.

References closedList, and graph_object::key.

Referenced by GetPath(), propagateGValues(), and propagateHValues().

◆ onOpenList()

bool FringeSearch::onOpenList ( node n)
private

Definition at line 158 of file FringeSearch.cpp.

References graph_object::key, list1, and list2.

Referenced by GetPath(), propagateGValues(), and propagateHValues().

◆ propagateGValues()

void FringeSearch::propagateGValues ( node n)
private

◆ propagateHValues()

void FringeSearch::propagateHValues ( node n,
int  dist = 10000 
)
private

◆ setHCost()

void FringeSearch::setHCost ( node n,
double  val 
)
private

◆ setHeuristicProvider()

void FringeSearch::setHeuristicProvider ( heuristicProvider hh)
inline

Definition at line 36 of file FringeSearch.h.

References hp.

◆ setUseBPMX()

void FringeSearch::setUseBPMX ( bool  use)
inline

Definition at line 35 of file FringeSearch.h.

References bpmx.

◆ updateCosts()

void FringeSearch::updateCosts ( node n,
node parent,
edge e 
)
private

Member Data Documentation

◆ aMap

GraphAbstraction* FringeSearch::aMap
private

Definition at line 61 of file FringeSearch.h.

Referenced by GetPath(), h(), and initializeSearch().

◆ bpmx

bool FringeSearch::bpmx
private

Definition at line 69 of file FringeSearch.h.

Referenced by addCosts(), FringeSearch(), GetName(), and setUseBPMX().

◆ closedList

nodeList FringeSearch::closedList
private

Definition at line 65 of file FringeSearch.h.

Referenced by addToClosedList(), initializeSearch(), and onClosedList().

◆ costTable

costList FringeSearch::costTable
private

Definition at line 66 of file FringeSearch.h.

Referenced by addCosts(), getCosts(), initializeSearch(), setHCost(), and updateCosts().

◆ currFLimit

double FringeSearch::currFLimit
private

Definition at line 67 of file FringeSearch.h.

Referenced by checkIteration(), GetPath(), propagateGValues(), and updateCosts().

◆ currList

nodeList* FringeSearch::currList
private

Definition at line 64 of file FringeSearch.h.

Referenced by addToOpenList(), checkIteration(), FringeSearch(), GetPath(), and moveToOpenList1().

◆ g

Graph* FringeSearch::g
private

◆ goal

node* FringeSearch::goal
private

Definition at line 59 of file FringeSearch.h.

Referenced by addCosts(), and initializeSearch().

◆ hp

heuristicProvider* FringeSearch::hp
private

Definition at line 62 of file FringeSearch.h.

Referenced by FringeSearch(), h(), and setHeuristicProvider().

◆ list1

nodeList FringeSearch::list1
private

Definition at line 63 of file FringeSearch.h.

Referenced by FringeSearch(), initializeSearch(), and onOpenList().

◆ list2

nodeList FringeSearch::list2
private

Definition at line 63 of file FringeSearch.h.

Referenced by FringeSearch(), initializeSearch(), and onOpenList().

◆ nextFLimit

double FringeSearch::nextFLimit
private

Definition at line 67 of file FringeSearch.h.

Referenced by checkIteration(), GetPath(), and updateCosts().

◆ nextList

nodeList * FringeSearch::nextList
private

Definition at line 64 of file FringeSearch.h.

Referenced by addToOpenList2(), checkIteration(), FringeSearch(), and moveToOpenList1().

◆ nodesHPropagated

unsigned int FringeSearch::nodesHPropagated
private

Definition at line 68 of file FringeSearch.h.

Referenced by getHValuesPropagated(), initializeSearch(), and propagateHValues().

◆ nodesReopened

unsigned int FringeSearch::nodesReopened
private

Definition at line 68 of file FringeSearch.h.

Referenced by getNodesReopened(), initializeSearch(), and propagateGValues().


The documentation for this class was generated from the following files: