Theoretical Computer Science

Theoretical Computer Science
Arpita Korwar
University of Paris, Diderot
September 22, 2016
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
1 / 17
What is computation?
A computation can be seen as a purely physical phenomenon
occurring inside a “computer”.
Examples: digital computers, laptops, tablets.
A machine that can be “programmed” to perform new automated
tasks.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
2 / 17
Model of Computation
A set of ‘simple’ allowed operations.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
3 / 17
Input to a computer
Example: Random-access computers: Inputs are in the form of ‘bit
strings’: Sequence of 0s and 1s.
Everything inside your computer is stored as bits.
Examples: Text files, Pictures, videos.
Advanced example: Programs: The input to your machine may be a
program (A dream within a dream).
Can a program run an instance of itself? (Probably with other input.
Why other input?)
Question: What kind of inputs are not allowed?
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
4 / 17
Random-access machine is not the only model
Example: Quantum computers, where the ‘bits’ are quite complicated.
Example: Parallel machines.
Now onwards, we will fix our model of computation: Random-access
machines.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
5 / 17
Examples of problems
Adding/multiplying two numbers.
Sorting.
Finding whether a number is prime.
Searching a name from the list of invitees.
Searching a word in a dictionary.
...
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
6 / 17
Problems Vs Algorithms
One problem, infinitely many algorithms1 .
Find faster and faster algorithms for that problem.
1
One problem, no algorithms to solve it
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
7 / 17
Common questions
Faster algorithms.
Give a lower bound on the time required to solve a problem: every
algorithm designed to solve this problem takes a long time.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
8 / 17
Overlap with Maths
We don’t work with computers.
Maths can be used to solve problems fast.
Example: Cryptology.
We like to say that we do maths. Mathematicians don’t like to
include us.
One difference with maths: they work on the infinite domain.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
9 / 17
Some cool problems: Sorting
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
10 / 17
Travelling Salesman Problem
Problem of the older era.
Naı̈ve algorithm.
We don’t expect to do significantly better than this algorithm.
We don’t even expect to ‘approximate’ it fast.
There are always heuristics/ jugaad: algorithms which work fast on
most of the common inputs.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
11 / 17
Map colouring
Given a map with various countries, colour it.
Condition: No two adjoining countries should get the same colour.
We need only 4 colours.
Proof is not simple. They wrote computer programs to solve it.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
12 / 17
Protein folding
The protein molecules in our body need to fold to perform their duty.
Each protein molecule is configured differently and folds in a specific
manner corresponding to that configuration.
This problem is provably hard, but still our body can do it fast.
We don’t know how.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
13 / 17
PRIMES
Given a number n, is it prime?
We would check if the numbers between 2 and
√
This takes n steps.
√
n divide it.
In 2004, three scientists from India, Manindra Agrawal, Nitin Saxena
and Neeraj Kayal gave an algorithm to solve it in log(n) time.
log(n) is very small:
√
n
n
log10 (n)
10
3.162 1
100
10
2
1000
31.62 3
10000
100
4
100000 316.2 5
..
..
..
.
.
.
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
14 / 17
Randomized algorithms
What are randomized algorithms.
Rajeev Motwani (1962-2009)
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
15 / 17
Thank you
Arpita Korwar (University of Paris, Diderot)
Theoretical Computer Science
September 22, 2016
16 / 17