Я переглядаю Теорію обчислень для розваги, і це питання мене натякало на деякий час (смішно ніколи про це не замислювався, коли я вивчив Теорію автоматів у своєму недограді). Тож "чому" ми саме вивчаємо детерміновані та недетерміновані кінцеві автомати (DFA / NFA)? Ось ось кілька відповідей, які я придумав після розмови, але все ще не бачу їхнього загального внеску в момент "ага":
- Вивчити, що вони є, а що не здатні, тобто обмеження
- Чому?
- Оскільки вони є основними моделями теоретичного обчислення і могли б закласти основу інших більш спроможних моделей обчислень.
- Що робить їх «основними»? Це що вони мають лише один біт зберігання та переходи стану?
- Гаразд, і що? Як все це сприяє відповіді на питання про обчислюваність? Мабуть, машини Тьюрінга допомагають зрозуміти це дуже добре, і є "менші" моделі обчислень, такі як КПК, DFA / NFA / Regexes і т. Д. Але якщо хтось не знав ФА, то що їм не вистачає?
Тож хоч я певною мірою я це розумію, я не в змозі відповісти на це питання сам? Як краще пояснити "чому вивчати Д / Н-ФА"? На яке питання вони прагнуть відповісти? Як це допомагає і чому це перше, що викладається в теорії автоматів?
PS: Мені відомі різні лексикографічні програми та відповідники зразків, які можна реалізувати як такі. Однак я не хочу знати, для чого це можна практично використовувати, але в чому полягала їхня причина / винахід / дизайн під час кульмінації вивчення теорії обчислень. Історично кажучи, що спонукало почати з цього і до чого це повинно призвести розуміння "ага"? Якщо ви пояснювали їхню важливість студентам CS, які тільки починають вивчати теорію автоматів, як би ви це зробили?