Recording code stuff

temporaryWork
Will King 5 years ago
parent 97bd5e8a13
commit 6e636c8034

@ -0,0 +1,63 @@
#=
The purpose of this is to set up a 2-firm, finite, dynamic orbit use model.
# TODO LIST
- [ ] Set up loss functions
- [ ] Set up utility functions
- [ ] Set up State×Choice Utility matrix
- [ ] Set up VFI
- [ ] Run it
- [ ] ?
- [ ] Profit!!!!
=#
#=
Model Description
V({sʲₜ}, Dₜ) = max{xⁱ} U(sⁱₜ) - F(xⁱ) + β V({sʲₜ₊₁}, Dₜ₊₁)
Utility Function: Similar to Rao Rondina
U(s) = ηs - ρ
Laws of motion
sʲₜ₊₁ = (1-l({sʲₜ},Dₜ))sʲₜ + xʲₜ
Dₜ₊₁ = (1-δ)Dₜ + g(Dₜ) + γ⋅ ∑ⱼ sʲₜ⋅l({sʲₜ},Dₜ) + Γ⋅∑ xʲₜ
Loss Function: Similar to Rao Rondina
lⁱ({sʲₜ},Dₜ) = 1-exp( -α₁⋅∑{i≠j}sʲₜ - α₂⋅sʲₜ - α₃⋅Dₜ )
Autofragmentation Function: See Rao Rondina for a description (pg48)
g(Dₜ) = ζ⋅Dₜ⋅(1-exp(-α₄⋅Dₜ))
Launch Costs
F(xⁱ) = F⋅xⁱ
=#
#Setup Model Constants
const α1 = 1e-2
const α2 = 1e-2
const α3 = 1e-2
const α4 = 1e-2
const ζ = 3
const δ = 2e-2
const F = 5
const γ = 10
const Γ = 2
#=
Potential Structs
Maybe a view onto the state space?
With methods which show own and other sizes as vectors?
=#
#Loss Function
function loss(constellation_sizes::Vector{<:Int},debris::Float64,owner::Int)
1-exp(-α1*sum(constellation_sizes) + (α1-α2)*constellation_sizes[owner] - α3*debris)
end
#=
I think that I might need to consider the launch quantities of the other operators
as a state variable and use a nash equilibrium style idea of equilibrium.
=#
Loading…
Cancel
Save