В чем заключается применение автоматов?

#finite-automata

#конечные автоматы

Вопрос:

Другими словами, почему я должен узнавать об этом? Когда я собираюсь сказать … о, для этого мне нужно знать о нажимных автоматах или машинах Тьюринга.

Я не могу видеть приложения материала. Спасибо

Ответ №1:

Вы должны изучить теорию автоматов, потому что это поможет вам понять, что вычислительно возможно в данной системе. Люди, которые понимают разницу между автоматами с принудительным запуском и универсальной машиной Тьюринга, понимают, почему пытаться анализировать HTML с помощью регулярных выражений — плохая идея. Люди, которые не думают, что просто нормально пытаться анализировать HTML с помощью REs.

Ответ №2:

Существуют проблемы, которые хорошо подходят для такого рода решений, некоторые из которых:

  • синтаксические анализаторы
  • моделирование систем с отслеживанием состояния
  • проблемы, управляемые событиями

Вероятно, есть много других. Если вы начнете писать код, в котором есть какая-то специальная state переменная, в зависимости от которой некоторые функции могут делать то или иное, вы, вероятно, сможете извлечь выгоду из правильного FSA.

Ответ №3:

Прежде всего, я считаю, что есть вещи, которые стоит изучать не потому, что они сразу полезны, а потому, что они по своей сути ценны. Большой недостаток современного образования в том, что оно не делает ничего, чтобы убедить в этом студентов, когда они все еще впечатлительны.

При этом теория автоматов по своей сути ценна и невероятно полезна. Разбор текста, компиляция программ и возможности вычислительных устройств могут быть действительно поняты только с использованием того, что дает нам теория автоматов… и получение максимальной отдачи от вычислительных систем требует глубокого понимания. Теория автоматов позволяет нам ответить на некоторые из самых фундаментальных вопросов, которые мы можем задать о вычислениях: какие ресурсы нам нужны для выполнения вычислений? что мы можем решить с учетом имеющихся ресурсов? есть ли проблемы, которые не могут быть решены независимо от того, сколько ресурсов у нас есть? Не говоря уже о том, что теория сложности, которая касается эффективности вычислений, требует, чтобы теория автоматов была осмысленно определена.

Ответ №4:

Изучение автоматов (которые являются ничем иным, как машинами) дает представление о пределах вычислений. Когда автоматы не принимают строку, это означает, что машина не может принять эту строку в качестве входных данных. Диаграммы состояний обычно дают возможные результаты для ввода, которые заставляют нас создавать анализаторы / машины.

Хорошим примером может быть проверка формата email-id. Программное обеспечение не принимает идентификаторы электронной почты при заполнении формы, если формат электронной почты не подходит. Здесь программное обеспечение принимает идентификаторы электронной почты только в определенном формате. Мы смогли создать такое программное обеспечение, в основном рассортировав это теоретически, используя автоматы и конечные автоматы.