Sparkle is a Programming by Optimisation (PbO)-based problem-solving platform designed to enable the widespread and effective use of PbO techniques for improving the state-of-the-art in solving a broad range of prominent AI problems, including SAT and AI Planning.
Project description
Sparkle
Sparkle is a Programming by Optimisation (PbO)-based problem-solving platform designed to enable the widespread and effective use of PbO techniques for improving the state-of-the-art in solving a broad range of prominent AI problems, including SAT and AI Planning.
Specifically, Sparkle facilitates the use of:
- Automated algorithm configuration
- Automated algorithm selection
Installation
The Sparkle package can be installed using Pip. We recommend creating a new virtual environment (For example, venv) before to ensure no clashes between dependencies occur.
$ pip install SparkleAI
Alternatively, to be able to fully use the Command Line Interface (CLI) of Sparkle, a Conda environment is required (For Conda installation see here). Simply download the environment.yml
file from the Github and run:
$ conda env create -f environment.yml
And afterwards activated by:
$ conda activate sparkle
Note that the creation of the Conda environment also takes care of the installation of Sparkle itself.
Install dependencies
Asside from several package dependencies, Sparkle's package / CLI relies on a few user supplied executables:
LaTex
compiler (pdflatex) for report generationJava
, tested with version 1.8.0_402, in order to use SMAC2
Other dependencies are handled by the Conda environment, but if that is not an option for you please ensure you have the following:
- libnuma and numactl for Runsolver compilation which sparkle uses to measure solvers meta data. This is restricted to Linux based systems.
- Swig 4.0.2 for SMAC3, which is in turn used by AutoFolio.
For detailed installation instructions see the documentation: https://sparkle-ai.readthedocs.io/
Examples
See the Examples
directory for some examples on how to use Sparkle
. All Sparkle CLI commands need to be executed from the root of the initialised Sparkle directory.
Documentation
The documentation can be read at https://sparkle-ai.readthedocs.io/.
A PDF
is also available in the repository at Documentation/sparkle-userguide.pdf.
Licensing
Sparkle is distributed under the MIT licence
Component licences
Sparkle is distributed with a number of external components, solvers, and instance sets. Descriptions and licensing information for each these are included in the sparkle/Components
and Examples/Resources/
directories.
The SATzilla 2012 feature extractor is used from http://www.cs.ubc.ca/labs/beta/Projects/SATzilla/
with some modifications. The main modification of this component is to disable calling the SAT instance preprocessor called SatELite. It is located in: Examples/Resources/Extractors/SAT-features-competition2012_revised_without_SatELite_sparkle/
Citation
If you use Sparkle for one of your papers and want to cite it, please cite our paper describing Sparkle: K. van der Blom, H. H. Hoos, C. Luo and J. G. Rook, Sparkle: Toward Accessible Meta-Algorithmics for Improving the State of the Art in Solving Challenging Problems, in IEEE Transactions on Evolutionary Computation, vol. 26, no. 6, pp. 1351-1364, Dec. 2022, doi: 10.1109/TEVC.2022.3215013.
@article{BloEtAl22,
title={Sparkle: Toward Accessible Meta-Algorithmics for Improving the State of the Art in Solving Challenging Problems},
author={van der Blom, Koen and Hoos, Holger H. and Luo, Chuan and Rook, Jeroen G.},
journal={IEEE Transactions on Evolutionary Computation},
year={2022},
volume={26},
number={6},
pages={1351--1364},
doi={10.1109/TEVC.2022.3215013}
}
Maintainers
Thijs Snelleman, Jeroen Rook, Holger H. Hoos, Noah Peil, Brian Schiller
Contributors
Chuan Luo, Richard Middelkoop, Jérémie Gobeil, Sam Vermeulen, Marcel Baumann, Jakob Bossek, Tarek Junied, Yingliu Lu, Malte Schwerin, Aaron Berger, Marie Anastacio, Aaron Berger Koen van der Blom
Contact
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file sparkleai-0.8.5.tar.gz
.
File metadata
- Download URL: sparkleai-0.8.5.tar.gz
- Upload date:
- Size: 28.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a841ced3b07daa508c5e54966c565a512dfebdb54bb236012a3e71f1d10df96e |
|
MD5 | b7c40e4154a6b2e2dffc5eff71f4dbe7 |
|
BLAKE2b-256 | f2d6a3f0f06cf5d39820d253c0bed8ca64b6e8723754090b7a13e090c7172b65 |