I am interested in how machines can learn and adapt without being explicitly programmed by humans, and in novel computational mechanisms. I am currently working on three projects:
- A household garbage can mover robot
- Implementing a Gödel Machine
- Automating the Search for Cyclic Designs
Household Robots
Imagine a robot that can take out the garbage, mow a lawn, carry books and materials to and from class, and other such things--all for not much more than the average power wheelchair costs--using wireless technology, and collaborating with a PC right in your own home. We are currently working to morph a power wheelchair into a personal service robot that can receive MapQuest-like instructions from a PC and take out the trash.
From a machine learning perspective, the question is "What does the robot have to know to successfully complete this task?"
Gödel Machine
I am interested in studying problems for which we can write algorithms that improve themselves as they are running--as opposed to algorithms that use "offline" learning. This would allow us to solve problems by beginning with a "dumb" or basic, algorithm, which then improves itself over time. Such a machine would provide both its results, and it algorithm (at a particular snapshot in time) as its output. A Gödel Machine is the first class of mathematically rigorous, general, fully self-referential, self-improving, optimally efficient problem solvers. Currently, however, no full implementation of such a machine exists. We first seek to implement a Gödel Machine in software (and possibly hardware), and use that as a tool in solving the problems described above.Automating the Search for Cyclic Designs
Finite Domain and Finite Set Constraints seems like a more natural and flexible approach to finding solutions to combinatorial design problems than writing special-purpose code, or taking a generate-and-test approach. This research focusses on developing constraint programming approaches to solving problems beyond Steiner Triple Systems and other computational problems commonly used as examples in the literature. Currently, this focusses on cyclic designs with 2 association classes, which has potential interesting applications to signal processing and cryptography, as well as the composition and decomposition problems that originally motivated this work.From a machine learning perspective, one question is "Can we create an algorithm that improves its ability to find certain (specified) classes of designs over time?"