# COMPUTATIONAL TODO
***MOVE EVERYTHING HERE OVER TO ISSUES IN THE GITHUB TRACKER***

## Completed steps
- implement 'launch function as a function' portion
- substitute the transition functions into the optimality conditions.

## Next steps
- create the iterated optimality conditions
    - attach iterated state variables to iterated transitons
    - use these state variables to calculate the optimality condition values
- use these optimality conditions to create a loss function
    - Thoughts on converting my `connect_transitions_to_otimality_conditions` work to this.
        I need to import torch into that section, and build a loss function.
    - The basics of this model
    - Use just a basic MSELoss wrapped so that it calculates 
- add boundary conditions to loss function
- get a basic gradient descent/optimization of launch function working.
- add satellite deorbit to model.
- turn this into a framework in a module, not just a single notebook (long term goal)
- turn testing_combined into an actual test setup
    - change prints to assertions
    - turn into functions
    - add into a testing framework
    - this isn't that important.
## CONCERNS
So I need to think about how to handle the launch functions.
Currently, my launch function takes in the stocks and debris levels and returns a launch decision for each constellation.
This is nice because it keeps them together, but it may require some thoughtful NeuralNetwork design later.
The issue is that I need to set up a way to integrate multiple firms at the same time.
This may be possible through how I set up the profit funcitons.

Also, I think I need to write out some 



# Scratch work 
Writing out the functional forms that need to exist and the inheritance
 - Euler equation
    - Optimality Conditions
    - Transition functions
 - Loss function
    - Bounds
    - Euler equations
 - Neural net launch function

Launch & Retire (a neural network)
 NN(states) -> launch & deorbit decisions

Euler Equations
 EE(NN, states) -> vector of numbers
     Consists of
         Iterated_Optimality(Iterated_Value_Derivatives(NN), Iterated_States(NN))

Loss Function
    L(EE, Bounds, NN, States) -> positive number