diff --git a/graphics/verlet_and_cell_lists.jl b/graphics/verlet_and_cell_lists.jl index 8ed2f8a..a858209 100644 --- a/graphics/verlet_and_cell_lists.jl +++ b/graphics/verlet_and_cell_lists.jl @@ -18,7 +18,7 @@ function gen_verlet_and_cell_lists_graphics() R_particle = 4.2 σ = 2 * R_particle * 2^(-1 / 6) R_interaction = 2^(1 / 6) * σ - R_skin = 2 * R_interaction + R_skin = ReCo.DEFAULT_SKIN_TO_INTERACTION_RADIUS_RATIO * R_interaction setcolor("blue") reference_particle_x = 0.25 * R_skin diff --git a/src/RL/RL.jl b/src/RL/RL.jl index d183029..5da861c 100644 --- a/src/RL/RL.jl +++ b/src/RL/RL.jl @@ -66,11 +66,12 @@ function run_rl(; n_particles::Int64=100, seed::Int64=42, ϵ_stable::Float64=0.0001, - skin_to_interaction_radius_ratio::Float64=ReCo.DEFAULT_SKIN_TO_INTERACTION_R_RATIO, + skin_to_interaction_radius_ratio::Float64=ReCo.DEFAULT_SKIN_TO_INTERACTION_RADIUS_RATIO, packing_ratio::Float64=0.15, show_progress::Bool=true, reward_discount::Float64=0.1, show_simulation_progress::Bool=true, + n_episodes_before_env_helper_saving::Int64=10, ) where {E<:Env} @assert 0.0 <= elliptical_a_b_ratio <= 1.0 @assert n_episodes > 0 @@ -78,6 +79,8 @@ function run_rl(; @assert update_actions_at in 0.001:0.001:episode_duration @assert n_particles > 0 @assert 0.0 < ϵ_stable < 1.0 + @assert 0.0 <= reward_discount <= 1.0 + @assert n_episodes_before_env_helper_saving > 0 # Setup Random.seed!(seed) @@ -118,6 +121,8 @@ function run_rl(; parent_dir = "RL/" * process_dir + env_helper_path = ReCo.DEFAULT_EXPORTS_DIR * "/$parent_dir/env_helper.jld2" + # Pre experiment hook(PRE_EXPERIMENT_STAGE, agent, env) agent(PRE_EXPERIMENT_STAGE, env) @@ -149,16 +154,16 @@ function run_rl(; hook(POST_EPISODE_STAGE, agent, env) agent(POST_EPISODE_STAGE, env) + if episode % n_episodes_before_env_helper_saving == 0 + JLD2.save_object(env_helper_path, env_helper) + end + ProgressMeter.next!(progress; showvalues=[(:rewards, hook.rewards)]) end # Post experiment hook(POST_EXPERIMENT_STAGE, agent, env) - process_dir = ReCo.DEFAULT_EXPORTS_DIR * "/$parent_dir" - - JLD2.save_object("$process_dir/env_helper.jld2", env_helper) - return env_helper end diff --git a/src/setup.jl b/src/setup.jl index 82c84ce..f7f1d4a 100644 --- a/src/setup.jl +++ b/src/setup.jl @@ -1,6 +1,6 @@ const DEFAULT_PACKING_RATIO = 0.5 const DEFAULT_δt = 1e-5 -const DEFAULT_SKIN_TO_INTERACTION_R_RATIO = 2.5 +const DEFAULT_SKIN_TO_INTERACTION_RADIUS_RATIO = 2.5 const DEFAULT_EXPORTS_DIR = "exports" const DEFAULT_PARENT_DIR = "" const DEFAULT_COMMENT = "" @@ -51,7 +51,7 @@ function gen_sim_consts( v₀::Float64; δt::Float64=DEFAULT_δt, packing_ratio::Float64=DEFAULT_PACKING_RATIO, - skin_to_interaction_radius_ratio::Float64=DEFAULT_SKIN_TO_INTERACTION_R_RATIO, + skin_to_interaction_radius_ratio::Float64=DEFAULT_SKIN_TO_INTERACTION_RADIUS_RATIO, half_box_len::Float64=0.0, ) @assert n_particles > 0 @@ -160,7 +160,7 @@ function init_sim(; v₀::Float64, δt::Float64=DEFAULT_δt, packing_ratio::Float64=DEFAULT_PACKING_RATIO, - skin_to_interaction_radius_ratio::Float64=DEFAULT_SKIN_TO_INTERACTION_R_RATIO, + skin_to_interaction_radius_ratio::Float64=DEFAULT_SKIN_TO_INTERACTION_RADIUS_RATIO, exports_dir::String=DEFAULT_EXPORTS_DIR, parent_dir::String=DEFAULT_PARENT_DIR, comment::String=DEFAULT_COMMENT,