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)