По-моему NuShaman где-то говорил, что он не понимает, как работают ДКА, или как их сделать.
Не могу найти то место на форуме...
[html]<a href="https://ru.wikipedia.org/wiki/Детерминированный_конечный_автомат">https://ru.wikipedia.org/wiki/Детерминированный_конечный_автомат</a>[/html]
Представляет интерес математическое определение ДКА русскими буквами (в википедии оно не такое).
---
ДКА это упорядоченная пятёрка <С, сн, СК, А, ФП>, где
C это множество возможных состояний автомата (вообще, и в различные моменты времени)
си - отдельное состояние, идентифицируемое индексом "и".
си ∈ С, C = { си }, где "и" - различные индексы
если нужно просто упомянуть, что с это одно из состояний,
то есть, не нужно идентифицировать одно из нескольких состояний,
то индекс можно не добавлять.
с ∈ С
С = СИ - множество состояний, это то же самое, что множество идентифицируемых состояний автомата (то есть всех).
СИ не используется в определении ДКА, потому что в этом нет необходимости.
Хотя повод для использования есть: нужно различать СИ и СК (см. ниже).
сн - единственное начальное состояние, н - индекс начального состояния, н ∈ И.
сн ∈ C
CК - множество конечных состояний
CК = { ск }, где K - множество индексов конечных состояний, к ∈ К, К ⊆ И.
CК ⊆ C, множество конечных состояний является подмножеством всех состояний.
Буквы относятся к некоторому алфавиту:
а ∈ А, А = { а }
Когда нужно показать, что буквы разные, можно приписать индексы, например:
А = { аи }, А = { а1, а2, а3, ... , ая}
где "я" - индекс последнего символа алфавита
Для кириллического алфавита
а1 = "А", а2 = "Б", а3 = "В", ... , а33 = "Я".
ФП это функция переходов, записываемая как
см+1 = ФП(см, а)
см+1 - состояние в следующий момент ("м+1") времени
см - состояние в текущий момент ("м") времени
а - входная буква (на момент времени "м"), а = ам (но записывать это явно нет необходимости, так как мы стараемся везде сократить запись)
буква П своей формой (внешним видом) удачно символизирует переход - подъем, перемещение и приземление.
---
см. также
Теория автоматов.
Преобразование НКА в ДКА, Алгоритм Томпсона
Преобразование ДКА в ассемблерный код
Отредактировано Лис (2024-10-03 03:11:39)