Explore with PPSE

Suggest edits
Documentation > Explore

Content:

1 - PPSE
2 - Example


PPSE 🔗

The PPSE method is a variant of PSE that computes the likelihood of a pattern given probability distributions over the input space. PPSE efficiently discovers the diversity of patterns produced by a simulation model and estimates the marginal likelihood of all the discovered patterns.

Example 🔗

Here is an example of using the PPSE method in an OpenMOLE script:

val param1 = Val[Double]
val param2 = Val[Double]
val output1 = Val[Double]
val output2 = Val[Double]

// PPSE method
PPSEEvolution(
  evaluation = modelTask,
  parallelism = 10,
  termination = 100,
  genome = Seq(
    param1 in (0.0 to 1.0),
    param2 in (-10.0 to 10.0)),
  objective = Seq(
    output1 in (0.0 to 40.0 by 5.0),
    output2 in (0.0 to 4000.0 by 50.0))
) hook (workDirectory / "results", frequency = 100)
Optionally, you can define density distributions on your inputs:

val param1 = Val[Double]
val param2 = Val[Double]
val output1 = Val[Double]
val output2 = Val[Double]

// PPSE method with density distributions
PPSEEvolution(
  evaluation = modelTask,
  parallelism = 10,
  termination = 100,
  genome = Seq(
    param1 in (0.0 to 1.0),
    param2 in (-10.0 to 10.0)),
  objective = Seq(
    output1 in (0.0 to 40.0 by 5.0),
    output2 in (0.0 to 4000.0 by 50.0)),
  density = Seq(
    param1 in NormalDistribution(2.0, 0.1),
    param2 in NormalDistribution(0.0, 1.0)
  )
) hook (workDirectory / "results", frequency = 100)