Задача о наибольшей общей палиндромной подпоследовательности

Материал из Викиконспекты
Версия от 23:48, 11 декабря 2014; Oxygen3 (обсуждение | вклад) (Новая страница: «'''Задача о наибольшей общей подпоследовательности''' (англ. ''longest common subsequence (LCS)'') - класс...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Задача о наибольшей общей подпоследовательности (англ. longest common subsequence (LCS)) - классическая и хорошо изученная проблема. В данной статье мы рассмотрим её модификацию, где эта последовательность также должна быть палиндромом.

Определение:
Палиндромом (англ. palindrom) называется последовательность, которая одинаково читается как слева направо, так и справа налево.

Наибольшая общая подпалиндромная подпоследовательность (англ. The longest common palindromic sub-sequence (LCPS)) - задача, являющаяся интересным вариантом классической задачи о поиске наибольшей общей подпоследовательности, которая находит наибольшую общую подпоследовательность среди двух последовательностей так, что она также является палиндромом.

Постановка задачи

Мы предполагаем конечный алфавит [math]\sum[/math]. Для последовательности [math]X[/math], мы обознамич его подпоследовательность [math]x_{i}...x_{j} (1 \leqslant i \leqslant j \leqslant n)[/math] как [math]X_{i,j}[/math]. Для двух последовательностей [math]X[/math] и [math]Y[/math], если общая подпоследовательность [math]Z[/math] последовательносей [math]X[/math] и [math]Y[/math] является палиндромом, то [math]Z[/math] называется общей подпалиндромной подпоследовательностью (англ. common palindromicsubsequence). Общая подпалиндромная последовательность, имеющая максимальную длину, называется наибольшей общей подпалиндромной подпоследовательностью (англ. The longest common palindromic sub-sequence (LCPS)) и мы обозначим её как [math]LCPS(X,Y)[/math].

Динамическое программирование

Заметим, что естественные классы подзадач для [math]LCPS[/math] соответствуют парам подпоследовательностей из двух входных последовательностей. Основываясь на этом наблюдении мы сформулируем следующую теорему, которая доказывает оптимальную подструктуру свойств задачи [math]LCPS[/math].

Теорема 1

Пусть [math]X[/math] и [math]Y[/math] - две последовательности длины [math]n[/math], а [math]X_{i,j}[/math] и [math]Y_{i,j}[/math] - две подпоследовательности последовательностей [math]X[/math] и [math]Y[/math] соответственно. Пусть [math]Z = z_{1}z_{2}...z_{u}[/math] - наибольшая общая подпалиндромная последовательность двух подпоследовательностей [math]X_{i,j}[/math] и [math]Y_{k,l}[/math]. Тогда выполняются следующие утверждения,