Theory and applications of Robust Optimization