Может ли DFA быть рассчитан на любой язык?

Я думаю, проблема здесь не в латинских символах. Поэтому проблема заключается в том, что несовпадение сериализатора и десериализатора используется.

Данные, которые нажимаются на тему, сериализуются с использованием строковой сериализации, и это десериализован с использованием ByeArrayDeserializer. Это несоответствие вызывает проблему.

0
задан Antithesis 19 January 2019 в 03:23
поделиться

2 ответа

Σ * не набор всех языков. Это один язык, который включает в себя все строки.

DFA не могут распознавать любой язык, который требует бесконечного количества состояний. Например, a ^ nb ^ n (язык, содержащий равное количество a и b). Для каждого i набор действительных суффиксов после a ^ i различен, поэтому каждый a ^ i должен приводить к другому состоянию, а число i не ограничено.

См .: https://en.wikipedia.org/wiki/Myhill%E2%80%93Nerode_theorem

.
0
ответ дан Matt Timmermans 19 January 2019 в 03:23
поделиться

Распознавание языка подразумевает отклонение строк, которые не принадлежат этому языку, а не только принятие строк, которые действительно принадлежат. Тот факт, что вы можете создать автомат, который принимает каждую строку, не означает, что вы можете построить автомат, который принимает специфические строки , которые вам нужно принять, и отклоняет все остальное.

Это остается верным с вашей правкой; язык, принимаемый автоматом, - это совокупность всех слов, принимаемых автоматом. Произвольные подмножества этого набора не считаются языками, принятыми этим автоматом. («Язык, принимаемый автоматом» и «язык, распознаваемый автоматом», являются синонимами.)

0
ответ дан user2357112 19 January 2019 в 03:23
поделиться