Benjamin Lubin: Selected Work/Research Projects
1999-2005: Software Engineer for BBN Technologies:
I have been a part of three main projects while at BBN (and several smaller ones):
1. TOPS (Transportation Oriented Planning System) group of ALP (Advanced Logistics Project)

ALP is a research project aimed at creating a widely distributed multi-agent system for logistical planning. The core ALP architecture, a novel task-based communication scheme for allowing multiple agents to collaborate on a problem, has been released under an open source license. My contribution to the project centered on design and implementation of a system of many agents that worked together to plan all the steps necessary to complete a multi-mode transportation chain. The design involved both novel optimization and agent communication schemes in order to solve shipping problems of staggering size. Further, when the optimization was complete the solution existed in pieces inside the various distributed planning agents, rendering the information extremely difficult to deal with. To address this, I designed and built a system for gathering data from all the transportation agents and synthesizing these results into a comprehensive picture backed by a large database. A custom user interface was then constructed to display both the complicated raw and synthesized data in an enlightening manner. My involvement culminated in a trip to the TIC (DARPA Technology Integration Center) in Washington DC to run a large-scale test of the system that involved hundreds of agents working on roughly 50 computers.

2. ACS (Air Crew Scheduler) portion of ULPS (Unit Level Planning System)
This is an initiative started by the Air Force to semi-automate the details of its planning and scheduling. The ACS portion of the program consists of a system for scheduling the crews of air transport and air refueling planes, which is a large domain with many complex hard and soft constraints. Our system for solving this problem involved a distributed system involving a central persistent data repository, an automated scheduler using a genetic algorithm, and multiple GUIs for human scheduling, each potentially running on its own machine. We developed a novel method for coordinating the automated scheduler’s timing, behavior, and invasiveness to foster mixed-initiative collaboration between the automated scheduler and all of the human operators (the novel aspects of the scheduler design were featured in this paper). In addition, I was also involved in many other aspects of the project, ranging from processing the incoming data feeds, to database access, GUI design/implementation, and managing the complex inter-process communication/coordination.

3. AMP (Analysis of Mobility Platform)
The AMP system seeks to link together dozens of existing logistical modeling programs into a cohesive system that works as one model. The system consists of a Java back-end that wraps all of the existing models in order to start, stop, monitor, and mediate the flow of information between them. Additionally, the system is a user interface to the very complex models, and a significant effort has been directed at giving the user access to the thousands of variables controlling the models in a way that illuminates their complex interaction instead of obfuscating it. My involvement in the project has been comprehensive, but has concentrated on the system’s infrastructure and most complex GUI elements. The infrastructure work included design and implementation of the novel persistence and I/O layers and the multi-threading / multi-process communication/coordination scheme that established the APIs/data-structures used by the models to integrate into the system. The GUI work concentrated on new methods for efficiently entering high dimensional data while correctly capturing constraints between values along various dimensions.
Spring 1997: Researcher / Programmer for the Ubiquitous Information Project, Harvard Computer Science Dept.:
The Ubiquitous Information Project was intended to promote electronically mediated information dissemination in new and advanced ways. As part of this project, I created a software agent to aid users in finding information by allowing them to specify criteria for their desired information, and then letting the agent create and execute a plan for obtaining data matching these specifications. The agent was built upon an existing LISP based partial order planning system, which was significantly enhanced in order to allow it to perform both execution monitoring and re-planning. That is, with this enhanced planner at its core, the agent could react to steps in its plan failing and formulate a new plan from that point forward. Further, the agent could react to additional feedback from the user refining its search process. A simulated computational environment within which to place the agent was also developed in order to validate the approach.
1996-1997: Application Programmer for Datacap, Inc.:
I worked on four projects for Datacap’s flagship application, which is used to scan, OCR, verify and store paper forms (typically tax and insurance forms):
1. Designed and then implemented a comprehensive multi-process logging DLL and an associated GUI viewer.
2. Created a prototype interface layer to glue together the modules of Datacap’s product with that of their chief competitor via DDE, opening the possibility of Datacap selling its software modules to its competitors’ customers.
3. Developed a Wizard interface application that streamlined the complicated task of setting up the Datacap software by running the Datacap software via OLE.
4. Created a custom Active X multi-line text editing control completely from scratch, in order to imbed both the original scanned image and OCR confidence rates, as well as to restrict user input to a fixed pattern.
1993-1995: Researcher / Hardware Developer for Nevis Labs (Columbia University’s High Energy Physics Complex).
Nevis Laboratory, the one-time home of the world’s largest cyclotron, now creates cutting edge electronics for use in the latest high-energy physics experiments run at the multi-billion dollar national laboratories such as Fermilab in Illinois and CERN (Conseil Europeen pour la Recherche Nucleaire) in Switzerland. CERN is currently building a new particle accelerator, the LHC (Large Hadron Collider), which will be the largest in the world (eventually producing particle energies of 7 TeV). In this detector, beams of protons will travel in opposite directions at a speed only a tiny fraction less than the speed of light. The beams will be made to cross at specific locations, causing roughly a billion collisions each second. Around these crossing points will be enormous detectors including the five-story ATLAS (A Toroidal LHC ApparatuS). Because millions of data points will be recorded during the collisions, an enormous research effort must be devoted to developing new technologies capable of handling the detector’s astounding data rate. The strategy being developed involves a hierarchy of units, each of which temporarily stores all the data from those beneath it while determining which data points are useful, and then reporting up those that are and weeding out those that are not. My involvement with the project concentrated on research pertaining to the high-speed control logic for the lowest level of this process.

For the prototype data acquisition boards, the control logic was to be executed by a FPGA (Field Programmable Gate Array) to permit the addition of logic refinements without new hardware fabrication. However, it wasn't clear if existing FPGA technology was capable of the required clock rate. Therefore I designed the schematic and the layout for a board used to test this chip, and then tested its performance using high-end logic analyzers and oscilloscopes. Ultimately it was determined that the chip was usable, at which point I worked on the development of both the schematic and layout for the contents of this FPGA. Eventually the prototype data acquisition boards (containing these FPGAs) were ready for group testing, for which I wrote an extensive simulation and test program. This program had to trigger simulated input data for the boards, orchestrate their storage of this data, and then read out selected data to disk for analysis. I was also part of a team that worked on a larger program that analyzed the data that had been read in by this set-up.

When this testing/debugging phase was completed, the prototype boards were sent to CERN to be used in a large-scale test, including the use of prototypes of parts of the actual sensing apparatus in a live particle beam. I was invited to accompany the group to CERN (located in Geneva, Switzerland) to be part of this testing during the summer of 1994.


A picture of the ATLAS detector design
(from http://atlas.web.cern.ch/Atlas/Detector.gif)