Computability on the integers Laurent Bienvenu ( LIAFA, CNRS & Université de Paris 7 ) EJCIM 2011 Amiens, France 30 mars 2011 1. Basic objects of computability The formalization and study of the notion of computable function is what computability theory is about. As opposed to complexity theory, we do not care about efficiency, just about feasibility. Computable. functions What does it means for a function f : N ! N to be computable? 1. Basic objects of computability 3/79 As opposed to complexity theory, we do not care about efficiency, just about feasibility. Computable. functions What does it means for a function f : N ! N to be computable? The formalization and study of the notion of computable function is what computability theory is about. 1. Basic objects of computability 3/79 Computable. functions What does it means for a function f : N ! N to be computable? The formalization and study of the notion of computable function is what computability theory is about. As opposed to complexity theory, we do not care about efficiency, just about feasibility. 1. Basic objects of computability 3/79 But for us, it is now obvious that computable = realizable by a program / algorithm. Surprisingly, the first acceptable formalization (Turing machines) is still one of the best (if not the best) we know today. The. intuition At the time these questions were first considered (1930’s), computers did not exist (at least in the modern sense). 1. Basic objects of computability 4/79 Surprisingly, the first acceptable formalization (Turing machines) is still one of the best (if not the best) we know today. The. intuition At the time these questions were first considered (1930’s), computers did not exist (at least in the modern sense). But for us, it is now obvious that computable = realizable by a program / algorithm. 1. Basic objects of computability 4/79 The. intuition At the time these questions were first considered (1930’s), computers did not exist (at least in the modern sense). But for us, it is now obvious that computable = realizable by a program / algorithm. Surprisingly, the first acceptable formalization (Turing machines) is still one of the best (if not the best) we know today. 1. Basic objects of computability 4/79 • A read-write head, which can write on the cells symbols from a finite alphabet (usually f0; 1g), and a special “symbol”, blank. The head can be in one of finitely many states q0; q1; q2;:::, with two particular states qi and qf, respectively initial and final state. The head comes with a transition table which tells it, given the symbol of the cell it is reading and its current state, which action it should perform (write a new symbol or not, change its state or not, move or not). ) ! ) E.g. (0; q4) (0; q5; ); (1; q2) (0; qf; -) A. formalization: Turing machines (1) A Turing machine consists in: • A computation tape, made of infinitely many cells C0; C1; C2;:::, which is “read/write”. 1. Basic objects of computability 5/79 The head can be in one of finitely many states q0; q1; q2;:::, with two particular states qi and qf, respectively initial and final state. The head comes with a transition table which tells it, given the symbol of the cell it is reading and its current state, which action it should perform (write a new symbol or not, change its state or not, move or not). ) ! ) E.g. (0; q4) (0; q5; ); (1; q2) (0; qf; -) A. formalization: Turing machines (1) A Turing machine consists in: • A computation tape, made of infinitely many cells C0; C1; C2;:::, which is “read/write”. • A read-write head, which can write on the cells symbols from a finite alphabet (usually f0; 1g), and a special “symbol”, blank. 1. Basic objects of computability 5/79 ) ! ) E.g. (0; q4) (0; q5; ); (1; q2) (0; qf; -) A. formalization: Turing machines (1) A Turing machine consists in: • A computation tape, made of infinitely many cells C0; C1; C2;:::, which is “read/write”. • A read-write head, which can write on the cells symbols from a finite alphabet (usually f0; 1g), and a special “symbol”, blank. The head can be in one of finitely many states q0; q1; q2;:::, with two particular states qi and qf, respectively initial and final state. The head comes with a transition table which tells it, given the symbol of the cell it is reading and its current state, which action it should perform (write a new symbol or not, change its state or not, move or not). 1. Basic objects of computability 5/79 A. formalization: Turing machines (1) A Turing machine consists in: • A computation tape, made of infinitely many cells C0; C1; C2;:::, which is “read/write”. • A read-write head, which can write on the cells symbols from a finite alphabet (usually f0; 1g), and a special “symbol”, blank. The head can be in one of finitely many states q0; q1; q2;:::, with two particular states qi and qf, respectively initial and final state. The head comes with a transition table which tells it, given the symbol of the cell it is reading and its current state, which action it should perform (write a new symbol or not, change its state or not, move or not). ) ! ) E.g. (0; q4) (0; q5; ); (1; q2) (0; qf; -) 1. Basic objects of computability 5/79 Then we run the machine, until at some point the state qf is reached by the head. Then the output is the string of 0 and 1 present on the tape (after removing blank symbols) at that point. Caveat: the computation may never halt!! A. formalization: Turing machines (2) The input n is initially placed on the tape (written as string of 0’s and 1’s) starting from cell C0 and in a contiguous way. The rest is blank. 1. Basic objects of computability 6/79 Caveat: the computation may never halt!! A. formalization: Turing machines (2) The input n is initially placed on the tape (written as string of 0’s and 1’s) starting from cell C0 and in a contiguous way. The rest is blank. Then we run the machine, until at some point the state qf is reached by the head. Then the output is the string of 0 and 1 present on the tape (after removing blank symbols) at that point. 1. Basic objects of computability 6/79 A. formalization: Turing machines (2) The input n is initially placed on the tape (written as string of 0’s and 1’s) starting from cell C0 and in a contiguous way. The rest is blank. Then we run the machine, until at some point the state qf is reached by the head. Then the output is the string of 0 and 1 present on the tape (after removing blank symbols) at that point. Caveat: the computation may never halt!! 1. Basic objects of computability 6/79 A. formalization: Turing machines (3) qi work 0 1 0 0 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q3 work 1 1 0 0 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q7 work 1 0 0 0 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q2 work 1 0 0 0 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q1 work 1 0 0 1 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q9 work 1 0 0 1 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) q2 work 1 0 0 1 1 tape (R/W) 1. Basic objects of computability 7/79 A. formalization: Turing machines (3) qf work 1 0 0 1 1 0 tape (R/W) 1. Basic objects of computability 7/79 Since Turing machines may not halt, we in general deal with partial functions (= may not be defined for some input). The model is robust: we would get the same notion if we defined computability via RAM machines, lambda-calculus, Abstract State Machines, C++, etc). Turing-Church thesis: What is effectively calculable is computable A. robust notion (1) Now we can define: computable = computable by a Turing machine 1. Basic objects of computability 8/79 The model is robust: we would get the same notion if we defined computability via RAM machines, lambda-calculus, Abstract State Machines, C++, etc). Turing-Church thesis: What is effectively calculable is computable A. robust notion (1) Now we can define: computable = computable by a Turing machine Since Turing machines may not halt, we in general deal with partial functions (= may not be defined for some input). 1. Basic objects of computability 8/79 Turing-Church thesis: What is effectively calculable is computable A. robust notion (1) Now we can define: computable = computable by a Turing machine Since Turing machines may not halt, we in general deal with partial functions (= may not be defined for some input). The model is robust: we would get the same notion if we defined computability via RAM machines, lambda-calculus, Abstract State Machines, C++, etc). 1. Basic objects of computability 8/79 A. robust notion (1) Now we can define: computable = computable by a Turing machine Since Turing machines may not halt, we in general deal with partial functions (= may not be defined for some input). The model is robust: we would get the same notion if we defined computability via RAM machines, lambda-calculus, Abstract State Machines, C++, etc).
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages178 Page
-
File Size-