Я делаю рукописный лексер. Мне нужно нарисовать один недетерминированный конечный автомат, который содержит три конечных автомата, которые были сделаны ранее. Я сделал их для таких ключевых слов, как самолет, облако, взлетно-посадочные полосы. Мне нужна помощь, как построить общие автоматы для этих трех автоматов. Мне нужен пример, как это сделать? Если вы знаете, пожалуйста, помогите мне ??построить недетерминированные конечные автоматы
ответ
Нарисуйте самолет, облако и автомагистрали ВПП, оставив некоторое пространство перед стартовыми состояниями. Теперь стереть их первое состояние. Нарисуйте новое, сингл перед ним. Подключите его к «ирландским» автоматам с «a» переходом/ребер, «r» к «unway» и к «c» к «громкому». Вот и все. Готово.
Для более общего случая это сложнее: Сначала нарисуйте каждый из ваших автоматов (например, самолет, облако и взлетно-посадочную полосу), оставив некоторое пустое пространство туда, где они начинаются. Затем нарисуйте состояние до того места, где они начинаются, и подключите его к началу старта стартового состояния самолета, облака и стартового пула с помощью свободных краев. (Свободные ребра также называются ε-ребрами, ребрами epsilon, λ-ребрами или лямбдами).
Далее вы выполняете на них алгоритм построения подмножества, на котором вы можете найти видеоуроки для youtube. Также есть online subset construction algorithm tool, который преобразует недетерминированные конечные автоматы в детерминированные конечные автоматы (DFA) для вас. Этот процесс называется детерминизацией.
Как только у вас есть DFA, вы используете его для построения таблиц состояния, действия и поиска, которые управляют сканером. Это его собственная банда червей. Обычно люди используют генератор сканера, такой как Lex или Flex, для автоматизации этого. Аналогичный, удобный инструмент, который вы можете использовать онлайн, - the Online Scanner Generator. Вы можете использовать его, чтобы сделать график, предоставляя следующий вход:
airplane:airplane
cloud:cloud
runway:runway
Это даст вам DFA для этого, например, так:
- 1. Визуализировать недетерминированные конечные автоматы в JAVA
- 2. Создайте недетерминированные конечные автоматы в C++ (неверный вывод)
- 3. Что такое конечные автоматы?
- 4. правили детерминированные конечные автоматы
- 5. Конечные автоматы и регулярное выражение
- 6. Конечные автоматы, автоматы выталкивания и примеры машины Тьюринга
- 7. Детерминированные конечные автоматы с 6 состояниями
- 8. Каковы конечные автоматы, реализованные в коде?
- 9. Конечные автоматы как языки программирования (программирование)
- 10. Как обрабатывать пробелы в лексере, реализованные как конечные автоматы?
- 11. Конечные автоматы для регулярного выражения путем удаления состояния
- 12. Включает ли C# конечные конечные машины?
- 13. Недетерминированные вычисления градиента
- 14. Как построить конечные точки с помощью t.c.telnet
- 15. Недетерминированные функции в обработке потоков
- 16. Цифровая логика - мучнистые автоматы?
- 17. Сотовые автоматы в java
- 18. Сотовые автоматы в Matlab
- 19. Как нарисовать автоматы?
- 20. Сотовые автоматы, проверяющие соседи
- 21. Автоматы Levenshten с весами
- 22. Сотовые автоматы Java (начинающий)
- 23. автоматы в .net
- 24. Автоматы Теория книг
- 25. Разделить строку, основанную на каждом случае, когда детерминированные конечные автоматы достигают конечного состояния?
- 26. Создания Исключающего Или из двух детерминированных конечных автоматов (Детерминированные конечные автоматы)
- 27. Как моделируются массивные клеточные автоматы?
- 28. Сотовые автоматы в Java 3D
- 29. Почему мои PR-автоматы закрыты?
- 30. Автоматы с правилами и инвариантами