search_algorithms

Values

pub fn a_star(
  get_next_states get_next_states: fn(state) -> List(state),
  get_next_cost get_next_cost: fn(state, state) -> Int,
  approx_remaining_cost approx_remaining_cost: fn(state) -> Int,
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(#(Int, List(state)), Nil)

A*

pub fn a_star_assoc(
  get_next_states get_next_states: fn(state) -> List(
    #(state, Int),
  ),
  approx_remaining_cost approx_remaining_cost: fn(state) -> Int,
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(#(Int, List(state)), Nil)

A* w/ associated transition costs

pub fn breadth_first(
  get_next_states get_next_states: fn(state) -> List(state),
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(List(state), Nil)

Breadth First Search

pub fn depth_first(
  get_next_states get_next_states: fn(state) -> List(state),
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(List(state), Nil)

Depth First Search

pub fn dijkstra(
  get_next_states get_next_states: fn(state) -> List(state),
  get_next_cost get_next_cost: fn(state, state) -> Int,
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(#(Int, List(state)), Nil)

Dijkstra

pub fn dijkstra_assoc(
  get_next_states get_next_states: fn(state) -> List(
    #(state, Int),
  ),
  is_found is_found: fn(state) -> Bool,
  initial_state initial_state: state,
) -> Result(#(Int, List(state)), Nil)

Dijkstra w/ associated transition costs

Search Document