![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.04.2011
Сообщений: 3
|
![]()
Постановка задачи - необходимо преобразовать регулярное выражение вида (a|b)*a(a|b)(a|b) в конечный автомат вида
1) M = {{1, 2, 3, 4}, {a, b}, D, 1, {4}}, где функция переходов D определяется так: D(1, a) = {1, 2}, D(3, a) = {4}, D(2, a) = {3}, D(3, b) = {4}, D(2, b) = {3}. 2) и представить его в виде графа. ![]() Вот ссылка с примером (см. пункт 3.3): http://citforum.ru/programming/theor...ryakov/3.shtml Подробнее насчет алгоритма Карпова можно посмотреть в книге "Карпов Ю. Г. Теория автоматов". Ссылка прилагается - http://www.twirpx.com/file/7268/ Насчет решения: Насколько я понял, автомат и функцию переходов можно сделать при помощи работы со строками, а вот граф - не имею представления. И, может быть, уже есть реализации подобного алгоритма на других языках, буду признателен за ссылки. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регулярные выражения | NewMan123 | Помощь студентам | 8 | 04.11.2020 20:23 |
Регулярные выражения | adwaer | Общие вопросы .NET | 4 | 24.02.2010 17:38 |
регулярные выражения | wyvern | PHP | 3 | 09.04.2009 22:15 |
Регулярные выражения | Adamant | Общие вопросы C/C++ | 1 | 26.11.2007 19:44 |