Mathematical Programming Techniques for solving MCDA problems