Krzysztof Krawiec



edit SideBar

This page will be devoted to ScaPS, a compact program synthesis (genetic programming in particular) framework I wrote in Scala.


  • 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


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 {
  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.

Powered by PmWiki