What comes to mind when you hear the word Rand? Ayn Rand? Rand Paul? For me, it is the RAND Corporation. Project RAND (research and development) was housed at Douglas Aircraft in Santa Monica, California immediately after World War II, and became an independent, nonprofit organization in 1948. Perhaps the first "think tank," they spun off their development work, creating the the System Development Corporation in 1957.
I don't know how one ranks research institutions, but, for me, RAND ranks right up there with Bell Labs, IBM Research and newcomers Microsoft and Google research. The following are summaries of a some of the computer science advances made by RAND researchers and consultants.
Communication satellites: Science fiction writer Arthur C. Clark outlined the vision of geostationary communication satellites in a short article published in October, 1945. Five months later, Frank Collbohm and James Lipp published a comprehensive engineering study on a "Preliminary Design of an Experimental World-Circling Spaceship."
|Arthur C. Clarke's vision (left) and RAND's design|
Artificial intelligence: Herbert Simon, Allen Newell and Cliff Shaw did early work on artificial intelligence at RAND and Carnegie Tech. They asked people to talk out loud while proving theorems and noted that their strategy was to apply operations that reduced the differences between the current state of the proof and the theorem they were trying to prove. Their programs, Logic Theorist and General Problem Solver, did the same -- and so does this pigeon:
|A pigeon solves Wolfgang Kohler's box-and-banana|
problem by applying the Box Move operator.
Operations research: George Dantzig and Richard Bellman invented mathematical techniques for finding optimal or near-optimal solutions to complex, but well defined problems. This work has applications in network design and you use Dantzig's simplex algorithm whenever you build an Excel spreadsheet to solve a linear programming problem.
SIMSCRIPT: Harry Markowitz and Bernard Hausner invented the SIMSCRIPT programming language for simulating systems like customers moving through checkout stands at a market. SIMSCRIPT was an early object-oriented language in that it modeled the world as sets of entities and their attributes. Entities could be created and destroyed and their attribute values and set memberships changed when events in simulated time occurred. (SIMSCRIPT is close to my heart because it was the subject of the first class I ever taught. Unfortunately, my wife threw out my SIMSCRIPT t-shirt years ago).
|T-shirt -- Entities, Attributes and Sets|
An early research computer: Early computers were built as research projects at universities. You can recognize them by their names ending in "AC" for automatic calculator. RAND's JOHNNIAC (named in honor of mathematician and computer architect John von Neumann) was a stored program computer. It was used for applications including the early artificial intelligence research and operations research mentioned above.
Timesharing: Terminals and drum storage were added to the JOHNNIAC, enabling Cliff Shaw to create JOSS (JOHNNIAC Open Shop System), one of the first interactive time sharing systems. JOSS was "open shop" in that users interacted directly with the computer rather than dropping off jobs to be run at a later time by a computer operator.
|Programmer at a JOSS terminal|
Large, packet-switching networks: I've saved the best for last. Paul Baran published a series of eleven reports on Distributed Communications Networks in 1964. In Volume 2, he described the network architecture:
Traffic to be transmitted is first chopped into small blocks, called Message Blocks or simply messages. These messages are then relayed from station to station through the network with each station acting as a small "post office" connected to adjacent "post offices."After simulating this system and considering the technology of the day, Baran concluded in Volume 11 that
It appears theoretically possible to build large networks able to withstand heavy damage whether caused by unreliability of components or by enemy attack.He was right!
|Paul Baran's distributed network arhitecture|
Two of the people cited here went on to win Nobel prizes. Harry Markowitz received the Nobel Prize in economics for his work on portfolio theory -- perhaps not tied to his work on digital simulation.
Herbert Simon also received the Nobel Prize in economics for his work on decision making. He noted that we do not make optimal deisions when choosing among alternatives because information about outcomes is incomplete, gathering more information has a cost and outcomes are multidimensional. In real life we make satisfatory decisions. This realization no doubt guided his studies of the thought processes of chess players and theorem provers and therefore his work on artificial intelligence.
(A personal note: I took a class from professor Simon as an undergrad. All I recall was that I liked him a lot and he told us about the chess game his "computer" -- whatever that was -- was playing with a computer in Arizona. I also met him much later, and he was modest and helpful -- told me he stored most of what he knew in his friend's heads).
You can learn more about any of this work on Wikipedia or using Google, but -- better yet -- download the historic reports by these researchers from the RAND Web site.