You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.2 KiB
Julia

include("../src/Orbits.jl")
using .Orbits
using LinearAlgebra
#Set key dimensions
const N_constellations = 4
const N_debris = 1
const N_states = N_constellations + N_debris
#Setup Economic Models
em2_a = LinearModel(0.95, [1 -0.02 -0.02 0], [5.0 0 0 0])
em2_b = LinearModel(0.95, [-0.02 1 -0.02 0], [0.0 5 0 0])
em2_c = LinearModel(0.95, [0 -0.02 1 -0.02], [0.0 0 5 0])
em2_d = LinearModel(0.95, [0 -0.02 -0.02 1], [0.0 0 0 5])
#Setup Physics
basic_model = BasicPhysics(
0.002
,0.002*(ones(N_constellations,N_constellations) - LinearAlgebra.I)
,0.01
,0.001
,5.0
,0.05
)
# Setup NN
bg = BranchGenerator(N_constellations)
operators_policy = bg(operator_policy_function_generator(N_constellations,N_debris),vcat)
planners_policy = bg(operator_policy_function_generator(N_constellations,N_debris),vcat)
planners_value = value_function_generator(64)
# Setup Operators
const operator_array = [
#first operator
OperatorLoss(
em2_a
,value_function_generator()
,operators_policy #this is held by all operators
,params(operators_policy[2][1]) #first operator gets first branch of params
,basic_model
)
,OperatorLoss(
em2_b
,value_function_generator()
,operators_policy #this is held by all operators
,params(operators_policy[2][2]) #first operator gets first branch of params
,basic_model
)
,OperatorLoss(
em2_c
,value_function_generator()
,operators_policy #this is held by all operators
,params(operators_policy[2][3]) #first operator gets first branch of params
,basic_model
)
,OperatorLoss(
em2_d
,value_function_generator()
,operators_policy #this is held by all operators
,params(operators_policy[2][4]) #first operator gets first branch of params
,basic_model
)
]
#sanity check time
@assert length(operator_array) == N_constellations "Mismatch in predetermined number of constellations and the number of operators initialized"
# Setup Planner
pl = PlannerLoss(
0.95
,operator_array
,planners_policy
,params(planners_policy)
,planners_value
,params(planners_value)
,basic_model
)
# Export Planner