---
# System prepended metadata

title: Patent Sequence Diagram

---

# Patent Sequence Diagram

```plantuml
@startuml
skinparam componentStyle uml2
skinparam monochrome true
skinparam dpi 300
skinparam arrowThickness 2
skinparam packageTitleAlignment left
skinparam defaultFontSize 12
skinparam rectangleBorderThickness 1

collections "Airspace Users" as AUs
participant "Airport" as Airport
participant "Optimization Platform" as Platform
participant "Heuristic Optimizer" as Optimizer
participant "Equity Manager" as EquityManager
participant "Privacy Engine" as PrivacyEngine
collections "MPC Nodes" as MPCNodes
participant "Network Management" as NetworkManager


== Setup ==
activate Platform

Platform -> NetworkManager: request regulated flight list
activate NetworkManager
return

par
    Platform -> Airport: send regulated flight list
    activate Airport
    Airport -> Platform: communicate preferences
    deactivate Airport
    note right of Airport
    <<encrypted>> or <<plain-text>> airport weights
    <<plain-text>> non-confidential flight data
    end note
else
    Platform -> AUs: send regulated flight list
    activate AUs
    AUs -> Platform: communicate preferences
    deactivate AUs
    note right of AUs
    <<encrypted>> AU weights
    <<plain-text>> non-confidential flight data
    end note
end


Platform -> EquityManager: request inequity weights for airspace users
activate EquityManager
return

Platform -> PrivacyEngine: request updated AU weights
note right of Platform
<<encrypted>> AU weights
<<plain-text>> inequity weights
<<plain-text>> slots
end note

activate PrivacyEngine

        PrivacyEngine -> MPCNodes: request updated weights for airspace users
note right of PrivacyEngine
<<encrypted>> AU weights
<<plain-text>> inequity weights
<<plain-text>> slots
end note
          activate MPCNodes
return
note right of PrivacyEngine
<<encrypted>> updated AU weights
end note

return


Platform -> Optimizer: initialize
note right of Platform
<<encrypted>> (updated) AU weights
<<encrypted>> or <<plain-text>> airport weights
<<plain-text>> non-confidential flight data
<<plain-text>> slots
end note 


== Optimization ==


activate Optimizer

Optimizer -> PrivacyEngine: initialize
note right of Optimizer
<<encrypted>> AU weights
<<encrypted>> or <<plain-text>> airport weights
end note 

activate PrivacyEngine

    loop
        Optimizer -> Optimizer: search for population of flight lists
        Optimizer -> PrivacyEngine: request fitness values for population of flight lists
        PrivacyEngine -> MPCNodes: request fitness values for population of flight lists
        activate MPCNodes
        MPCNodes -> MPCNodes: compute fitness values
        return
return
    end

deactivate PrivacyEngine

Optimizer -> Platform
note right of Platform
<<plain-text>> optimized flight lists
end note

deactivate Optimizer


== Implementation ==

par
Platform -> Airport: ask for confirmation or rejection of invidivdual flight lists
activate Airport
note left of Platform
<<plain-text>> optimized flight lists
end note

Airport -> Platform: submit decision
deactivate Airport

else

Platform -> AUs: ask for confirmation or rejection of invidivdual flight orders
activate AUs
note left of Platform
<<plain-text>> optimized flight lists
end note

AUs -> Platform: submit decision
deactivate AUs
end

Platform -> NetworkManager : communicate optimized flight lists
activate NetworkManager
note right of Platform
<<plain-text>> ranked optimized flight lists
end note
NetworkManager -> Platform: notify of implemented flight list
deactivate NetworkManager

par
Platform -> Airport: notify of implemented flight list
else
Platform -> AUs : notify of implemented flight list
end

Platform -> EquityManager: submit implemented flight list and additional information
activate EquityManager
note right of Platform
<<plain-text>> implemented flight list
<<encrypted>> AU weights
<<plain-text>> non-confidential flight data
end note

EquityManager -> PrivacyEngine: request inequity weight updates for airspace users
activate PrivacyEngine

PrivacyEngine -> MPCNodes: request inequity weight updates for airspace users
activate MPCNodes

MPCNodes -> MPCNodes: compute inequity weight updates

return

return 

deactivate EquityManager
@enduml