Symbolic Discovery of Optimization Algorithms