Cheriton School of Computer Science
University of Waterloo
My research interests span the field of Artificial Intelligence with a focus on representation and reasoning, constraint programming, constraint satisfaction, backtracking algorithms, planning, scheduling, combinatorial optimization, applied machine learning, probabilistic reasoning, and applications of artificial intelligence.
A theme in much of my work is constraint programming, a methodology for solving difficult combinatorial optimization problems. In a constraint programming approach, one specifies constraints on acceptable solutions and search is used to find a solution that satisfies the constraints. Constraint programming is applicable to a wide variety of interesting problems, from vision to probabilistic reasoning to compiler optimization.
A recent additional interest is algorithms and techniques in computational photography.
Several important tasks in machine learning can be formulated as combinatorial optimization problems. For example, learning the structure of a Bayesian network from data can be formulated as a combinatorial optimization problem, where a score is defined that measures how well a candidate structure is supported by the observed data and the task is to find the structure with the lowest score. As a second example, learning a decision tree from labeled data can be formulated as a combinatorial optimization problem, where the goal is to find the decision tree that best fits the data subject to regularization constraints. Both of these problems are NP-Hard. Our approach is to apply constraint programming and other advanced search techniques.
The City of Abbotsford, BC fitted all of the approximately 24,000 homes and businesses with smart water meters that record usage at the hourly level. Given this unique data resource, there are many interesting research problems to work on—including leak or loss detection, predicting or forecasting usage, customer modeling to improve hydrographic modeling, scheduling of infrastructure maintenance, and infrastructure planning—and many of these appear to be amenable to artificial intelligence tools and techniques.
Many interesting computational problems arise in digital photography. Our current research involves automatic focusing, focus stacking, and white balancing algorithms. In passive autofocusing, a lens is focused using only the camera's optical system and an algorithm for controlling the lens. In focus stacking, multiple images—each taken at a different focus depth—are combined into a single image. The combined image has a greater depth of field (the nearest and farthest objects in the scene that are in focus) than the individual images. The goal of the research is to improve autofocus and focus stacking algorithms using supervised machine learning techniques
I gratefully acknowledge the following companies and granting agencies for their financial support.
NSERC Discovery Grant Program
NSERC CRD Program
Intel and HP Equipment Program
University of Waterloo
Citations to my publications as tracked by Google scholar (link).
A comprehensive CV of all of my activies (PDF).
CP, 2015. Machine learning of Bayesian networks using constraint programming (slides).
The aim of this handbook is to capture the full breadth and depth of the constraint programming field and to be encyclopedic in its scope and coverage is to capture the full breadth (link).