require_once '/core.php'; $arm1 = new BernoulliArm(0.7); $arm2 = new NormalArm(10.0, 1.0); $arm3 = new BernoulliArm(0.2); $arms = [$arm1, $arm2, $arm3]; // $algo1 = new EpsilonGreedy(0.1, [], []); # not implemented yet // $algo2 = new Softmax(1.0, [], []); # not implemented yet $algo3 = new UCB1([], []); // $algo4 = new Exp3(0.2, []); # not implemented yet $algo5 = new UCB2(0.1, [], []); $num_sims = 1000; $horizon = 10; $algos = [$algo3]; $rows = ''; foreach ($algos as $algo) { $results = test_algorithm($algo, $arms, $num_sims, $horizon); for ($i = 0; $i < $num_sims * $horizon; $i++) { $rows .= '<tr><td>' . $results[0][$i] . '</td><td>' . $results[1][$i] . '</td><td>' . $results[2][$i] . '</td><td>' . $results[3][$i] . '</td><td>' . $results[4][$i] . '</td></tr>'; } } $table = <<<EOD <pre> <table style="width: 100%"> <thead> <tr> <td>sim_nums</td> <td>times</td> <td>chosen_arms</td> <td>rewards</td> <td>cumulative_rewards</td> </tr>
/** * Tests the algorithms * * @return array */ function test_algorithms() { require_once ROOT . '/api/aa-get-algorithms.php'; $algorithms = aa_get_algorithms(); $results = array(); $successes = 0; $failures = 0; $missing = 0; foreach (array_keys($algorithms) as $algorithm) { list($algorithm_filename, $example_filename) = make_file_names($algorithm); $result = test_algorithm($algorithm); if (empty($result)) { $missing++; } else { $successes += $result['successes']; $failures += $result['failures']; } $results[$algorithm] = $result; } return array('successes' => $successes, 'failures' => $failures, 'missing' => $missing, 'results' => $results); }
/** * Runs the test of the algorithm */ function process_test_action() { global $_filename, $_examples, $_source_code, $_docblock, $_algorithm; global $_posted_params, $_test; list($_filename, $_examples, $_source_code, $_docblock) = get_algorithm_details($_algorithm); if (!empty($_posted_params['run'])) { $_test = test_algorithm($_algorithm, $_examples); } }