Non-commutative Optimization: Theory, Algorithms and Applications (or, can we prove P!=NP using gradient descent)