Skip to content

Instantly share code, notes, and snippets.

View zsunberg's full-sized avatar

Zachary Sunberg zsunberg

View GitHub Profile
@zsunberg
zsunberg / jrl_error.jl
Created October 18, 2020 04:51
JuliaReinforcementLearning script that produces a bounds errror
using ReinforcementLearningZoo
using ReinforcementLearningBase
using ReinforcementLearningCore: NeuralNetworkApproximator, EpsilonGreedyExplorer, QBasedPolicy, CircularCompactSARTSATrajectory
using ReinforcementLearning
using Flux
using Flux: glorot_uniform, huber_loss
import Random
import BSON
RL = ReinforcementLearningBase
@zsunberg
zsunberg / multithread_comparison.jl
Created December 24, 2021 01:50
Is it better to launch 10000 tasks or nthreads() tasks in Julia
using BenchmarkTools
function operate!(shared, locks)
i = rand(1:length(shared))
lock(locks[i]) do
shared[i] += 1
end
end
function operate_many!(shared, locks, channel)
@zsunberg
zsunberg / lunar_lander.jl
Created July 7, 2023 13:49
Lunar Lander model for POMDPs.jl (happy for someone to make a package for this!)
struct LunarLander <: POMDP{Vector{Float64}, Vector{Float64}, Vector{Float64}}
dt::Float64
m::Float64
I::Float64
Q::Vector{Float64}
R::Vector{Float64}
end
function LunarLander(;dt::Float64=0.1, m::Float64=1.0, I::Float64=10.0)
Q = [0.0, 0.0, 0.0, 0.1, 0.1, 0.01]
from julia.CommonRLSpaces import Box
from julia.Main import Float64
from julia.POMDPs import solve, pdf,action
from julia.QMDP import QMDPSolver
from julia.POMCPOW import POMCPOWSolver
from julia.POMDPTools import stepthrough, alphavectors, Uniform, Deterministic
from julia.Distributions import Normal,AbstractMvNormal,MvNormal
from quickpomdps import QuickPOMDP
@zsunberg
zsunberg / dual_modules.jl
Last active April 30, 2025 02:33
Proof of concept for allowing a package writer to insert code between two users using two modules
using POMDPTools: SparseCat
using Distributions: pdf
module DecisionMaking
import Distributions
module ModelerInterface
function transition end
function T end
@zsunberg
zsunberg / compat_wrapper.jl
Last active April 30, 2025 02:43
Proof of concept for allowing a package writer to insert code between two users using a compatibility wrapper
using POMDPTools: SparseCat
using Distributions: pdf
module DecisionMaking
import Distributions
using Distributions: pdf
export
transition,