KAUST CEMSE AMCS STAT Mikhail Moshkov Extensions of Dynamic Programming for Combinatorial Optimization and Data Mining