Skip to content

Repository files navigation

AIlib - C++20 Solver Framework

C++20 template-based framework for implementing and benchmarking GOFAI algorithms. Uses concept constraints for compile-time type checking and zero-overhead abstractions.

Structure

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

Quick Start

make all       # Compile all
make test_nq   # Run N-Queens benchmark
make test_p8   # Run Puzzle8 benchmark

Key Points

  • 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

Requirements

C++20 compiler

License

Copyright © 2026 Vincenzo Di Carlo

This project is licensed under the GNU General Public License v3.0 - see LICENSE file.

About

A simple modern-C++ framework to test GOFAI (Good Old-Fashioned AI) solvers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages