Проблема викладання обчислюваності


22

Мені важко викладати поняття обчислювальних функцій. Я намагався розробити ідею, чому такі дослідники, як Гільберт / Акерман / Годель / Тьюрінг / Церква / ... винайшли поняття «обчислюваність». Студенти одразу запитали: "що означає обчислюваність?" і я не можу відповісти, якщо не навчу їх машинам Тьюрінга, а потім відповісти "функція обчислюється, якщо машина Тьюрінга обчислює її"

Так,

Чи є опис обчислюваності, який не вимагає вдаватися до машин Тьюрінга, λ-числення чи подібних моделей обчислень? Навіть інтуїтивного опису буде достатньо.


10
"Кожна функція, яку комп'ютер може обчислити"? Зазвичай я вдаюсь до мов програмування, оскільки студенти, ймовірно, знають його. Я також намагався "будь-який рецепт для обчислення функції" як інтуїтивне визначення алгоритму.
Michaël Cadilhac

5
Проблема обчислюється, якщо її можна вирішити за допомогою обмеженого набору правил, які керують еволюцією дискретної динамічної системи в кінцевій кількості кроків.
Мохаммед Аль-Туркистан

1
Крім того, ви можете використовувати десяту задачу Гільберта, щоб пояснити студентам, чому вона нерозв'язна і що доказ нерозв’язності вимагає, крім іншого, формалізації поняття обчислюваності з математики.
Мохаммед Аль-Туркстані

Інше питання: Теза Церкви Тьюрінга стверджує, що функція може бути обчислена деякою машиною Тьюрінга, якщо і лише тоді, коли вона може бути обчислена якоюсь машиною будь-якої іншої "розумної та загальної" моделі обчислення [Goldreich, 2008]. Отже, чи можливе незалежне від моделі поняття обчислюваності?
MS Dousti

Відповіді:


37

75 років тому навколо не було комп’ютерів. Тож треба було дуже ретельно пояснити математичну ідею комп’ютера.

Сьогодні всі знають, що таке комп’ютер, і, мабуть, його проводять більшу частину часу. Це можна дуже успішно використовувати в навчанні, оскільки ви можете пропустити досить застаріле уявлення про машину стрічкою. Я маю на увазі, хто використовує стрічку? (Я знаю, я знаю, ти відчуваєш себе ображеним, і Тьюрінг був чудовою людиною і все це, і я згоден з тобою).

Ви просто заходите в клас і запитуєте: так це там все, що не можуть обчислити ваші айфони? Це негайно втручає вас у питання про обмежені ресурси. Тоді ви кажете: ну, припустимо, ваша машина фактично мала необмежену пам’ять, чи є щось, що вона не могла обчислити? І ви ідеалізуєте трохи більше і обмежите увагу на теоретично-теоретичні функції (адже на даний момент вас Facebook не цікавить). Вам доведеться трохи пояснити, як працюють комп'ютери (як зазначено в коментарях, добре, якщо студенти знають мову програмування, оскільки ви можете використовувати її замість опису апаратних засобів), але після цього ви можете використовувати всі класичні аргументи обчислюваності теорія для отримання результатів. Не має значення, що розумова картина ваших учнів - це iPhone. Насправді це має значення:Для них важливіше знати, що iPhone не може робити певні речі.


2
Мені дуже подобається цей аргумент, тому що він йде від конкретного (iPhone) до абстрактного.
Суреш Венкат

2
Ось цікава загадка: які теореми smn та utm у Haskell?
Андрій Бауер

18
"75 років тому навколо не було комп'ютерів". Це просто помилково. 75 років тому навколо було багато комп’ютерів. Це були люди, переважно жінки; вони мали вдосконалені дипломи математики, кілька рудиментарних інструментів механічного обчислення (наприклад, додавання машин і правил слайдів) та багато паперу. Ці комп'ютери були основою як проекту Манхеттена, так і для парку Блетчлі під час Другої світової війни (незважаючи на Бомбу та Бомбу). Це обчислювальне середовище, яке моделював Тьюрінг: люди з олівцем і папером.
Jeffε

10
@Jeffe: Давай, ти знаєш, що я мав на увазі.
Андрій Бауер

8
@JeffE: ми можемо перевірити вашу гіпотезу. Підійдіть до своїх колег і попросіть їх намалювати «комп’ютер, який носить коротку спідницю». Скажіть, будь ласка, скільки намалювало людину.
Андрій Бауер

12

"Функція обчислюється, якщо існує" ефективна процедура "для переходу від введення до виводу." Впроваджуючи цю тему, я раніше зазначав, як вони (студенти) мають ефективну процедуру розв’язання квадратичних рівнянь, але не мають такої для розв’язування рівнянь 5 і більше ступеня. Це може перерости в дискусію про те, як можна формалізувати «ефективну процедуру», але це обговорення - це те, що ви хочете, щоб відбулося, тому я думаю, що це особливість, а не помилка.


3
Нітпікінг: теорема Абеля-Руффіні стверджує, що не існує загального алгебраїчного рішення, тобто розчину в радикалах, для поліноміальних рівнянь ступеня п'ять і вище. Однак існують методи, такі як радикал Принести , для одержання розв’язків квінтичних рівнянь закритої форми.
MS Dousti

Ваша нітрозування насправді правильна. Обговорюючи обчислюваність, ви хочете поговорити про такі речі, як "дозволені операції", а рішення поліномів - одна з тих речей, яка стає складнішою, чим уважніше ви дивитесь на неї. Але для вступу, я думаю, що слова "ефективна процедура" та згадка про квадратичну формулу є чудовим відправною точкою. Вони не зовсім правильні, але інтуїція досить правильна, IMO.
Пітер Бут

8

Можливо, справа в тому, що всі ці моделі мали на меті відобразити поняття обчислюваності. Той факт, що всі вони рівноцінні, означає, що поняття, яке вони намагаються захопити, є надійним. Отже, хоча це не уникає вашої дилеми, ця стійкість надає довіри думці, що "функція обчислюється, якщо є машина Тьюрінга, яка її обчислює".


6

Я починаю задавати питання: "Чи є якесь питання, на яке жоден комп'ютер ніколи не міг переконливо відповісти?" і ведіть дискусію до філософських питань, таких як "якщо дерево падає в ліс, це звучить?" або "чи є загробне життя?" Ми швидко отримуємо консенсус про те, що людська мова може висловлювати так / ні питання, пов'язані з парадоксами або поняттями, які неможливо виразити математично, і так, так, виникають питання, які не можна обчислити.

Тоді я риторично запитую, чи є не обчислювані питання щодо понять, які можна представити на комп'ютері, наприклад, цілі числа та графіки. Я кажу, що так, один із прикладів є відомою проблемою зупинки, яка полягає в тому, щоб вивчити опис програми і сказати, чи є в ній нескінченні петлі. Інтуїтивно виявляється, що нескінченні петлі схожі на чорні діри, і будь-яка програма, яка спостерігає за нескінченним циклом, може потрапити в пастку у самій нескінченній петлі. Отже, будь-яка процедура, яка відповідає на цю проблему, може працювати назавжди, тому за визначенням "алгоритму" жоден алгоритм не може відповісти на проблему зупинки.

Тоді я знову занурююся в докази на машинах Тьюрінга.


0

Ну а функція обчислюється, якщо вона приймає входи, сформовані або згенеровані за певною схемою. Конкретна схема означає, що всі входи повинні мати відношення, конкретний вхід може бути згенерований ним попереднім або наступним входом. Якщо входи не мають такого типу послідовності, то немає можливості розробити модель або функцію, яка може прийняти. Ще одне, що я хочу сказати, це те, що є основна різниця між машиною і людиною. Не може бути сформована машина для непослідовних входів, але люди є. Крім того, це велика перерва в тому, щоб зробити справжніми роботами люди, що поводяться.


Питання полягає у навчанні обчислюваності. Було б добре, якщо ви обмежите свою відповідь матеріалом, що відповідає на це запитання. Майте на увазі, що в ОП викладають магістранти, тому особисті думки (наприклад, ваші три останні твердження) можуть не стосуватися.
Vijay D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.