C++20 template-based framework for implementing and benchmarking GOFAI algorithms. Uses concept constraints for compile-time type checking and zero-overhead abstractions.
concepts/ Type contracts enforcing interface requirements
policies/ Algorithm implementations (hill-climbing variants)
solvers/ Orchestration layer coordinating policies with problems
trackers/ Monitoring hooks at key solver phases
problems/ Domain implementations (N-Queens, 8-Puzzle)
datastructures/ Container types (queues, stacks, priority queues)
tests/ Benchmarks comparing algorithms on different problems
make all # Compile all
make test_nq # Run N-Queens benchmark
make test_p8 # Run Puzzle8 benchmark- Template specialization for algorithm variants (no inheritance)
- Policies define own working set structure
- Add new algorithms: implement single policy class only
- Trackers provide hooks for solvers' performance and metrics detection
C++20 compiler
Copyright © 2026 Vincenzo Di Carlo
This project is licensed under the GNU General Public License v3.0 - see LICENSE file.