Presentation is loading. Please wait.

Presentation is loading. Please wait.

Interactive computability

Similar presentations


Presentation on theme: "Interactive computability"— Presentation transcript:

1 Interactive computability
Episode 11 Interactive computability Hard-play machines (HPMs) Easy-play machines (EPMs) Definition of interactive computability The interactive version of the Church-Turing thesis

2 From TM to HPM 11.1 Our basic model of interactive computation (game-playing by a machine) is what we call “hard-play machines” (HPM). An HPM is nothing but a Turing machine as defined in Section 2, with only the following two modifications/generalizations in the way it interacts with its environment: 1) Rather than requiring that a (single) “input” be present on the I/O tape (now renamed into run tape) at the beginning of the work of the machine, we stipulate that, at any time and any number of times, any finite number ⊥1,...,⊥n of ⊥–prefixed strings (“inputs”) can be appended to the contents of the run tape. This means that Environ-ment has made the moves 1,...,n. Not limiting the number of such moves accounts for the intuition that we do not impose any conditions on Environment’s relative speed. 2) Unlike a TM, an HPM does not halt once it enters the Halt state (now renamed into Move state). Simply, as before, entering this state results in appending the string ⊤ to contents of the I/O tape, where  is the string found to the left of the scanning head on the work tape. Such an event means that Machine made the move (“output”) . After the HPM makes a move, it continues working, and may make more moves later. The different possibilities of Environment’s moves appearing on the run tape create different branches of computation of the machine, and correspond to all possible scenarios of how things can evolve when the machine plays. Each branch B of computation incrementally spells some (possibly infinite) run on the run tape, which we call the run spelled by B.

3 (transition function) Control
An example of an HPM 11.2 Run tape - - - - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

4 (transition function) Control
An example of an HPM 11.2 Run tape - - - - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

5 (transition function) Control
An example of an HPM 11.2 Run tape - - - - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

6 (transition function) Control
An example of an HPM 11.2 Run tape - - - - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

7 (transition function) Control
An example of an HPM 11.2 Run tape - - - - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

8 (transition function) Control
An example of an HPM 11.2 Run tape 1 - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

9 (transition function) Control
An example of an HPM 11.2 Run tape 1 - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

10 (transition function) Control
An example of an HPM 11.2 Run tape 1 - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

11 (transition function) Control
An example of an HPM 11.2 Run tape 1 - - - - - - - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

12 (transition function) Control
An example of an HPM 11.2 Run tape 1 - - - - - - - - - - - - - Work tape 1 - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

13 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 - - - - - - - - - - Work tape 1 - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

14 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 - - - - - - - - - - Work tape 1 - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

15 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 - - - - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

16 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 - - - - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

17 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

18 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

19 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

20 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

21 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

22 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape 1 - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

23 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

24 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

25 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

26 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

27 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

28 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

29 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

30 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

31 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

32 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

33 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 - - - - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start Move (transition function) Control 1,-  -,R,S ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

34 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

35 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

36 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

37 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape 1 - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

38 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

39 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

40 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

41 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

42 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

43 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

44 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

45 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

46 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

47 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

48 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

49 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

50 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

51 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

52 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

53 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

54 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

55 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 - - Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

56 (transition function) Control
An example of an HPM 11.2 Run tape 1 1 1 1 Work tape - - - - - - - - - - - - - - - 0,-  0,R,R 1,-  1,R,R -,-  -,S,S -,-  -,S,S ⊥,-  -,S,S ⊥,-  -,R,S ⊤,-  -,S,S ⊤,-  -,R,S 0,-  -,R,S Start 1,-  -,R,S Move (transition function) Control ⊤,-  -,R,S -,-  -,S,S ⊥,-  -,S,S -,-  -,S,S -,-  -,S,L ⊥,-  -,S,S ⊥,-  -,S,L ⊤,-  -,S,S ⊤,-  -,S,L -,0  -,S,L ⊥,0  -,S,L ⊤,0  -,S,L -,1  -,S,L ⊥,1  -,S,L ⊤,1  -,S,L

57 Interactive algorithm = HPM
Computing by an HPM 11.3 We say that an HPM H computes (or solves, or wins) a constant game G and write H ⊧ G iff, for every computation branch B of H, where  is the run spelled by B, we have WnG = ⊤. Example: The HPM of Slide 11.2 computes the game where all (and only) finite bit strings are legal moves by either player in every position, and where Machine wins a given run iff it makes exactly the same moves as Environment did. Thesis 11.3 More precisely, for every (interactive) computational problem G, we have: (a) If some HPM computes G, then G has an algorithmic (effective) solution according to everyone’s reasonable intuition. (b) If G has an algorithmic solution according to anyone’s reasonable intuition, then there is an HPM that computes G. Interactive algorithm = HPM The above is a generalization of the Church-Turing thesis to interactive problems. So, it can be called the “Interactive version of the Church-Turing thesis”.

58 From HPM to EPM 11.4 An “easy-play machine” (EPM) is defined in the same way as an HPM, with only the following modifications: There is an additional special state in an EPM called the Permission state. We call the event of entering this state granting permission. In the EPM model, the environment can (but is not obligated to) make a (one single) move only when the machine is in the Permission state. The machine is considered to win (solve, compute) a constant game G iff, for every computation branch B of the machine, where  is the run spelled by B, we have: (a) WnG = ⊤. (b) As long as Environment does not offend (does not make illegal moves of G) in , the machine grants permission infinitely many times in B. Intuitions: In the EPM model, the machine has full control over the speed of its adversary --- the latter has to patiently wait for explicit permissions from the machine to make moves. The only fairness condition that the machine is expected to satisfy is that, as long as the adversary plays legal, the machine has to grant permission every once in a while; how long that “while” lasts, however, is totally up to the machine.

59 Equivalence between HPMs and EPMs
11.5 Of the two models of interactive computation, the HPM model is the basic one, as only it directly accounts for our intuitions that we can not or should not assume any restrictions on the behavior of the environment, including its speed. But a natural question to ask is “What happens if we limit the relative speed of the environment?”. The answer turns out to be as simple as “Nothing”, as long as static games (the very entities that we agree to call computational problems) are concerned. The EPM model takes the idea of limiting the speed of the environment to the extreme, yet, according to the following theorem, it yields the same class of computable problems. Theorem 11.5 For every static constant game G, the following conditions are equivalent: (a) There is an HPM that computes G. (b) There is an EPM that computes G. Moreover, every HPM H can be effectively converted into an EPM E such that E wins every static game that H wins. And vice versa: every EPM E can be effectively converted into an HPM H such that H wins every static game that E wins. This theorem provides additional evidence in favor of Thesis 10.3.a. Even though the EPM model is equivalent to the HPM model, one of the reasons why we still want to have it is that describing winning strategies in terms of EPMs is much easier than in terms of HPMs.

60 We write ⊧A to mean that A is computable.
Main definition 11.6 Throughout the previous episodes we have been abundantly using the terms “algorithmic winning strategy” (or “algorithmic solution”), “computable”, etc. It is time to at last define these most basic terms formally. Definition 11.6 Let G be a computational problem (static constant game). An algorithmic solution, or an algorithmic winning strategy, for G is an HPM or EPM that computes G. And G is said to be computable (winnable) iff it has an algorithmic solution. We write ⊧A to mean that A is computable.


Download ppt "Interactive computability"

Similar presentations


Ads by Google