Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

Ok before I start I realise this is on the fringe of on-topic (I have read the Questions help for this site), particularly as this is not a real-world problem. However:

  1. I cannot find anything relevant on Google
  2. From a purist point of view surely it must fall within Computer Science?

In any case, if I have overstepped a boundary then I apologise and welcome the Closure as I am an avid user of other SE sites so I understand the issues.

Caveats aside, here it is: I have long wondered if it would be possible to build a functioning computing system, using humans as discrete logic components, to solve problems that individual humans could not solve in a practical timesscale. For example, imagine a number of humans stranded on an island without any machines, that needed to crunch some complex numbers to escape.

I imagine arranging people so that they receive inputs from other groups within the system, make simple decisions (perhaps binary decisions, perhaps not) and pass the outputs to other groups.

Then I imagine some kind of programming language could be developed to control the data and computation flow and the language could be used to solve complex problems without individuals understanding the overall problem.

So I guess the above is not an answerable question- but does anyone know of any research, books, papers or whatever on what it would take to achieve, what kinds of of problems could be addressed and potentially solved, what kind of control language could be deployed and how the architecture could be scaled up to handled more complex problems?

I suppose, in essence, I am looking for anything on "idealised" atomic (as in self contained) and standard computing units that could be arranged at will- I am just thinking in human terms.

I find the idea fascinating and alluring. I'd love to try it out one day and see what performance could be achieved! Sorry for the tags I have used, as I was searching the tags here I quickly became aware I have no idea of the correct terminology for what I am thinking, though I am sure it exists within the field...

share|improve this question
16  
Debugging would be truly painful. –  Raphael Mar 26 at 14:24
7  
I think the answer to this question is clearly that it is possible, and in fact, has been done since the innovation of the assembly line in manufacturing; there, humans are used as discrete elements each performing what could reasonably be called a "computation" on whatever they're assembling. –  Patrick87 Mar 26 at 15:36
2  
Google buzzword "human computing". There's a lot around. Remember that the original computers where women in factory halls who passed arounds sheets of paper with numbers on them, each performing an atomic computational step. –  Raphael Mar 26 at 18:07
1  
In a way that's what academia does: Someone publishes some insight into a problem, others use the results and build upon it. –  rath Mar 26 at 21:15
2  
"Using humans as components to build a computer ..." ... and once it is "powered on" program it to pass the Turing test :-) –  Vor Mar 27 at 0:10

5 Answers 5

Actually, until the 1950s the word computer was used to refer to a human who did arithmetic calculations. One (or more) of Richard Feynman's (many) autobiographies contains anecdotes about his time on the Manhattan project, where he ran the group of human computers. For arranging a group of humans to perform a complex computation they wouldn't start with discrete logic components, but rather have each human perform multiple arithmetic operations and then coordinate their results (along with some error checking.) How to organize these kinds of large computations may be covered in numerical methods books from the 1940s or early 1950s.

The first version of the Logic Theorist by Newell, Simon and Shaw was simulated using humans in 1956 (less expensive than computer time). They later won a Turing Award for basic contributions to AI, the psychology of human cognition and list processing (the Logic Theorist may have been the first program to use linked-lists to represent data structures.) And the experience influenced Simon's later ideas on emergent behavior (see his Sciences of the Artificial.)

As pointed out in the comments and other answers, there is now an emerging discipline of Human-Based Computation, where various incentives are used to get humans to do parts of a larger calculation, where those parts make good use of human problem solving or pattern recognition. One example of this is reCaptcha, where users need to enter two words to prove that they are not a bot, one a distorted image that is used for the actual "proof" and the second an actual word from a scanned book, which is used to produce a digitized version of the book. Another example is the Amazon Mechanical Turk where a business can outsource "microtasks" to human workers for small sums of money. The mechanical turk has been used, for example, to collect annotations on 250,000 images for image processing research. The key seems to be breaking the problem down into a pile of independent work items, with significant amounts of redundancy used to reduce errors. (E.g., you assign the same work item to 2 different humans, and then if they provide conflicting answers you assign the work item to a third human to resolve the difference.)

share|improve this answer
1  
By now, the focus has shifted to use humans where computers are weak, e.g. image recognition. Can you provide some information and perspective on that? –  Raphael Mar 26 at 18:09
2  
See also When Computers Were Human, by David Alan Grier. The book spans computing history from 1758 through 1986, and includes things such as the room full of women NASA would use for rocket calculations because they didn't trust those computing machines to get stuff right. –  Brian S Mar 26 at 18:41
2  
Thanks for that. Actually I am aware of the Feynman/Manhattan Project stuff. And clearly it is entirely possible to model a problem domain and distribute it amongst a group of human calculators to solve a specific equation in this way. However this doesn't address my point about a control language so that the problem is modelled in that language and then "executed" by the system, which is a further level of abstraction. The point being that the same functional system can then be used to solve different problems without "rewiring". I'll def. follow up those references though- most interesting –  Marv Mills Mar 26 at 19:24
    
@MarvMills, the "program" was probably written down to instructions to each of the people doing the computation, but the interest in such seems to have come much later. Perhaps some survive in old numerical analysis books or reports... but not googleable :-( –  vonbrand Mar 26 at 21:49
2  
I did enjoy the Google Tech Talk on Human Computing by Luis von Ahn. It's a couple of years old, but he illustrates some key aspects and motivations. The image tagging game he proposes is actually fun. –  Raphael Mar 27 at 15:11

I would think that, in a way, current proof development technology, and possibly associated program synthesis techniques, rely on a symbiosis between humans and computers, wich is not far removed from the example of the Manhattan project human computers. The computer provides some steps of the reasonning and does all the tedious, though difficult book-keeping, while humans provide the Aha steps that the computer cannot (yet?) find.

I remember an old program transformation system, where transformations were programmed in a specific programming language. When the program identified a situation it could not handle, it could pass control to the user who was supposed to do whatever was needed by hand, with intepreted commands, and then pass control back to the transformation program.

share|improve this answer

as other answers point out, humans were used as computers before hardware-based computing (mainly for calculating large mathematical tables published as volumes), and that is the original literal meaning of the word "computer". in the history of computing, the trend has been exactly in the opposite direction away from human computing to hardware based computing because humans are essentially unreliable (and increasingly unnecessary) for nearly-mechanical tasks.

however, social networking has given rise to new forms of human-based computing aka "collective intelligence" (CI). there are many examples. for example on stackexchange the question "ratings" (positive minus negative votes) and "hot questions" are based on CI of stackexchange users (expressed via voting). algorithms to find similar items on eg Amazon based on user behavior are related to CI. similar algorithms run on Netflix to find similar movies based on user preferences (and user-submitted ratings).

google Pagerank is designed to work based on the CI encoded in link patterns (linking on web pages is ultimately based on human choices). Facebook is introducing a new Graph Search algorithm also tightly coupled with CI. note that even what friends a person has, as expressed in social networks, is related to CI.

examples of concepts related to human computing:

so, as far as long range trend, humans as digital or mechanical computers has been in decline for the entire 20th century continuing into the 21st, but collective intelligence is very much on the rise as well as cheap computing and computing clusters fueled by Moores law.

share|improve this answer

This is a real world challenge and closely relates to workflows. The idea of having a workflow is to have a queue or ordered or un-ordered list of tasks that people or computers have to pick up at any time to complete a bigger process in which they may or may not be concerned or know about at all.

In effect you will have a machine that can make something and usually this is the main challenge and/or goal for an entrepreneur, mostly because money can be made if you can automate something and then step away from it (like a machine).

The inherent problem with using humans is that they make more mistakes or get bored with the work. Basically, this is also the reason for entrepreneurs to try to replace the real people parts with mechanical or computers parts.

share|improve this answer
1  
This doesn't seem to answer the question which is how you'd do it with people. Clearly, people make mistakes, so any system would have to be able to detect and correct those. –  David Richerby Mar 27 at 9:19
    
A corporate process is not the same as a (general purpose) computer. It's rather a communication protocol and workload distribution schedule for independent actors/computers. –  Raphael Mar 27 at 15:07

The framework sounds like a specific implementation of Automata Theory:

"the study of abstract machines and automata, as well as the computational problems that can be solved using them"

...and then yes, its a well developed CS field.

In your implementation, your machines are human. Not my first choice, since they tend to add problems of latency, reliability, bathroom breaks, whining, etc. But sometimes that's just fine.

Crowd-sourcing and web 2.0 (user generated content) websites are an example of this kind of implementation; human nodes as a self organized collective 'solving' or validating the more complex issue.

Should be enough terms there for you to start your research...

share|improve this answer
1  
I'm not sure this really answers the question. How would you implement an automaton using a network of people? If the automaton is deterministic, the computation is inherently serial so there'd be no benefit. How would you simulate nondeterminism? Crowd-sourcing is a definite example but how does user-generated content constitute computation? YouTube, for example, has more user-generated content than anyone could ever use but the people uploading videos and commenting there aren't computing anything: they're just uploading videos and commenting. –  David Richerby Mar 26 at 21:37
    
OP asks for 'research, books, papers or whatever'. Explaining how to implement or whether or not I feel it is feasible to do so with humans is entirely irrelevant. –  Vic Mar 27 at 18:35
    
The OP asks for stuff that answers the question. You don't explain how automata theory is an answer to the question; user-generated content definitely isn't an answer to the question. –  David Richerby Mar 27 at 18:47
    
OP clearly does not ask for 'stuff' and plainly states this is 'not an answerable question'. Can you offer some constructive criticism here? You've downvoted the answers above under the premise that "how you'd do it with people" is a specific request. There is no such language in the original post. I invite you to actually read it. –  Vic Mar 27 at 23:15
    
Point of information: you have no idea what I or anyone else have or have not downvoted. Your guess (and it is just that: a guess) is wrong. As for constructive criticism, I've given several suggestions for improving your answer. –  David Richerby Mar 27 at 23:46

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.