def setup_algorithms(dist, training_data, n_x, n_a, n_y, delta): start = time.time() statistical_approximation = StatisticalApproximator(n_x, n_a, n_y, training_data, smoothing_mode='gaussian') function_approximation = FunctionApproximation(n_x, n_a, n_y, training_data) doctor_approximation = DoctorApproximator(n_x, n_a, n_y, training_data) print("Initializing Constraint") start = time.time() constraintStatUpper = Constraint(training_data, n_a, n_y, approximator=statistical_approximation, delta=delta, bound='upper') constraintFuncApprox = Constraint(training_data, n_a, n_y, approximator=function_approximation, delta=delta) constraint_exact_func = TrueConstraint(dist, approximator=function_approximation, delta=delta) print("Initializing the constraint took {:.3f} seconds".format(time.time() - start)) print("Initializing algorithms") algorithms = [ #ConstrainedGreedy(n_x, n_a, n_y, training_data, constraintStatUpper, statistical_approximation, # name='Constrained Greedy', label='CG'), # ConstrainedGreedy(n_x, n_a, n_y, split_training_data, constraintStatLower, statistical_approximation, # name='Constrained Greedy Lower', label='CG_L'), ConstrainedGreedy(n_x, n_a, n_y, training_data, constraintFuncApprox, function_approximation, name="Constrained Greedy FuncApprox", label="CG_F"), #ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraintStatUpper, # statistical_approximation), ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraintFuncApprox, function_approximation, name="Constrained Dynamic Programming FuncApprox", label="CDP_F"), #NaiveGreedy(n_x, n_a, n_y, function_approximation, max_steps=n_a), #NaiveGreedy(n_x, n_a, n_y, function_approximation, max_steps=n_a), NaiveDynamicProgramming(n_x, n_a, n_y, training_data, constraintStatUpper, reward=-0.35), Doctor(), EmulatedDoctor(n_x, n_a, n_y, training_data, approximator=doctor_approximation) ] return algorithms
def setup_algorithms(training_data, dist, delta): start = time.time() n_x = dist.n_x n_a = dist.n_a n_y = dist.n_y statistical_approximation_prior = StatisticalApproximator( n_x, n_a, n_y, training_data, smoothing_mode='gaussian') constraint_upper = Constraint(training_data, n_a, n_y, approximator=statistical_approximation_prior, delta=delta, bound='upper') constraint_lower = Constraint(training_data, n_a, n_y, approximator=statistical_approximation_prior, delta=delta, bound='lower') constraint_exact = TrueConstraint( dist, approximator=statistical_approximation_prior, delta=delta) algorithms = [ #ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_upper, statistical_approximation_prior, name="Dynamic Programming Upper Bound", label="CDP_U"), #ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_lower, statistical_approximation_prior, name="Dynamic Programming Lower bound", label="CDP_L"), #ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_exact, statistical_approximation_prior, name="Dynamic Programming Exact Bound", label="CDP_E"), ConstrainedGreedy(n_x, n_a, n_y, training_data, constraint_upper, statistical_approximation_prior, name="Greedy Upper Bound", label="CG_U"), ConstrainedGreedy(n_x, n_a, n_y, training_data, constraint_lower, statistical_approximation_prior, name="Greedy Lower Bound", label="CG_L"), ConstrainedGreedy(n_x, n_a, n_y, training_data, constraint_exact, statistical_approximation_prior, name="Greedy Exact Bound", label="CG_E"), ] print("Setting up algorithms took {:.3f} seconds".format(time.time() - start)) return algorithms
def setup_algorithms(training_data, dist, delta, train=True): start = time.time() n_x = dist.n_x n_a = dist.n_a n_y = dist.n_y statistical_approximation_prior = StatisticalApproximator( n_x, n_a, n_y, training_data, smoothing_mode='gaussian') constraint_prior = Constraint(training_data, n_a, n_y, approximator=statistical_approximation_prior, delta=delta) constraint_prior = TrueConstraint( dist, approximator=statistical_approximation_prior, delta=delta) algorithms = [ ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_prior, statistical_approximation_prior, name="Constrained Dynamic Programming", label="CDP"), ConstrainedGreedy(n_x, n_a, n_y, training_data, constraint_prior, statistical_approximation_prior, name="Constrained Greedy", label="CG"), NaiveGreedy(n_x, n_a, n_y, statistical_approximation_prior, round(delta * (n_a - 1)) + 1, name='Naive Greedy', label='NG'), NaiveDynamicProgramming(n_x, n_a, n_y, training_data, statistical_approximation_prior, reward=-(delta + 0.0001), name='Naive Dynamic Programming', label='NDP'), ] print("Setting up algorithms took {:.3f} seconds".format(time.time() - start)) return algorithms
def setup_algorithms(training_data, dist, delta, train=True): start = time.time() n_x = dist.n_x n_a = dist.n_a n_y = dist.n_y statistical_approximation_prior = StatisticalApproximator( n_x, n_a, n_y, training_data, smoothing_mode='gaussian') true_approximation = ExactApproximator(dist) constraint_upper_stat = Constraint( training_data, n_a, n_y, approximator=statistical_approximation_prior, delta=delta) constraint_upper_true = Constraint(training_data, n_a, n_y, approximator=true_approximation, delta=delta) constraint_exact_true = TrueConstraint(dist, approximator=true_approximation, delta=delta) constraint_exat_stat = TrueConstraint( dist, approximator=statistical_approximation_prior, delta=delta) algorithms = [ ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_upper_stat, statistical_approximation_prior, name="Dynamic Programming Upper Stat", label="CDP_US"), ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_upper_true, true_approximation, name="Dynamic Programming Upper True", label="CDP_UT"), ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_exact_true, true_approximation, name="Dynamic Programming Exact True", label="CDP_ET"), ConstrainedDynamicProgramming(n_x, n_a, n_y, training_data, constraint_exat_stat, statistical_approximation_prior, name="Dynamic Programming Exact Stat", label="CDP_ES"), ] print("Setting up algorithms took {:.3f} seconds".format(time.time() - start)) return algorithms
epsilon=epsilon) constraintStatL = Constraint(split_training_data, n_a, n_y, approximator=statistical_approximation, delta=delta, epsilon=epsilon, bound='lower') constraintTrue = Constraint(split_training_data, n_a, n_y, approximator=true_approximation, delta=delta, epsilon=epsilon) constraintCT = TrueConstraint(dist, approximator=statistical_approximation, delta=delta, epsilon=epsilon) constraintTT = TrueConstraint(dist, approximator=true_approximation, delta=delta, epsilon=epsilon) constraintFuncApprox = Constraint(split_training_data, n_a, n_y, approximator=function_approximation, delta=delta, epsilon=epsilon) print( "Initializing the constraint took {:.3f} seconds".format(time.time() - start))
print("Initializing statistical approximator") start = time.time() statistical_approximationPrior = StatisticalApproximator(n_x, n_a, n_y, split_training_data, smoothing_mode='gaussian') statistical_approximationNone = StatisticalApproximator(n_x, n_a, n_y, split_training_data, smoothing_mode='none') true_approximation = ExactApproximator(dist) function_approximation = FunctionApproximation(n_x, n_a, n_y, split_training_data) print("Initializing approximators took {:.3f} seconds".format(start - time.time())) print("Initializing Constraint") start = time.time() constraintNone = Constraint(split_training_data, n_a, n_y, approximator=statistical_approximationNone, delta=delta, epsilon=epsilon) constraintPrior = Constraint(split_training_data, n_a, n_y, approximator=statistical_approximationPrior, delta=delta, epsilon=epsilon) constraintFunc = Constraint(split_training_data, n_a, n_y, approximator=function_approximation, delta=delta, epsilon=epsilon) constraintATrue = Constraint(split_training_data, n_a, n_y, approximator=true_approximation, delta=delta, epsilon=epsilon) constraintTrue = TrueConstraint(dist, approximator=true_approximation, delta=delta, epsilon=epsilon) print("Initializing the constraint took {:.3f} seconds".format(time.time()-start)) print("Initializing algorithms") algorithms = [ #ConstrainedDynamicProgramming(n_x, n_a, n_y, split_training_data, constraintNone, statistical_approximationNone, name="Dynamic Programming Uniform Prior", label="CDP_U"), ConstrainedDynamicProgramming(n_x, n_a, n_y, split_training_data, constraintPrior, statistical_approximationPrior, name="Dynamic Programming Historical Prior", label="CDP_H"), #ConstrainedDynamicProgramming(n_x, n_a, n_y, split_training_data, constraintFunc, function_approximation, name="Dynamic Programming Function Approximation", label="CDP_F"), ConstrainedDynamicProgramming(n_x, n_a, n_y, split_training_data, constraintATrue, true_approximation, name="Dynamic Programming True", label="CDP_T"), #ConstrainedGreedy(n_x, n_a, n_y, split_training_data, constraintNone, statistical_approximationNone, name="Greedy Uniform Prior", label="CG_U"), ConstrainedGreedy(n_x, n_a, n_y, split_training_data, constraintPrior, statistical_approximationPrior, name="Greedy Historical Prior", label="CG_H"), #ConstrainedGreedy(n_x, n_a, n_y, split_training_data, constraintFunc, function_approximation, name="Greedy Function Approximation", label="CG_F"), ] assert len(algorithms) == n_algorithms