KAUST CEMSE CS Graduate Seminar Mikhail Moshkov Extensions of Dynamic Programming for Combinatorial Optimization and Data Mining