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
© Copyright 2026 Paperzz