This tool provides controller synthesis/orchestration of resource programs
Logical action theories for resource programs are given by situation calculus basic action theories,
This tool implements two different possible solvers/search algorithms for controller synthesis, namely: A* search (A*), and Greedy Search (GS).
- CMake (>=3.26)
- Git (for submodule cloning)
- C++23 compiler (tested on Windows MSVC 19.37.32822.0)
- GraphViz for visualisation (
dot
must be in PATH)
Clone the repository alongside its submodules (shallow submodule cloning is optional).
git clone --recurse-submodules --shallow-submodules https://github.com/nightly/scs
git submodule update --init --recursive
During development, to correctly pull any newly added Git submodules to your local repository (git pull
alone doesn't suffice):
git submodule update --recursive
Build the project using CMake or simply open it using an IDE that has CMake support.
cmake -S. -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
All of the tests can also be run with the following:
cd build
ctest --output-on-failure --verbose
app
: contains a CLI executable application.bench
: contains all the project's benchmarksdata
: has some sample programsdocs
: contains some incomplete basic documentation/implementation notesexamples
: small example programs that can be ran/viewedexports
: any directory marked exports gives any system/user-generated outputexternal
: 3rd party dependencies added as Git submodulessrc/scs
: SCS library codetests
: holds all tests & test data