Les zapewnia zwięzłą i poprawną odpowiedź: definicje matematyczne są tak zwięzłe, jak to możliwe, a wyraźne włączenie nieskończonej taśmy do definicji maszyny Turinga uczyniłoby jej definicję znacznie mniej zwięzłą, więc nie robimy tego.
To nie odpowiada na pytanie: dlaczego ? Jak definicja może wykluczyć nieskończoną taśmę, kiedy jej potrzebujemy?
Odpowiedź: my nie. W pewnym sensie maszyny Turinga tak naprawdę nie wymagają nieskończonych taśm, a ich definicja to wyjaśnia.
Z definicji ruch maszyny Turinga przenosi maszynę z jednej konfiguracji do drugiej; konfiguracja zawiera skończony ciąg, który uważamy za skończony fragment zapisanej taśmy. Każdy ruch albo przesuwa głowicę taśmy o jedną pozycję, albo zastępuje symbol pod głowicą taśmy. Jednak - i jest to niezbędne do jego działania:
- b
- możemy to robić nieskończenie często .
nn
Jednym ze sposobów na sformułowanie tego jest powiedzenie: maszyna działa na nieskończonej taśmie, całkowicie wypełnionej pustkami, z wyjątkiem skończonego fragmentu, na którym znajduje się jej głowa. Tak mówi większość wyjaśnień.
Innym sposobem na sformułowanie tego jest powiedzenie: maszyna działa na skończonej taśmie, przedłużonej pustymi przestrzeniami, gdy głowa zsunie się z taśmy na obu końcach.
Są to oba ważne sposoby konceptualizacji sposobu działania maszyny: w obu przypadkach, jeśli faktycznie posiadasz taką maszynę, poprawnie implementuje maszynę Turinga.
Jeśli wszystko, co Cię interesuje, to uczenie uczniów, jak działają maszyny Turinga, prawdopodobnie nie ma znaczenia, którą koncepcję wybierzesz.
Myślę jednak, że pierwsza konceptualizacja jest błędem z dwóch powodów:
- To jest nierealne . Nie możemy zbudować maszyny z nieskończoną taśmą. My może zbudować maszynę o skończonej taśmy przedłużony na życzenie.
- Jest to sprzeczne z intuicją. Nie uważamy, aby maszyny wykonujące zadania arbitralnie często zawierały nieskończoną ilość zasobów. Na przykład nie uważamy, że kserokopiarka zawiera nieskończoną ilość papieru do kopiowania. Maszyny Turinga modelują działanie komputerów. Modelują, co by się stało, gdybyśmy zastąpili komputer (który w chwili jego wynalezienia była kobietą wykonującą obliczenia na papierze) maszyną zdolną do wykonywania dowolnych programowalnych obliczeń. Nie uważamy, że ta kobieta zawiera nieskończoną ilość papieru. Zakładamy raczej, że otrzyma tyle papieru, ile potrzebuje, i uważamy, że zaniechanie tego jest wadą środowiska, zamiast twierdzić, że taka kobieta nie może istnieć. Dlaczego nie zrobić tego samego dla maszyny?
- Zachęca do mylących wniosków. Dużo to widziałem. Na przykład:
- Ludzie mówią, że maszyny Turinga nie da się zbudować, podczas gdy maszyny stanów skończonych mogą. Cóż, nie możemy budować dowolnych dużych maszyn o skończonym stanie, tak jak nie możemy dostarczyć dowolnych ilości taśmy do maszyny Turinga.
- Ludzie mówią, że maszyny Turinga nie modelują poprawnie komputerów, podczas gdy maszyny stanów skończonych tak robią. Służy to do ważnego punktu: jeśli wszystko, co nas interesuje, to używanie maszyny do decydowania o językach wejściowych, to komputer działający tylko na (stałej) pamięci wewnętrznej może w pełni zaimplementować dowolną maszynę skończoną do pewnego rozmiaru, podczas gdy nie może w pełni wdrożyć większości maszyn Turinga, ponieważ zabraknie pamięci wewnętrznej dla wielu z nich. Jest to jednak często uogólnione, mówiąc: komputery są maszynami skończonymi, co wprowadza w błąd:
- Nie maluje realistycznego obrazu większości programów komputerowych. Rzeczywiście, programowanie przepływu danych faktycznie opiera się na maszynach skończonych, ale tradycyjne programowanie imperatywne nie jest; wykorzystuje programy, które są znacznie bliższe instancjom maszyny Turinga.
- W praktyce komputery współpracują również z zewnętrznymi źródłami danych wejściowych, wyjściowych i pamięci, które nie mają ustalonego rozmiaru.
- Maszyny Turinga nie powinny przede wszystkim modelować komputerów; modelują dowolne obliczenia.
Podsumowując: pomysł maszyn Turinga wykorzystujących lub posiadających nieskończoną taśmę służy podkreśleniu ważnego punktu technicznego, ale niekoniecznie jest to najbardziej intuicyjny sposób myślenia o maszynach Turinga i zachęca do pewnych niepoprawnych wniosków. Używaj ostrożnie.