1/22/2009 What is computable? ������ • Examples: – check if a number n is prime ��������������������� – compute the product of two numbers – sort a list of numbers – find the maximum number from a list Spring 2009 • Hard but computable: – Given a set of linear inequalities, maximize a linear Sariel Har�Peled function sariel@cs.uiuc.edu Eg. maximize 5x+2y 3x+2y < 53 Madhusudan Parthasarathy ( Madhu ) x < 32 madhu@cs.uiuc.edu 5x – 9y > 22 Theory of Computation Theory of Computation �������������������������� " �����������!������������ • ������������������������ " ���������������������$����������!���� Computability ��$����������������������%"������ • ��������������������������������������������������������� ��������� " '����������������������$���������!���� Complexity • ������������������������������������������� � '���������������%"�������������������� ���������������������� ������$�������!��� • ����������������������!����������������������������"���� ������������������������������������������������������#� � ���������!������������������$�����$�� Automata �������$�������������������� • ���������������������$����������!�������$������������������� ���������������� ���%"�����������&��������������������������������������������� In short, ����������������������������������������� Theory of Computation Theory of Computation ���������!�����������������������$�� ���������!�����������������������$�� (����������!����))) Even checking whether a C�program will Computability Computability halt/terminate is not possible! *�#��+�$��������"���������������������� ����%��������������������������) input n; Verification of correctness of programs assume n>1; ������������ is hence impossible! Complexity Complexity while (n !=1) { ������������ if (n is even) ������������� (The woe of Microsoft!) n := n/2; �������������� else n := 3*n+1; Automata Automata } 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1. 1
1/22/2009 Theory of Computation Theory of Computation ����������������������������������� Computability Computability ����������������������������� • ����������������������� �� • ���!��������������"��# • $����%�������&��'������(����� Complexity Complexity )��������������������� ���������������* .��������������������������*!! • $����������������������� ����������-����&�/�����-��������� • +�����������&��� ����������������� Automata • ,������������������� �������������� Automata ������ ��0 • '�$��������-�����&��� $�����������������������-&� �� ������������� /�����������������������&����0 Theory of Computation Theory of Computation 1 � � ' What can we compute? + �� Most general notions of computability $ Computability Turing machines �� Uncomputable functions � 1 � 2 What can we compute fast? �� Faster algorithms, polynomial time Complexity Context�free � �� Problems that cannot be solved fast: . languages 3 * Cryptography . � What can we compute with very little space? Automata: 4 �� Constant space (+stack) ��� Foundations of computing Automata Automata + * String searching, language parsing, ��� Mathematical methods of argument 5 hardware verification, etc. ��� Simple setting 1 � 6 Theory of Computation Theory of Computation 1 1 � � � � ' ' + + Turing machines (1940s): $ $ �� The most general notion of computing Turing machines Turing machines � � �� The Church�Turing thesis 1 1 �� Limits to computing: � � Uncomputable functions 2 2 Context�free Context�free � � . languages . languages 3 3 Motivation from mathematics: Context�free languages . . • Can we solve any mathematical question ��� Grammars, parsing � � ������������ ? ��� Machines with stack 4 4 • Godel’s theorem: NO! Automata ��� Still a simple setting; but infinite state Automata + + • “Even the most powerful machines 5 5 cannot solve some problems.” 1 1 � � 6 6 2
1/22/2009 Theory of Computation Kurt Gödel 1 � � • Logician extraordinaire ' ���������������� • Hilbert, Russel, etc. tried to + Turing machines ������������� $ formalize mathematics � 1 • “Incompleteness theorem” (1931) � – Cannot prove consistency of 2 Context�free arithmetic formally ����������������������� . languages � ����������� – Consequence: unprovable theorems 3 . Since proofs �� computation, � ���������������� Automata 4 �������������� non�computability was established + 7����2����*�89:;�! 89�< 5 !������������������"���� 1 ������ � 6 Alonzo Church Alan Turing • “father of computer science” First notions of computable functions • Defined the first formal notion of a computer (Turing machine) in 1936: “ &���������!���(��!������������� First language for programs ,������������������*���������������!��� ” �� lambda calculus • Proved uncomputable functions �� formal algebraic language exist for computable functions • Church�Turing thesis: all real world computable • functions are Turing m/c computable $���������-*�898>�! 89=? • Cryptanalysis work breaking Enigma in WW�II $���(��������*� 89:��! 899= Noam Chomsky Automata theory • Linguist ; introduced the notion of formal • ,������������������������������������ languages arguing generative grammars are at the base of natural languages • �-������,������������������.�����������!���� • Hierarchy of formal languages that " /�!�������0�������1232� coincides with computation • Eg. Context�free grammars capture • ����������������������������������� most skeletons of prog. languages ������������������������������������ ������������*�89><! “Logical Structure of Linguistic Theory” (1957) • �����������$������������������������ • �������,������1245� 3
Recommend
More recommend