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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2012, 11:29   #1
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
Восклицание Суффиксный автомат! пара нубо вопросов -_-

Итак, я снова здесь.
Как обычно - мне нужно не решение, мне нужен толчок(нецензурное направление не предлагать)).


Есть некоторое кол-во строк и среди них нужно найти длиннющую общую подстроку. =3 Мне нужно направление, в какую сторону копать, ибо сроки сжаты - суффиксальные деревья, суффиксальные массивы или ещё какие техники, позволяющие разработать оптимальный алгоритм? Всего перечисленного(и даже больше) - я не знаю, так что сижу грызу.
Буду рад ответу-наводке. Если кто случайно знает крутую ссылку, которая мне поможет - тоже буду рад.))

PS: кстати, админы, у моего второго аккаунта(долгая история) Karp_13 внезапно сократилась функциональность - ни данные о себе посмотреть, ни тему создать. = ( В чем может быть проблема?

А, да, и ещё нубо вопрос - суффиксный автомат и суффиксное дерево - одно и тоже?
*ну щас пока погрызу, разберусь... но если дадите ответ раньше, буду рад))

Последний раз редактировалось Ksardas13; 16.08.2012 в 13:14.
Ksardas13 вне форума Ответить с цитированием
Старый 16.08.2012, 14:19   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,368
По умолчанию

Хорошее начало:
http://en.wikipedia.org/wiki/Longest...string_problem
waleri вне форума Ответить с цитированием
Старый 16.08.2012, 15:26   #3
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
По умолчанию

Хех, а ведь я даж не догадался посмотреть на английскую часть викии.) Вроде выглядит привлекательно(русская статья меня там чёт загрузила, я убежал искать что по практичнее есть)).
Чтож, спс, почитаю. Но пока нашёл http://e-maxx.ru/algo/suffix_automata (вдруг кому поможет, кто столкнулся с той же проблемой))). Сижу грызу. Вроде там есть то, что мне надо.))
Ksardas13 вне форума Ответить с цитированием
Старый 16.08.2012, 22:16   #4
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
По умолчанию

Эм, народ, а нет ни у кого программки, которая бы строила суффиксный автомат из любой введённой строки и наглядно показывало как он выглядит?
*да я знаю что можно самому написать... но может у кого готовая есть в целях экономии времени... просто сижу с кашей в голове пока... помог бы такой инструментик сильно*
Ksardas13 вне форума Ответить с цитированием
Старый 21.08.2012, 20:11   #5
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
По умолчанию

ВСЕГО ОДИН ДОП ГЛУПЫЙ ВОПРОС:
Если после построения суффиксного дерева в его конструкции остались лишние явные вершины(т.е. явные вершины с одним потомком и одни родителем; вершины которые не стоит делать явными и можно удалить, но они остались) - это плохо? Или так и должно быть?
*пока грызу алгоритм дальше, ищу ответ на свой вопрос... но коль поможете - буду очень благодарен
хотя лан, не суть, щас сам разберусь где накосячил)) тему можно в принципе удалить

Последний раз редактировалось Ksardas13; 21.08.2012 в 20:18.
Ksardas13 вне форума Ответить с цитированием
Старый 23.10.2012, 23:38   #6
Darkwinged
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 17
По умолчанию

Тоже сейчас разбираюсь с алгоритмом http://e-maxx.ru/algo/suffix_automata#27
Пытаюсь вникнуть уже два дня, но никак не получается.
Если кто разбирается в этом, может набросать схему ссылок для строки вроде "so1go2"?
На сколько я понял, при каждом новом символе создаётся ответвление от начального состояния, но никак не могу понять по какому принципу объединяются состояния, и почему всегда есть ветка, которая не объединяется.
И также непонятно с терминальными состояниями. По определению это такие, проходя по любому пути к которым получается суффикс строки.
Но почему тогда в строке 'aba' первый переход по 'а' - является терминальным, а в строке 'аbb' - нет, ведь если перейти по 'а', то выписывается 'а' - и он является суффиксом?
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off". Bjarne Stroustrup
Darkwinged вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бла бла бла HTML5 Alar Свободное общение 23 08.02.2012 12:42
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Строки, подстроки Grom48 Помощь студентам 0 30.04.2010 01:19
строки и подстроки Work Group Помощь студентам 1 17.11.2009 15:02
Служба String бла-бла-бла Utkin Операционные системы общие вопросы 1 17.09.2009 10:24