Ch. 22: Limits
  1. Turing Test
    1. Can a computer think?
    2. Turing's answer: Can it respond well enough to fool an expert?
    3. Not yet.
  2. Eliza
    1. An early, and rather simple, dialog program.
    2. There is a version here. Google will give you many others.
    3. Might look real for a while, but doesn't take too long to see that the program doesn't understand.
    4. Siri has more data, but does she understand better?
  3. Game playing.
    1. Uses a tree of boards.
    2. Computer searches tree for the best result.
    3. Parallel computers makes the search faster.
    4. Historical study helps trim the explosion.
    5. Chess
      1. Kasparov beat Deep Blue in 1996.
      2. Improved Deep Blue won in 1997.
    6. Winning at chess = intelligence?
      1. The chess computer is very specialized.
      2. Chess is something computers are good at.
      3. The language skills of a normal 3-year-old are far beyond what a computer can do.
      4. Is it the computer that's intelligent, or the engineers who built it?
    7. Watson
      1. IBM computer which plays (and wins) Jeopardy.
      2. Much more human-like problem.
      3. 2800 machines operating in parallel.
      4. Studied many past questions to understand how the computer should parse them.
      5. Forms multiple possible answers and rates them by certainty.
      6. Played quite well
        1. Left the human champions in the dust.
        2. But famously failed on Its largest airport is named for a World War II hero, its second largest for a World War II battle. (I wouldn't have gotten it, either.)
    8. Obviously more human-like, but questions still rather structured.
    9. Questions were typed to Watson; it did not have to understand the spoken questions.
  4. Are computers creative?
    1. Programs to create pictures.
    2. High-level rules + random number generation.
    3. Can creativity follow rules, or is it making the rules?
  5. Universality.
    1. All general-purpose computers can solve the same set of problems.
    2. If one computer can do it, any other computer can do it, in principle, but may be practical problems.
      1. The other may be too slow to finish in a reasonable amount of time.
      2. The other may not have enough memory.
      3. The problem may not have been programmed there.
  6. Complexity.
    1. Some problems are harder than others.
    2. Algorithms are classified by order on the size of the input.
      Think proportional, though that's not exactly the definition
      1. Simple linear searching is O(n). The binary search is log n.
      2. Simple sorting algorithms are O(n2). Better ones are n log n.
    3. NP-complete problems
      1. Includes some useful problems, such as the shortest (or cheapest) route to visit n cities.
      2. The NP-complete problems are thought to unsolvable better than 2n.
      3. This makes them pretty much impractical forever.
      4. Approximate solutions are often possible and adequate in practice.
    4. Impossible problems.
      1. Some cannot be solved: The halting problem.
        Mostly of theoretical interest, but does mean some automated debugging tools are literally impossible to build.
      2. Generally believed that no computer can solve any of these problems.