computer science science of computation omer reingold
TRANSCRIPT
Computer ScienceScience of Computation
Omer Reingold
Foundations of CS at Weizmann
• Irit Dinur• Uri Feige• Oded Goldreich• Shafi Goldwasser• David Harel• Robi Krauthgamer • Moni Naor• David Peleg• Amir Pnueli• Omer Reingold• Ran Raz• Adi Shamir
Algorithm•A “recipe” for solving a
computational problem (on every possible input).–Step-by-step, based on simple (basic) instructions.
•Some algorithms you probably already run: long arithmetic, ordering a deck of cards, …
9 8 7 6
5 4 3 2 1
1
1
1
3
1
41 9
“Long addition” algorithm
1. Scan column. If empty, stop.2. Add digits. Write answer, retain
carry.3. Move one column left, write
carry.4. Go to 1
What are simple instructions?• Can be carried out by a third grader? • By a computer processor?
– But we don’t want our theory to change every time a new processor goes into the market.
• Turing (1936!), proposed a “primitive” model of computation. We can define our algorithms on a Turing machine.
• Church-Turing thesis: Every effective computation can be carried out by a Turing machine.
Turing Machine
With the right abstractions
• Computer science is no longer about how computers “think” but rather about how humans think!–After all the science came first!
• … and possibly also about how nature thinks …
Is there an algorithm for every problem?
• No! Regardless of how much time we let the algorithm run.
• Examples: – There cannot be a computer
program that debugs other programs automatically.
– There cannot be a program that identifies all computer viruses.
Can computers solve in practice every solvable
problem?• No! Some problems take too much
time to solve. • So lets wait until computers become
faster …• Not a technological problem.
– Some algorithms will still be running after the sun burns out, even on a computer made of all the particles of the universe, communicating at the speed of light.
Efficiency of an Algorithm
• It is important to bound the amount of resources our algorithms use:
• Time: how many basic operations• Space: how many memory cells? • Randomness, Communication …• Try to find the most efficient
algorithm for a given problem. – Some ingenious ideas come into play.
Time Efficiency of an Algorithm
• Count the number of basic operations.
• Long addition of n-digit numbers – roughly n operations.
• Long multiplication of n-digit numbers (school method) – roughly n2 operations.
• Can we do better?
4373673103557
18
5982045
+
1 1 1 1
4373673
5982045
×
1794613541874
3153589227017946
1354187431517946
1352392818026163508701285
Asymptotics
• What is the difference between an algorithm running in time n, n2 and 2n ?
• As technology evolves inputs get larger – asymptotics matter!
n n2 2n
10 100 1024
50 2500 1015
100 10000 1030
1000 1000000 10301
Map Coloring
• Given a map, “legally” color the countries with three colors (coloring with fourcolors always exists)
• Does there exist anefficient algorithm?
• This is the central question of computer science (and one of the central questions of math). Sounds lame?
P vs. NP problem
• If there exists an efficient algorithm for map coloring then:– An efficient algorithm for many
other natural problems– Math and Science can be automated– Creativity can be automated
(computers can learn to generate jokes, art, etc.)
– (Almost) no cryptography
Cryptography and Knowledge
This talk is so boring
• Assuming it is hard to factor big numbers, cryptography offers solutions to many problems of secrecy, privacy, and fault tolerance.
• For example: two parties who never met can exchange information privately at the presence of others.
OK so you get the car
Cryptography and Knowledge
• Or flip a fair coin over the phone:
Cryptography and Knowledge
This talk is so boring
• These and other remarkable applications are impossible, based on our traditional notion of information. – For example, an encryption of a message contains
all the information about the message.
• New perspective of knowledge: it is not the information one possesses but rather the information that can be accessed efficiently!
Megalomaniac Moment in Conclusion
Computation: evolution of an environment via repeated application of simple, local rules
(Almost) all Physics and Biology theories satisfy!- Weather - Proteins in a cell - magnetization- Ant hills - Fish schools - fission- Brain - Populations - burning fire- Epidemics – Regeneration - growth
And also Economy, Social Science, …
Still Megalomaniac
• Math has often been thought of as the language of Science
• Theory of computation is an area of math particularly suited to analyzing processes operating with limited resources
• Computational lens proved powerful in bioinformatics, quantum computation, game theory…– Expect much more!