Benjamin Lubin: Selected Course Projects

CS 285: An Enhanced Algorithm for Distributed Task Allocation
The project consisted of a novel theoretical analysis of an individual agent's optimal strategy in a taxicab/delivery domain. Because such a strategy is computationally intractable, a practical approximation algorithm was devised. A simulation environment was developed to compare this algorithm with a previous approach. Whenever possible, the theoretical framework was used to try to inform both the new algorithm and the heuristics used in previous approaches.
CS 282: Loopy Belief Propagation For Text Classification Using QMR-Like Networks
The project concerned a type of text classification problem in which each document in a collection of documents belongs to a non-empty subset of possible categories. It explored the application of a Bayesian network with a QMR-DT-like structure as a classifier to this domain. The feature space of the problem was reduced using the Mutual Information metric; and a novel modification of the MI formula was also evaluated. A loopy form of Pearl's Belief Revision algorithm was used to calculate the most likely set of topics for each text. The efficacy of baseline and novel feature selection methods and various inference methods was determined by calculating several accuracy statistics on a large dataset of 20 Usenet Newsgroups.
CS 222: A Recursive Approximation Scheme for Audio Compression
This project investigated a novel approach for audio compression that can be used for both lossy and lossless compression. The approach is similar to that taken by some of the existing lossless coders in that instead of storing individual sample amplitudes it stores parameters to a predictive function and to the error from this prediction. However, instead of using a linear predictive function over a fixed window, this approach allows the approximation to cover regions of variable length and lets a variable number of functions contribute to the approximation of each sample. For this project, the theory backing the method was elucidated and an implementation of the algorithm was developed.
CS 278: Faster Fragment Based Image Completion
The project built upon previous work on a method of automatically completing missing parts of an image by iteratively approximating the unknown regions and compositing these approximated fragments into the original image. The project consisted of modifying the existing algorithm in several important ways, most importantly to enable the inclusion of a KD-Tree to speed up the fragment search process. Both algorithms were implemented in Java using the Java Advanced Imaging APIs, empirically establishing the improved algorithm as at least 16x faster in tested cases. Thus, the new algorithm permitted the effective use of images of significantly higher resolution than those in previous work.

Original Final Image
Animated Gif showing this image being completed

Original Final Image
Animated Gif showing this image being completed
Original Final Image
Animated Gif showing this image being completed

More information on this project is available here.

CS 286r: Agent Strategies for Iterative Combinatorial Exchanges; also Combinatorial Exchange System Design
All the students in CS286r built a single combinatorial exchange by working in groups to produce the various modules in the exchange. My group was given the task of identifying and implementing strategies whereby the agents in the exchange could obtain extra surplus by misrepresenting their values for goods and/or by manipulating the exchange's activity rules. I (and another student) concentrated on analyzing how a given agent should incorporate predictions of competing agents' valuations into its strategy. To address this, we determined that by having an agent solve a set of Mixed Integer Programs (MIPs) it could determine the amount it should shave down its valuation, given its probabilistic knowledge of other agents in the exchange, in order to try to maximize its profit, an approach that I then added to our agents.

Additionally, a number of interesting systems issues arose in designing an implementation of the exchange, several of which I tackled independently. In order to permit the many modules in the system to be easily composed, I designed a specialized infrastructure that not only loaded and wired together these modules but also isolated a given module's APIs, resulting in a far easier integration. Further, to speed computation time, this infrastructure was designed to accommodate as much parallel processing as possible. Additionally, the various machines that ran the exchange each needed to be able to solve Mixed Integer Programs (MIPs). To this end, I designed a distributed infrastructure to permit the parallel solution of multiple MIPs by multiple processors/machines on behalf of multiple client processes/machines. Based on these (and other) designs, I wrote a significant portion of the system code, a contribution that ultimately comprised over 10,000 lines.

The research group that formed out of this project has published a series of papers
MAS 712
Scratch is a visual programming language for manipulating media. With it children can produce complex interactive projects with images, motion and sound. Thus far, Scratch has been implemented as a successful desktop application; however, there are a number of benefits that might arise from having Scratch operate as an Applet within a web browser. Towards this goal, this project is a prototype of such an Applet and details both its design goals and implementation. Considerable attention is also given to future directions for work based on the Applet.
CS 175/275 (taken as an undergrad):
This project built on basic ray tracing code used in the course, by adding a number of additional known features and a striking novel one. The known features included: refraction, bump mapping, texture mapping, fractal triangles (mountain shapes, etc), and cylindrical/tube primitives. The novel feature consisted of an algorithm for directly rendering 3D parametric equations in the image, and an implementation thereof. This novel ability produced the striking results shown in the images below, several of which were placed in the class 'hall of fame'.