Design: Experimental designs

class epyc.Design

Base class for experimental designs.

A “design” is a protocol for conducting a set of experiments so as to maximise the amount of useful data collected. It is a common topic in real-world experiments, and can be applied to computational experiments as well.

A design in epyc converts a set of experimental parameters into ann experimental configuration, a list consisting of pairs of an experiment to run and the parameters at which to run it.

A design must be able to cope with being passed None as an experiment, and should return None for all the experiments in the configuration: this allows for pre-checks to be performed.

A design is associated with each Lab. By default the standard FactorialDesign is used, and no further action is needed. Other designs can be selected at lab creation time.

Creating experiments

Design.experiments(e: epyc.experiment.Experiment, ps: Dict[str, Any]) → List[Tuple[epyc.experiment.Experiment, Dict[str, Any]]]

Convert a mapping from parameter name to list of values into a list of mappings from parameter names to single values paired with experiment to run at that point, according to the requirements of the design. This method must be overridden by sub-classes.

Parameters:ps – a dict of parameter values
Returns:an experimental configuration