KAUST CEMSE CS PhD Dissertation Defense Michal Mankowski Dynamic Programming Multi Objective Combinatorial Optimization