Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм перевода недетерминированного автомата в, детерминированный 
:(
    Опции темы
neutrino
Дата 9.8.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Приветствую!

Ищу САБЖ. Проект встал из-за того, что парсер, который я пишу использует недетерминированный автомат. Поскольку мне надо парсить текстовые файлы > 1 гига, необходимо перевести автомат в детерминированный (очень важна скорость).



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 9.8.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Однако: http://is.ifmo.ru/download/determ.pdf

Хорошо, когда знаешь несколько языков. Поиск по английскому гуглу не дал результатов. smile 


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
skyboy
Дата 9.8.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



можно тезисно: хотя бы название у этого алгоритма есть?

PM MAIL   Вверх
neutrino
Дата 10.8.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Я понятия не имею. Сам ищу что-нибудь съедобное...


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
GoldFinch
Дата 10.8.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



Брауэр В. Введение в теорию конечных автоматов. - М.: Радио и связь, 1987

вот в этой книжке есть глава "перевод НРС автоматов в РС" 
(НРС - недетерминированые РС)

(сам эту главу не читал)
PM MAIL ICQ   Вверх
Dims
Дата 10.8.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Что-то я не понял задачу. 

Недетерминированный автомат, насколько я понимаю, это просто-напросто параллельный компьютер, то есть, автомат, который движется сразу несколькими путями. Поскольку все современные компьютеры последовательны, то недетерминированный автомат и невозможно исполнить без преобразования в детерминированный.

При "детерминизации" быстродействие не увеличивается, а уменьшается, так как переходы, которые недетерминированный автомат способен выполнить параллельно, детерминированный автомат будет выполнять последовательно. При этом может даже возникнуть "комбинаторный взрыв", то есть, может оказаться практически невозможно выполнить программу автомата на последовательном компьютере.
PM MAIL   Вверх
neutrino
Дата 11.8.2009, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Мдя...

Недетерминированный автомат - это автомат с лямбда (епсилон) переходами и возможностью перехода из одного состояния в два разных по тем же самым терминальным символам. Вот и все. Да, по такому автомату надо идти паралельно. И да, по детерминированному автомату обход получается быстрее. Почему? Да потому что не надо идти по нескольким направлениям параллельно. Думаю так понятно.

В теории может случиться так, что при детерминировании автомата получиться 2^н состояний. Но это теория. У меня автомат не такой страшный.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
skyboy
Дата 11.8.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(neutrino @  11.8.2009,  11:18 Найти цитируемый пост)
Да потому что не надо идти по нескольким направлениям параллельно. Думаю так понятно.

мне кажется, что образно говоря, "детерминированный" - это "поиск в глубину", а "недетерминированный" - это "поиск в ширину". и в общем случае, мне кажется, "поиск в ширину" быстрее даст результат, чем N поисков в глубину. я не прав?
а недостаток недетерминированного аппарата - не в скорости, как таковой, а в необходимости сохранять промежуточные состояния, где происходит выбор одного из нескольких вариантов обработки. или я что-то путаю?
PM MAIL   Вверх
gcc
Дата 11.8.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



системная функция seek? 

а что нужно сделать поиск? или сам файл откоректировать?

во многих языках программирование применяется детерминированный поиск, даже в awk (foo|foobar)

Это сообщение отредактировал(а) gcc - 11.8.2009, 16:46
PM WWW ICQ Skype GTalk Jabber   Вверх
skyboy
Дата 13.8.2009, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



gcc, эй-эй, ты чего? smile про поиск это я спросил для внесения ясности в понимание предмета. у neutrino там парсер упоминается.
PM MAIL   Вверх
Franka
Дата 18.9.2009, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.9.2009

Репутация: нет
Всего: нет



Цитата(skyboy @  11.8.2009,  15:04 Найти цитируемый пост)
а недостаток недетерминированного аппарата - не в скорости, как таковой, а в необходимости сохранять промежуточные состояния, где происходит выбор одного из нескольких вариантов обработки. или я что-то путаю? 

Вы, по сути, ничего не путаете, но проблема в следующем: недетеринированный автомат может содержать очень большое количество переходов типа <q, aw_1, q_1>, <q,aw_2, q_2>. В итоге с момента каждого такого перехода прохождение автомата "расслаивается" на несколько вариантов. Вот тут память и полетит, потому что необходима уже действительно параллельная обработка.
Объективно получается, что детерменированный автомат в худшем случае будет содержать действительно 2^n - 1 состояние. Базовый алгоритм жутко тормозной по этой причине. Просто в тот момент, когда выбираем подмножества, нужны определенные правила того, как их отсеивать.
Я сейчас говорю скорее как математик. Более программистский подход представлю завтра, если это интересно и актуально. Только тогда хотелось бы знать, в какой степени алгоритм расписывать.
PM MAIL   Вверх
neutrino
Дата 28.9.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Franka, 
Цитата(Franka @  18.9.2009,  20:59 Найти цитируемый пост)
Только тогда хотелось бы знать, в какой степени алгоритм расписывать. 

В понятной smile
 А лучше сразу на каком-нибудь языке программирования.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
AndryG
Дата 30.9.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 10.9.2009

Репутация: нет
Всего: нет



А можно поинтересоваться, с чем вообще автомат работает? 
И насколько он у Вас недетерминированный?

Может просто его тут переведут в КА да и алгоритм не понадобится

А алгоритм приведения НКА в КА хорошо описан в "красном драконе". Не помню алгоритма, но помню что там описан хорошо smile
PM MAIL   Вверх
neutrino
Дата 1.10.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



автомат - несколько сот состояний.


Цитата(AndryG @  30.9.2009,  19:33 Найти цитируемый пост)
А алгоритм приведения НКА в КА хорошо описан в "красном драконе".

Не пошлете?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
AndryG
Дата 1.10.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 10.9.2009

Репутация: нет
Всего: нет



http://www.infanata.org/computers/prog/114...ekhnologii.html
user posted image

Добавлено через 1 минуту и 21 секунду
Что же Вы такое разбираете ?! Может стоит разбить на несколько более простых автоматов? Задача проще смотрится по частям.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.