from openturns.viewer import View thetaDist = ot.Normal(2.0, 0.1) if 'VarianceMeasure' == 'WorstCaseMeasure': thetaDist = ot.Uniform(-1.0, 4.0) elif 'ChanceMeasure' in 'VarianceMeasure': thetaDist = ot.Normal(1.0, 1.0) f_base = ot.Function(['x', 'theta'], ['y'], ['x*theta']) f = ot.Function(f_base, [1], thetaDist.getMean()) if 'VarianceMeasure' == 'JointChanceMeasure': measure = otrobopt.JointChanceMeasure(f, thetaDist, ot.GreaterOrEqual(), 0.95) elif 'VarianceMeasure' == 'IndividualChanceMeasure': measure = otrobopt.IndividualChanceMeasure(f, thetaDist, ot.GreaterOrEqual(), [0.95]) elif 'VarianceMeasure' == 'MeanStandardDeviationTradeoffMeasure': measure = otrobopt.MeanStandardDeviationTradeoffMeasure( f, thetaDist, [0.8]) elif 'VarianceMeasure' == 'QuantileMeasure': measure = otrobopt.QuantileMeasure(f, thetaDist, 0.99) else: measure = otrobopt.VarianceMeasure(f, thetaDist) N = 10 experiment = ot.LHSExperiment(N) factory = otrobopt.MeasureFactory(experiment) discretizedMeasure = factory.build(measure) continuous_measure = otrobopt.MeasureFunction(measure) discretized_measure = otrobopt.MeasureFunction(discretizedMeasure)
import otrobopt # First test: theta of dimension 1 thetaDist = ot.Normal(2.0, 0.1) f_base = ot.SymbolicFunction(['x', 'theta'], ['x*theta']) f = ot.ParametricFunction(f_base, [1], [1.0]) x = [1.0] measures = [otrobopt.MeanMeasure(f, thetaDist), otrobopt.VarianceMeasure(f, thetaDist), otrobopt.WorstCaseMeasure(f, ot.Uniform(-1.0, 4.0)), otrobopt.WorstCaseMeasure(f, ot.Uniform(-1.0, 4.0), False), otrobopt.JointChanceMeasure( f, ot.Normal(1.0, 1.0), ot.GreaterOrEqual(), 0.95), otrobopt.IndividualChanceMeasure( f, ot.Normal(1.0, 1.0), ot.GreaterOrEqual(), [0.95]), otrobopt.MeanStandardDeviationTradeoffMeasure(f, thetaDist, [0.8]), otrobopt.QuantileMeasure(f, thetaDist, 0.99) ] aggregated = otrobopt.AggregatedMeasure(measures) measures.append(aggregated) for measure in measures: print(measure, '(continuous)', measure(x)) N = 10000 experiment = ot.LHSExperiment(N) factory = otrobopt.MeasureFactory(experiment) discretizedMeasure = factory.build(measure) print(discretizedMeasure, '(discretized LHS)', discretizedMeasure(x)) N = 4 experiment = ot.GaussProductExperiment([N])