Что такое применение автоматов? - PullRequest
2 голосов
/ 28 октября 2011

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

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

Ответы [ 4 ]

4 голосов
/ 28 октября 2011

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

3 голосов
/ 28 октября 2011

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

3 голосов
/ 28 октября 2011

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

  • парсеры
  • моделирование систем с состоянием
  • управляемая событиямипроблемы

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

0 голосов
/ 25 января 2015

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

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

...