1
0
Fork 0
mirror of https://gitlab.rlp.net/mobitar/ReCo.jl.git synced 2024-09-19 19:01:17 +00:00

Fix typos

This commit is contained in:
Mo8it 2022-02-08 21:20:18 +01:00
parent 88f8ea2aba
commit 89cc431fd2
12 changed files with 86 additions and 85 deletions

5
.gitignore vendored
View file

@ -5,4 +5,7 @@ exports
*.ipynb* *.ipynb*
# Profiling # Profiling
*.mem *.mem
# VSCodium
.vscode

View file

@ -72,22 +72,22 @@ function radial_distribution(;
bundle_paths = ReCo.sorted_bundle_paths(sim_dir; rev=true) bundle_paths = ReCo.sorted_bundle_paths(sim_dir; rev=true)
snapshot_conunter = 0 snapshot_counter = 0
break_bundle_path_loop = false break_bundle_path_loop = false
for bundle_path in bundle_paths for bundle_path in bundle_paths
bundle::ReCo.Bundle = JLD2.load_object(bundle_path) bundle::ReCo.Bundle = JLD2.load_object(bundle_path)
for snapshot_ind in (bundle.n_snapshots):-1:1 for snapshot_ind in (bundle.n_snapshots):-1:1
snapshot_conunter += 1 snapshot_counter += 1
@simd for particle_ind in 1:n_particles @simd for particle_ind in 1:n_particles
cs[particle_ind, snapshot_conunter] = bundle.c[ cs[particle_ind, snapshot_counter] = bundle.c[
particle_ind, snapshot_ind particle_ind, snapshot_ind
] ]
end end
if snapshot_conunter == n_last_snapshots if snapshot_counter == n_last_snapshots
break_bundle_path_loop = true break_bundle_path_loop = true
break break
end end
@ -98,8 +98,8 @@ function radial_distribution(;
end end
end end
if snapshot_conunter != n_last_snapshots if snapshot_counter != n_last_snapshots
error("snapshot_conunter != n_last_snapshots") error("snapshot_counter != n_last_snapshots")
end end
g = zeros(Float64, n_radii) g = zeros(Float64, n_radii)

View file

@ -82,7 +82,7 @@ function gen_COM_graphics()
## ##
Drawing(box_length, box_height, "$graphics_export_dir/circular_projectiong.pdf") Drawing(box_length, box_height, "$graphics_export_dir/circular_projection.pdf")
origin() origin()
fontsize(5) fontsize(5)

View file

@ -7,20 +7,20 @@ using ReCo: ReCo
function gen_periodic_boundary_conditions_graphics() function gen_periodic_boundary_conditions_graphics()
Random.seed!(23) Random.seed!(23)
drwaing_box_length = 300 drawing_box_length = 300
graphics_export_dir = "exports/graphics" graphics_export_dir = "exports/graphics"
mkpath(graphics_export_dir) mkpath(graphics_export_dir)
Drawing( Drawing(
drwaing_box_length, drawing_box_length,
drwaing_box_length, drawing_box_length,
"$graphics_export_dir/periodic_boundary_conditions.pdf", "$graphics_export_dir/periodic_boundary_conditions.pdf",
) )
origin() origin()
particle_radius = 10 particle_radius = 10
box_len = drwaing_box_length / 3 box_len = drawing_box_length / 3
half_box_len = box_len / 2 half_box_len = box_len / 2
N_in_one_box = 5 N_in_one_box = 5
@ -79,13 +79,13 @@ function gen_periodic_boundary_conditions_graphics()
setline(1.0) setline(1.0)
for line_factor in (-3, -1, 1, 3) for line_factor in (-3, -1, 1, 3)
line( line(
Point(line_factor * drwaing_box_length / 6, drwaing_box_length / 2), Point(line_factor * drawing_box_length / 6, drawing_box_length / 2),
Point(line_factor * drwaing_box_length / 6, -drwaing_box_length / 2), Point(line_factor * drawing_box_length / 6, -drawing_box_length / 2),
:stroke, :stroke,
) )
line( line(
Point(drwaing_box_length / 2, line_factor * drwaing_box_length / 6), Point(drawing_box_length / 2, line_factor * drawing_box_length / 6),
Point(-drwaing_box_length / 2, line_factor * drwaing_box_length / 6), Point(-drawing_box_length / 2, line_factor * drawing_box_length / 6),
:stroke, :stroke,
) )
end end

View file

@ -39,8 +39,8 @@ end
mutable struct LocalCOMEnvHelper <: EnvHelper mutable struct LocalCOMEnvHelper <: EnvHelper
shared::EnvHelperSharedProps shared::EnvHelperSharedProps
vec_to_neighbour_sums::Vector{SVector{2,Float64}} vec_to_neighbor_sums::Vector{SVector{2,Float64}}
n_neighbours::Vector{Int64} n_neighbors::Vector{Int64}
distances_to_local_center_of_mass::Vector{Float64} distances_to_local_center_of_mass::Vector{Float64}
max_distance_to_local_center_of_mass::Float64 max_distance_to_local_center_of_mass::Float64
@ -69,8 +69,8 @@ end
function pre_integration_hook!(env_helper::LocalCOMEnvHelper) function pre_integration_hook!(env_helper::LocalCOMEnvHelper)
@simd for id in 1:(env_helper.shared.n_particles) @simd for id in 1:(env_helper.shared.n_particles)
env_helper.vec_to_neighbour_sums[id] = SVector(0.0, 0.0) env_helper.vec_to_neighbor_sums[id] = SVector(0.0, 0.0)
env_helper.n_neighbours[id] = 0 env_helper.n_neighbors[id] = 0
end end
return nothing return nothing
@ -83,11 +83,11 @@ function state_update_helper_hook!(
r⃗₁₂::SVector{2,Float64}, r⃗₁₂::SVector{2,Float64},
distance²::Float64, distance²::Float64,
) )
env_helper.vec_to_neighbour_sums[id1] += r⃗₁₂ env_helper.vec_to_neighbor_sums[id1] += r⃗₁₂
env_helper.vec_to_neighbour_sums[id2] -= r⃗₁₂ env_helper.vec_to_neighbor_sums[id2] -= r⃗₁₂
env_helper.n_neighbours[id1] += 1 env_helper.n_neighbors[id1] += 1
env_helper.n_neighbours[id2] += 1 env_helper.n_neighbors[id2] += 1
return nothing return nothing
end end
@ -98,13 +98,13 @@ function state_update_hook!(env_helper::LocalCOMEnvHelper, particles::Vector{ReC
env = env_helper.shared.env env = env_helper.shared.env
for particle_id in 1:n_particles for particle_id in 1:n_particles
n_neighbours = env_helper.n_neighbours[particle_id] n_neighbors = env_helper.n_neighbors[particle_id]
if n_neighbours == 0 if n_neighbors == 0
state_id = env.shared.n_states state_id = env.shared.n_states
else else
vec_to_local_center_of_mass = vec_to_local_center_of_mass =
env_helper.vec_to_neighbour_sums[particle_id] / n_neighbours env_helper.vec_to_neighbor_sums[particle_id] / n_neighbors
distance = ReCo.norm2d(vec_to_local_center_of_mass) distance = ReCo.norm2d(vec_to_local_center_of_mass)
env_helper.distances_to_local_center_of_mass[particle_id] = distance env_helper.distances_to_local_center_of_mass[particle_id] = distance
distance_state_ind = find_state_ind(distance, env.distance_state_space) distance_state_ind = find_state_ind(distance, env.distance_state_space)
@ -127,9 +127,9 @@ end
function update_reward!( function update_reward!(
env::LocalCOMEnv, env_helper::LocalCOMEnvHelper, particle::ReCo.Particle env::LocalCOMEnv, env_helper::LocalCOMEnvHelper, particle::ReCo.Particle
) )
n_neighbours = env_helper.n_neighbours[particle.id] n_neighbors = env_helper.n_neighbors[particle.id]
if n_neighbours == 0 if n_neighbors == 0
env.shared.reward = 0.0 env.shared.reward = 0.0
else else
reward = minimizing_reward( reward = minimizing_reward(

View file

@ -39,8 +39,8 @@ end
mutable struct LocalCOMWithAdditionalShapeRewardEnvHelper <: EnvHelper mutable struct LocalCOMWithAdditionalShapeRewardEnvHelper <: EnvHelper
shared::EnvHelperSharedProps shared::EnvHelperSharedProps
vec_to_neighbour_sums::Vector{SVector{2,Float64}} vec_to_neighbor_sums::Vector{SVector{2,Float64}}
n_neighbours::Vector{Int64} n_neighbors::Vector{Int64}
distances_to_local_center_of_mass::Vector{Float64} distances_to_local_center_of_mass::Vector{Float64}
max_distance_to_local_center_of_mass::Float64 max_distance_to_local_center_of_mass::Float64
@ -89,8 +89,8 @@ end
function pre_integration_hook!(env_helper::LocalCOMWithAdditionalShapeRewardEnvHelper) function pre_integration_hook!(env_helper::LocalCOMWithAdditionalShapeRewardEnvHelper)
@simd for id in 1:(env_helper.shared.n_particles) @simd for id in 1:(env_helper.shared.n_particles)
env_helper.vec_to_neighbour_sums[id] = SVector(0.0, 0.0) env_helper.vec_to_neighbor_sums[id] = SVector(0.0, 0.0)
env_helper.n_neighbours[id] = 0 env_helper.n_neighbors[id] = 0
end end
return nothing return nothing
@ -103,11 +103,11 @@ function state_update_helper_hook!(
r⃗₁₂::SVector{2,Float64}, r⃗₁₂::SVector{2,Float64},
distance²::Float64, distance²::Float64,
) )
env_helper.vec_to_neighbour_sums[id1] += r⃗₁₂ env_helper.vec_to_neighbor_sums[id1] += r⃗₁₂
env_helper.vec_to_neighbour_sums[id2] -= r⃗₁₂ env_helper.vec_to_neighbor_sums[id2] -= r⃗₁₂
env_helper.n_neighbours[id1] += 1 env_helper.n_neighbors[id1] += 1
env_helper.n_neighbours[id2] += 1 env_helper.n_neighbors[id2] += 1
return nothing return nothing
end end
@ -122,16 +122,16 @@ function state_update_hook!(
distance_to_local_center_of_mass_sum = 0.0 distance_to_local_center_of_mass_sum = 0.0
for particle_id in 1:n_particles for particle_id in 1:n_particles
n_neighbours = env_helper.n_neighbours[particle_id] n_neighbors = env_helper.n_neighbors[particle_id]
if n_neighbours == 0 if n_neighbors == 0
state_id = env.shared.n_states state_id = env.shared.n_states
distance_to_local_center_of_mass_sum += distance_to_local_center_of_mass_sum +=
env_helper.max_distance_to_local_center_of_mass env_helper.max_distance_to_local_center_of_mass
else else
vec_to_local_center_of_mass = vec_to_local_center_of_mass =
env_helper.vec_to_neighbour_sums[particle_id] / n_neighbours env_helper.vec_to_neighbor_sums[particle_id] / n_neighbors
distance = ReCo.norm2d(vec_to_local_center_of_mass) distance = ReCo.norm2d(vec_to_local_center_of_mass)
env_helper.distances_to_local_center_of_mass[particle_id] = distance env_helper.distances_to_local_center_of_mass[particle_id] = distance
distance_to_local_center_of_mass_sum += distance distance_to_local_center_of_mass_sum += distance
@ -172,9 +172,9 @@ function update_reward!(
env_helper::LocalCOMWithAdditionalShapeRewardEnvHelper, env_helper::LocalCOMWithAdditionalShapeRewardEnvHelper,
particle::ReCo.Particle, particle::ReCo.Particle,
) )
n_neighbours = env_helper.n_neighbours[particle.id] n_neighbors = env_helper.n_neighbors[particle.id]
if n_neighbours == 0 if n_neighbors == 0
env.shared.reward = 0.0 env.shared.reward = 0.0
else else
reward = minimizing_reward( reward = minimizing_reward(

View file

@ -39,8 +39,8 @@ end
mutable struct LocalCOMWithAdditionalShapeRewardEnv2Helper <: EnvHelper mutable struct LocalCOMWithAdditionalShapeRewardEnv2Helper <: EnvHelper
shared::EnvHelperSharedProps shared::EnvHelperSharedProps
vec_to_neighbour_sums::Vector{SVector{2,Float64}} vec_to_neighbor_sums::Vector{SVector{2,Float64}}
n_neighbours::Vector{Int64} n_neighbors::Vector{Int64}
distances_to_local_center_of_mass::Vector{Float64} distances_to_local_center_of_mass::Vector{Float64}
max_distance_to_local_center_of_mass::Float64 max_distance_to_local_center_of_mass::Float64
@ -86,8 +86,8 @@ end
function pre_integration_hook!(env_helper::LocalCOMWithAdditionalShapeRewardEnv2Helper) function pre_integration_hook!(env_helper::LocalCOMWithAdditionalShapeRewardEnv2Helper)
@simd for id in 1:(env_helper.shared.n_particles) @simd for id in 1:(env_helper.shared.n_particles)
env_helper.vec_to_neighbour_sums[id] = SVector(0.0, 0.0) env_helper.vec_to_neighbor_sums[id] = SVector(0.0, 0.0)
env_helper.n_neighbours[id] = 0 env_helper.n_neighbors[id] = 0
end end
return nothing return nothing
@ -100,11 +100,11 @@ function state_update_helper_hook!(
r⃗₁₂::SVector{2,Float64}, r⃗₁₂::SVector{2,Float64},
distance²::Float64, distance²::Float64,
) )
env_helper.vec_to_neighbour_sums[id1] += r⃗₁₂ env_helper.vec_to_neighbor_sums[id1] += r⃗₁₂
env_helper.vec_to_neighbour_sums[id2] -= r⃗₁₂ env_helper.vec_to_neighbor_sums[id2] -= r⃗₁₂
env_helper.n_neighbours[id1] += 1 env_helper.n_neighbors[id1] += 1
env_helper.n_neighbours[id2] += 1 env_helper.n_neighbors[id2] += 1
return nothing return nothing
end end
@ -120,16 +120,16 @@ function state_update_hook!(
distance_to_local_center_of_mass_sum = 0.0 distance_to_local_center_of_mass_sum = 0.0
for particle_id in 1:n_particles for particle_id in 1:n_particles
n_neighbours = env_helper.n_neighbours[particle_id] n_neighbors = env_helper.n_neighbors[particle_id]
if n_neighbours == 0 if n_neighbors == 0
state_id = env.shared.n_states state_id = env.shared.n_states
distance_to_local_center_of_mass_sum += distance_to_local_center_of_mass_sum +=
env_helper.max_distance_to_local_center_of_mass env_helper.max_distance_to_local_center_of_mass
else else
vec_to_local_center_of_mass = vec_to_local_center_of_mass =
env_helper.vec_to_neighbour_sums[particle_id] / n_neighbours env_helper.vec_to_neighbor_sums[particle_id] / n_neighbors
distance = ReCo.norm2d(vec_to_local_center_of_mass) distance = ReCo.norm2d(vec_to_local_center_of_mass)
env_helper.distances_to_local_center_of_mass[particle_id] = distance env_helper.distances_to_local_center_of_mass[particle_id] = distance
distance_to_local_center_of_mass_sum += distance distance_to_local_center_of_mass_sum += distance
@ -161,9 +161,9 @@ function update_reward!(
env_helper::LocalCOMWithAdditionalShapeRewardEnv2Helper, env_helper::LocalCOMWithAdditionalShapeRewardEnv2Helper,
particle::ReCo.Particle, particle::ReCo.Particle,
) )
n_neighbours = env_helper.n_neighbours[particle.id] n_neighbors = env_helper.n_neighbors[particle.id]
if n_neighbours == 0 if n_neighbors == 0
env.shared.reward = 0.0 env.shared.reward = 0.0
else else
reward = minimizing_reward( reward = minimizing_reward(

View file

@ -1,12 +1,12 @@
using ..ReCo: ReCo using ..ReCo: ReCo
struct NearestNeighbourEnv <: Env struct NearestNeighborEnv <: Env
shared::EnvSharedProps shared::EnvSharedProps
distance_state_space::Vector{Interval} distance_state_space::Vector{Interval}
direction_angle_state_space::Vector{Interval} direction_angle_state_space::Vector{Interval}
function NearestNeighbourEnv(; function NearestNeighborEnv(;
n_distance_states::Int64=3, n_direction_angle_states::Int64=3, args n_distance_states::Int64=3, n_direction_angle_states::Int64=3, args
) )
@assert n_distance_states > 1 @assert n_distance_states > 1
@ -36,11 +36,11 @@ struct NearestNeighbourEnv <: Env
end end
end end
mutable struct NearestNeighbourEnvHelper <: EnvHelper mutable struct NearestNeighborEnvHelper <: EnvHelper
shared::EnvHelperSharedProps shared::EnvHelperSharedProps
vecs_to_neighbour::Vector{SVector{2,Float64}} vecs_to_neighbor::Vector{SVector{2,Float64}}
sq_distances_to_neighbour::Vector{Float64} sq_distances_to_neighbor::Vector{Float64}
current_κ::Float64 current_κ::Float64
goal_κ::Float64 goal_κ::Float64
@ -48,7 +48,7 @@ mutable struct NearestNeighbourEnvHelper <: EnvHelper
half_box_len::Float64 half_box_len::Float64
function NearestNeighbourEnvHelper(shared::EnvHelperSharedProps, half_box_len::Float64) function NearestNeighborEnvHelper(shared::EnvHelperSharedProps, half_box_len::Float64)
goal_κ = 0.4 goal_κ = 0.4
max_distance_to_goal_κ = max(1 - goal_κ, goal_κ) max_distance_to_goal_κ = max(1 - goal_κ, goal_κ)
@ -64,49 +64,47 @@ mutable struct NearestNeighbourEnvHelper <: EnvHelper
end end
end end
function gen_env_helper( function gen_env_helper(::NearestNeighborEnv, env_helper_shared::EnvHelperSharedProps; args)
::NearestNeighbourEnv, env_helper_shared::EnvHelperSharedProps; args return NearestNeighborEnvHelper(env_helper_shared, args.half_box_len)
)
return NearestNeighbourEnvHelper(env_helper_shared, args.half_box_len)
end end
function pre_integration_hook!(env_helper::NearestNeighbourEnvHelper) function pre_integration_hook!(env_helper::NearestNeighborEnvHelper)
@simd for particle_id in 1:(env_helper.shared.n_particles) @simd for particle_id in 1:(env_helper.shared.n_particles)
env_helper.sq_distances_to_neighbour[particle_id] = Inf64 env_helper.sq_distances_to_neighbor[particle_id] = Inf64
end end
return nothing return nothing
end end
function state_update_helper_hook!( function state_update_helper_hook!(
env_helper::NearestNeighbourEnvHelper, env_helper::NearestNeighborEnvHelper,
id1::Int64, id1::Int64,
id2::Int64, id2::Int64,
r⃗₁₂::SVector{2,Float64}, r⃗₁₂::SVector{2,Float64},
distance²::Float64, distance²::Float64,
) )
if distance² < env_helper.sq_distances_to_neighbour[id1] if distance² < env_helper.sq_distances_to_neighbor[id1]
env_helper.vecs_to_neighbour[id1] = r⃗₁₂ env_helper.vecs_to_neighbor[id1] = r⃗₁₂
env_helper.sq_distances_to_neighbour[id1] = distance² env_helper.sq_distances_to_neighbor[id1] = distance²
end end
if distance² < env_helper.sq_distances_to_neighbour[id2] if distance² < env_helper.sq_distances_to_neighbor[id2]
env_helper.vecs_to_neighbour[id2] = -r⃗₁₂ env_helper.vecs_to_neighbor[id2] = -r⃗₁₂
env_helper.sq_distances_to_neighbour[id2] = distance² env_helper.sq_distances_to_neighbor[id2] = distance²
end end
return nothing return nothing
end end
function state_update_hook!( function state_update_hook!(
env_helper::NearestNeighbourEnvHelper, particles::Vector{ReCo.Particle} env_helper::NearestNeighborEnvHelper, particles::Vector{ReCo.Particle}
) )
n_particles = env_helper.shared.n_particles n_particles = env_helper.shared.n_particles
env = env_helper.shared.env env = env_helper.shared.env
for particle_id in 1:n_particles for particle_id in 1:n_particles
sq_distance = env_helper.sq_distances_to_neighbour[particle_id] sq_distance = env_helper.sq_distances_to_neighbor[particle_id]
if sq_distance == Inf64 if sq_distance == Inf64
state_id = env.shared.n_states state_id = env.shared.n_states
@ -116,7 +114,7 @@ function state_update_hook!(
si, co = sincos(particles[particle_id].φ) si, co = sincos(particles[particle_id].φ)
direction_angle = ReCo.angle2( direction_angle = ReCo.angle2(
SVector(co, si), env_helper.vecs_to_neighbour[particle_id] SVector(co, si), env_helper.vecs_to_neighbor[particle_id]
) )
direction_state_ind = find_state_ind( direction_state_ind = find_state_ind(
direction_angle, env.direction_angle_state_space direction_angle, env.direction_angle_state_space
@ -136,7 +134,7 @@ function state_update_hook!(
end end
function update_reward!( function update_reward!(
env::NearestNeighbourEnv, env_helper::NearestNeighbourEnvHelper, particle::ReCo.Particle env::NearestNeighborEnv, env_helper::NearestNeighborEnvHelper, particle::ReCo.Particle
) )
reward = minimizing_reward( reward = minimizing_reward(
abs(env_helper.current_κ - env_helper.goal_κ), env_helper.max_distance_to_goal_κ abs(env_helper.current_κ - env_helper.goal_κ), env_helper.max_distance_to_goal_κ

View file

@ -4,7 +4,7 @@ export run_rl,
LocalCOMWithAdditionalShapeRewardEnv, LocalCOMWithAdditionalShapeRewardEnv,
LocalCOMWithAdditionalShapeRewardEnv2, LocalCOMWithAdditionalShapeRewardEnv2,
OriginEnv, OriginEnv,
NearestNeighbourEnv, NearestNeighborEnv,
LocalCOMEnv, LocalCOMEnv,
OriginCompassEnv, OriginCompassEnv,
COMCompassEnv COMCompassEnv
@ -77,7 +77,7 @@ function gen_agent(
end end
""" """
run_rl(EnvType; <keyword arguments>) run_rl(EnvType::Type{<:Env}; <keyword arguments>)
Run a reinforcement learning process and return the tuple (`env_helper`, `rl_dir`). `env_helper` is the environment helper and `rl_dir` is the path of the process directory relative to the directory `ReCo.jl`. Run a reinforcement learning process and return the tuple (`env_helper`, `rl_dir`). `env_helper` is the environment helper and `rl_dir` is the path of the process directory relative to the directory `ReCo.jl`.
@ -178,7 +178,7 @@ function run_rl(
# Reset # Reset
reset!(env) reset!(env)
# Pre espisode # Pre episode
hook(PRE_EPISODE_STAGE, agent, env) hook(PRE_EPISODE_STAGE, agent, env)
agent(PRE_EPISODE_STAGE, env) agent(PRE_EPISODE_STAGE, env)
@ -234,7 +234,7 @@ end
include("Envs/LocalCOMWithAdditionalShapeRewardEnv.jl") include("Envs/LocalCOMWithAdditionalShapeRewardEnv.jl")
include("Envs/LocalCOMWithAdditionalShapeRewardEnv2.jl") include("Envs/LocalCOMWithAdditionalShapeRewardEnv2.jl")
include("Envs/OriginEnv.jl") include("Envs/OriginEnv.jl")
include("Envs/NearestNeighbourEnv.jl") include("Envs/NearestNeighborEnv.jl")
include("Envs/LocalCOMEnv.jl") include("Envs/LocalCOMEnv.jl")
include("Envs/OriginCompassEnv.jl") include("Envs/OriginCompassEnv.jl")
include("Envs/COMCompassEnv.jl") include("Envs/COMCompassEnv.jl")

View file

@ -9,7 +9,7 @@ export init_sim,
LocalCOMWithAdditionalShapeRewardEnv, LocalCOMWithAdditionalShapeRewardEnv,
LocalCOMWithAdditionalShapeRewardEnv2, LocalCOMWithAdditionalShapeRewardEnv2,
OriginEnv, OriginEnv,
NearestNeighbourEnv, NearestNeighborEnv,
LocalCOMEnv, LocalCOMEnv,
OriginCompassEnv, OriginCompassEnv,
COMCompassEnv COMCompassEnv

View file

@ -28,7 +28,7 @@ function center_of_mass_from_proj_sums(
digits = 5 digits = 5
# No need for 1/n_particles with atan # No need for 1/n_particles with atan
# If proj is (0, 0) then COM is 0 or L or -L. Here, 0 is choosen with θ = π # If proj is (0, 0) then COM is 0 or L or -L. Here, 0 is chosen with θ = π
if round(x_proj_sum[1]; digits=digits) == round(x_proj_sum[2]; digits=digits) == 0 if round(x_proj_sum[1]; digits=digits) == round(x_proj_sum[2]; digits=digits) == 0
x_θ = π x_θ = π
else else

View file

@ -25,7 +25,7 @@ Some of the last snapshots might be lost if the simulations is stopped (see the
- `duration::Float64`: Duration of the simulation. - `duration::Float64`: Duration of the simulation.
- `snapshot_at::Float64=$DEFAULT_SNAPSHOT_AT`: Snapshot time interval. - `snapshot_at::Float64=$DEFAULT_SNAPSHOT_AT`: Snapshot time interval.
- `seed::Int64=$DEFAULT_SEED`: Random number generator seed. - `seed::Int64=$DEFAULT_SEED`: Random number generator seed.
- `n_bundle_snapshots::Int64=$DEFAULT_N_BUNDLE_SNAPSHOTS`: Number of snapshots in a bundle. This number is relevant for long simulations that can be stopped while running. A simulation can be continued from the last bundle of snapshots. If the number of snapshots in a bundle is too high and the simulation is stopped, many of the last snapshots can be lost. A low number results in high IO since snapshots are then bundled and stored more often. For example, setting this number to 1 results in saving every snapshot immidiately without bundeling it with other snapshots which would be more efficient. Setting the number to 1000 could mean loosing 999 snapshots in the worst case if the simulation is stopped before having 1000 snapshots to bundle and save. - `n_bundle_snapshots::Int64=$DEFAULT_N_BUNDLE_SNAPSHOTS`: Number of snapshots in a bundle. This number is relevant for long simulations that can be stopped while running. A simulation can be continued from the last bundle of snapshots. If the number of snapshots in a bundle is too high and the simulation is stopped, many of the last snapshots can be lost. A low number results in high IO since snapshots are then bundled and stored more often. For example, setting this number to 1 results in saving every snapshot immediately without bundeling it with other snapshots which would be more efficient. Setting the number to 1000 could mean loosing 999 snapshots in the worst case if the simulation is stopped before having 1000 snapshots to bundle and save.
- `env_helper::Union{RL.EnvHelper,Nothing}=nothing`: Environment helper. It should be left as the default `nothing` unless this method is used internally for reinforcement learning. - `env_helper::Union{RL.EnvHelper,Nothing}=nothing`: Environment helper. It should be left as the default `nothing` unless this method is used internally for reinforcement learning.
- `show_progress::Bool=$DEFAULT_SHOW_PROGRESS`: Show simulation progress bar. - `show_progress::Bool=$DEFAULT_SHOW_PROGRESS`: Show simulation progress bar.
""" """