Portfolio Optimization: Scenario Generation, Models and Algorithms