Skip to content

mpdmanash/weighted-a-star

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Weighted A Star

A light-weight, reusable, and efficient C++17 implementation of Weighted A* planning algorithm

Features

  • Can be easily added to your project
  • Uses modern C++ optimizations
  • Efficient and Light-Weight

How to use it in your project

  • The implementation uses C++ templates, so you can have any data-structure that represents a state in the planning problem. The only requirement is that you also provide a hash function for the same data-structure if it is not available already in C++. Initialize the planner with custom data-structure that represents state stateT and action actionT, optionally along with the custom hash function for the state as such WAstar<stateT, actionT, stateHasher>.
  • You just have to provide the planner with three helper functions based on your domain
    • double getH(stateT s, stateT goal): Your implementation of any heuristic function for your domain which takes in a state s and finds the heuristic value to the goal. The return type of double is fixed in my implementation as it works will every case.
    • getSuccessors(stateT s): A function which my planner will call to get the successors of any state s. This allows you to have implicit, explicit or latice-based graphs etc. It returns a more complicated data-structure, so please refer to the code.
    • bool satisfiesGoal(stateT s, stateT goal): Sometimes for your planning problem the goal may be under-represented. Thus, my planner will allow you to specify a custom search termination condition which checks whether a state s satisfies the goal condition given by the state goal.

Installation

  • Just include the main header: #include "lib_planner.h"
  • Make sure to build with -std=c++17 flag and -O3 would also help.

Feature Tracker

  • Add demo planning problem
  • Support for a goal region instead of a single goal state

mpdmanash (at) cmu.edu

About

A light-weight, reusable, and efficient C++17 implementation of Weighted A* algorithm

Topics

Resources

License

Stars

Watchers

Forks

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy