A collection of tools for the interpretable safety validation of autonomous system. See the following paper for a description of the methods: https://arxiv.org/abs/2004.06805
See examples/sample_optimization.jl for an example of how to use the package.
The steps include
- Defining a Multivariate time series distribution
- Define a cost function
- Call the
optimizefunction with the following options
eval_fn::Function- Function that evaluates the cost of a sample from theMvTimeseriesDistribution.d::MvTimeseriesDistribution- The baseline sampling distribution.rng::AbstractRNG- The random number generator. Default:Random.GLOBAL_RNG.loss- The loss function that takes a RuleNode as input and returns a loss. Best practice is to set theeval_fnand use the default here. Default:loss_fn(eval_fn, d, rng = rng).Npop- Size of the population. Default:1000.Niter- Number of optimization iterations. Default:30.max_depth- The max tree depth for expressions. Default:10.opt- The optimization program. This option overides the population, iterations and max_depth if set independently. Default:GeneticProgram(Npop, Niter, max_depth, 0.3, 0.3, 0.4)comparison_distribution- The distribution for sampling comparisons likex < 0.5. Default:default_comparison_distribution(d).grammar- The grammar used to sample expressions. Default:create_grammar().verbose- Whether or not to print progress. Default:true
Maintained by Anthony Corso (acorso@stanford.edu)