So even by defining such a simple machine one can start asking all sorts of interesting questions such as What is the typical behaviour of a Turing machine? How to prove (non-)universality results? How many universal Turing machines there are? How small can they be? How fast they can compute? How can they be implemented and physically realized? Are digital computers Turing machines? Can we do better (faster/more powerful) than Turing machines? Each of these questions deserves a full lecture by themselves but let me quickly cover a couple of them in the next slides because it helps my case to convey the value of the Turing machine model and why if there is anything you should well rather well in theoretical computer science is this model and its most implications. So let me start by the first question on the behaviour of Turing machines. And this is actually a game that some people even researchers study, the question that drives the game is to find the Turing machine that, given a number of symbols and states, takes the longest computing time to halt among all the machines of the same size that halt. A similar question is a machine that prints more 1s on its tape, among all the machines in of the same size, such a Turing machine is called the Busy Beaver, you know because it looks very busy, more than any other of the same size. Fixing the number of states and symbols means that the number of Turing machines is finite so for small states and symbols one can go almost one by one trying to figure out the Busy Beaver machine, and some of such machines are known, here is a table of some of them, but one can see how fast the largest number grows and, more importantly, how fast the number of Turing machines grow in order to continue looking for the next Busy Beaver. The Busy Beaver is an example of an uncomputable problem because of the halting problem. You see how it goes, if you were able to find all Busy Beavers you would know whether a Turing machine will halt or not only by looking at its number of states and symbols but we know this is not possible because of the undecidability of the Halting problem that we have explored before. I myself have a conjecture about Busy Beaver Turing machine, I think they are natural candidates for Turing universality because they are non-trivial Turing machines and as I will explain in the next slides, it is quite easy to construct universal Turing machines. This is a nice visualisation I created, related to my own research interests, that shows the behaviour of a typical finite set of Turing machines for a given number of states and symbols. Each dot represents a small Turing machine with 2 states and 2 symbols of which there are 10 thousand. The darker the dot the longer the machine takes to halt. White dots are machines that never halt, and red dots are the Busy Beavers. Now you can see that most Turing machines either never halt or halt quickly, and only a few do a lot of work and halt. So this gives you an idea of the typical behaviour of a Turing machine for an empty tape. Actually, I won a prize for this image not only because it shows a slide of the computational universe but also because it is doing so in a clever way. Each dot is arranged according to a space-filling curve called a Peano curve that has the advantage to preserve as much as possible in 2 dimensions the linear distance between Turing machines that are close to each other in an enumeration. Another question is how one can find or construct universal Turing machines in general. Given a Turing machine how one proves universality or non-universality? Well, if one can decide whether a machine will always halt or not, then that machine is said to be decidable. In some cases this is very easy to do. Here the rule delta sends any input to the halting state 0 so we know that the machine halts for any input and therefore is decidable. If a machine is decidable then it cannot be universal. However, proofs of universality are much more difficult and a common way to prove that a model is universal is by showing that one can construct a universal machine in that model the emulates a universal Turing machine. So by chaining to universal models, one proves universality. So if not all Turing machines are universal, which one are and which are not? This plot with number of states on the X axis and number of symbols or colours on the Y axis, it turns out that with extremely few elements of both, one can build a universal Turing machine. Turing’s original universal machine used at least 18 states but we know today that universal Turing machines can be as small as having only 5 states and only 2 symbols. And under special even with only 3 symbols or colours and 2 states one can build a universal machine. The precise boundary is yet not completely known but known results are on this plot with every dot showing a machine that is universal and the coloured ones are universal in a slightly different way. We know for example that no universal Turing machine exists with only 2 states and 2 symbols and that Claude Shannon himself proved that one can always exchange symbols for states so there is some sort of nonlinear symmetry among the machines on one side and the other of these axes.