Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pathwise

Generic search, optimization, and constraint-solving building blocks for Rust — a small, curated set of algorithms behind one consistent trait-based API, not an algorithms encyclopedia.

Status

Version 0.1 implements the generic search, optimization, constraint, and graph building blocks described below. The former duplicate CSP solver and scheduling domain modules were removed in favor of the actively used unifierschedulr layers; the generic cancellation and shared-incumbent primitives used by unifier remain here.

Scope

pathwise covers algorithms for exploring, searching, and optimizing over a problem's state space:

  • search — BFS, DFS, iterative deepening, uniform cost search, best-first search, A*, beam search
  • optimization — branch and bound, hill climbing, local search, simulated annealing
  • constraint — backtracking, forward checking, constraint propagation (AC-3), variable/value ordering heuristics
  • graph — topological sort, with matching/flow/coloring evaluated later against integrating petgraph rather than reimplementing it

Deliberately out of scope: sorting and data structures that std or established crates (e.g. petgraph) already cover well. pathwise only implements an algorithm where the algorithm itself is the API, not a drop-in replacement for slice::sort() or BinaryHeap.

Design

All search/optimization strategies solve the same generic problem shape — a Problem trait (state, moves, cost/score) that different strategies (astar, branch_and_bound, beam_search, simulated_annealing, ...) run against interchangeably. See plan/01-concept.md for the trait sketch and the phased roadmap toward a constraint solver and scheduling framework built on top of this crate.

Installation

Not yet published to crates.io.

License

MIT — see LICENSE.

About

Generic search, optimization, and constraint-solving building blocks for Rust

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages