This page will be devoted to ScaPS, a compact program synthesis (genetic programming in particular) framework I wrote in Scala.
Features
- Implemented tree-based GP, ready for extension for other program representations (e.g., graphs or linear structures)
- 20+ implemented benchmarks in the Boolean domain, categorical domain, and symbolic regression
- Supports various instruction sets
- Various modes of program evaluation available: scalar, multiobjective, test-based, etc.
- Configurable via parameter strings
Example
Complete specification of configuration of a synthesis experiment in the Boolean domain (using the mixin front-end).
class BooleanDefault(args: String)
extends OptionsFromArgs(args) with Rng
with BooleanBenchmark
with SearchDrivers.Hamming[Seq[Boolean], Boolean]
with CorrectnessPredicates.Strict[ScalarEvaluationMin]
with TreeGPDefault[Seq[Boolean], Boolean, ScalarEvaluationMin] {
def this(args: Array[String]) = this(args.mkString(" "))
}
class BooleanUseCase1 {
@org.junit.Test
def test: Unit = new BooleanDefault("--benchmark mux6 --maxGenerations 100 --instructions withNeg").launch
}
This page is under construction. See the page of the Scevo library, which ScaPS is based on.