Анализ строки

Дана последовательность операций:

a * b * a * b * a * a * b * a * b

есть ли способ получить оптимальное подразделение, позволяющее повторно использовать подстроку.

создание

a * b * a * b * a * a * b * a * b => c * a * c, где c = a * b * a * b

, а затем, увидев, что

a * b * a * b => d * d, где d = a * b

в целом сокращая 8 начальных операций до 4, описанных здесь?

(c = (d = a * b) * d) * a * c

Конечно же, цель состоит в том, чтобы минимизировать количество операций

Я рассматриваю своего рода суффиксное дерево.

Меня особенно интересуют эвристики или решения с линейным временем. где c = a * b * a * b, а затем ...

Дана последовательность операций:

a * b * a * b * a * a * b * a * b

есть ли способ получить оптимальное подразделение для повторного использования подстроки.

делая

a * b * a * b * a * a * b * a * b => c * a * c, где c = a * b * a * b

, а затем, увидев, что

a * b * a * b => d * d, где d = a * b

в целом сокращает 8 начальных операций до 4, описанных здесь?

(c = (d = a * b) * d) * a * c

Целью, конечно же, является минимизация количества операций

Я рассматриваю своего рода суффиксное дерево.

Меня особенно интересуют эвристики или решения с линейным временем. где c = a * b * a * b, а затем ...

Дана последовательность операций:

a * b * a * b * a * a * b * a * b

есть ли способ получить оптимальное подразделение для повторного использования подстроки.

делая

a * b * a * b * a * a * b * a * b => c * a * c, где c = a * b * a * b

, а затем, увидев, что

a * b * a * b => d * d, где d = a * b

в целом сокращает 8 начальных операций до 4, описанных здесь?

(c = (d = a * b) * d) * a * c

Конечно же, цель состоит в том, чтобы минимизировать количество операций

Я рассматриваю своего рода суффиксное дерево.

Меня особенно интересуют эвристики или решения с линейным временем. где c = a * b * a * b

, а затем, учитывая, что

a * b * a * b => d * d, где d = a * b

, в целом сокращая 8 начальных операций в 4 описанные здесь?

(c = (d = a * b) * d) * a * c

Конечно же, цель состоит в том, чтобы минимизировать количество операций

Я рассматриваю своего рода суффиксное дерево.

Меня особенно интересуют эвристики или решения с линейным временем. где c = a * b * a * b

, а затем, учитывая, что

a * b * a * b => d * d, где d = a * b

, в целом сокращая 8 начальных операций в 4 описанные здесь?

(c = (d = a * b) * d) * a * c

Целью, конечно же, является минимизация количества операций

Я рассматриваю своего рода суффиксное дерево.

Меня особенно интересуют эвристики или решения с линейным временем. Операции "*" на самом деле являются матричным умножением.

33
задан Martin Kristiansen 8 June 2011 в 09:53
поделиться