year: 2024/04
paper: https://openreview.net/pdf?id=7PNJzAxkij
website:
code: https://github.com/gengala/egnca
connections: E(n) equivariance, graph, NCA, Learning Graph Cellular Automata, Daniele Grattarola
https://claude.ai/chat/642e86a0-c890-471d-b6a6-f38693db47cf
Boid i sees neighbors j₁, j₂, ..., jₙ
For each neighbor jₖ:
mₖ = EdgeMLP([hᵢ, hⱼₖ, ||xᵢ - xⱼₖ||²]) [message computation]
αₖ = σ(Linear(mₖ)) [weight ∈ [0,1]]
mₖ' = αₖ · mₖ [weighted message]
Aggregate:
M = Σₖ mₖ' [sum of weighted messages]
Update:
hᵢ' = NodeMLP([hᵢ, M]) [new features]
vᵢ' = VelMLP(hᵢ, ||vᵢ||) · vᵢ + CoordMLP(M) · Σₖ(xᵢ - xⱼₖ) [new velocity]
xᵢ' = xᵢ + vᵢ' [new position]