Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2011, 16:01   #1
Tsunami
 
Регистрация: 04.04.2011
Сообщений: 3
Сообщение [Языки и регулярные выражения] Алгоритм Карпова на C++ Builder

Постановка задачи - необходимо преобразовать регулярное выражение вида (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/

Насчет решения: Насколько я понял, автомат и функцию переходов можно сделать при помощи работы со строками, а вот граф - не имею представления. И, может быть, уже есть реализации подобного алгоритма на других языках, буду признателен за ссылки.
Tsunami вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения 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