// system parameter double L,tau,D; // units double R_target; // radius of the target double dt; // other parameters double Pe,v,ell,D_theta,mu; // ABP parameters int N_runs,N_episodes; // RL and evironmental parameters double Dr,R_max; int const_initial_policy; double time_single_episode,reward,gammma,eta; double pBP,pABP; int Nt_single_episode; int Nphi,Na,Ns,M,Nomegas; int Nep0_arrays,Nep_arrays,Nep_last; double r_ini; // arrays initialization double ** target_times; double ** initial_radii; double ** initial_thetas; double ** target_times_lastepisodes; double ** initial_radii_lastepisodes; double ** initial_thetas_lastepisodes; double * avg_target_times; double ** avg_target_times_rini; int * number_targets; int ** number_targets_rini; double ** H; double ** H0; double ** G; double ** Pvalues; double ** Svalues; double * avg_Pvalues; double ** avg_Pvalues_episode; double *** avg_Hvalues_episode; double ** avg_state_action_values; double ** avg_glow; int ** changes_in_G; double * v_factor1; double * v_factor2; double * v_factor3; double * H2; int *** visited_times; double * vBP; double * vABP; // functions void ProjectiveSimulationOptimized(int i); void read_parameters(); void array_initialization(); void print_averages (); void print_data (); void print_initial_policy(); int rindex(double r); int ep_index (int ep); // to parallelize and restart int k_bunch,N_runs0,N_episodes0; double *** H_restart; void read_H_restart();