Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1....

14
Часть 1. Комбинаторика символьных последовательностей ( с/к Дискретный анализ и комбинаторика для студентов ММФ НГУ) 1. Введение. В последние годы в дискретной математике идет интенсивный процесс формирования раздела комбинаторики, который принято называть «Комбинаторика слов и символьных последовательностей». Символьные последовательности - это слова бесконечной длины, составленные из символов или букв некоторого алфавита, как правило, конечного. Слова в алфавите, или цепочки символов (strings of symbols) - основной объект исследования в различных разделах дискретной математики: теории программирования, формальных языках, теории кодирования, математических основаниях криптографии. Большое число задач из других областей, в том числе и классической непрерывной математики, формулируются, или могут быть переформулированы, как комбинаторные задачи существования, распознавания свойств, порождения или перечисления слов или последовательностей символов. Из нематематических областей, в которых исследуются символьные последовательности, и все шире применяются различные математические методы, выделяются задачи анализа генетических текстов, их хранения, обработки, распознавания свойств и т.п. Одна из основных целей этих исследований состоит во вскрытии взаимосвязей между «линейной» организацией «первичных» генетических текстов и функционированием последующих более «сложно» организованных белковых структур. Одним из подходов к изучению этих трудных «загадок природы» может явиться исследование различного типа «естественных» математических структур, определяемых на множествах фрагментов (подслов) «первичных» структур ДНК. Мы начинаем с некоторых известных (а может быть и не очень) конструкций слов и символьных последовательностей, которые определяются рекурсивными схемами их порождения или задаются с помощью некоторого словесного описания их построения. Но эти алгоритмические описания таковы, что позволяют выписывать буквы слова или последовательности одну за другой, удлиняя получаемые слова или символьные последовательности до любой длины. Мы дадим примеры последовательностей очень простого алгоритмического порождения, проблемы распознавания свойств которых, несмотря на кажущуюся простоту постановки вопроса, представляют нерешенные математические задачи. Одним из вопросов о свойствах слов и последовательностей из определенного класса обычно являются постановки задач, касающихся взаимосвязи локальных свойств, которые мы можем наблюдать, просматривая символьную последовательность так или иначе определяемым «окном» наблюдения, в котором мы видим подслова слова или последовательности, и ее свойств, «в целом» определяемых процедурой ее порождения. В более утилитарные задачи анализа обычно включают поиск вхождения определенных подслов или установление их отсутствия, нахождение участков повторяющихся подслов, вычисление частот вхождения букв или блоков и информация о их местоположении и т.п. 2. Основные определения Пусть дан алфавит . Элементы алфавита будем называть буквами или символами. Слово (последовательность) - это конечная (или бесконечная) цепочка, состоящая из букв алфавита . Множество всех слов над алфавитом обозначается через * . Длина слова X есть число букв в X. Длину слова будем обозначать через X.

Transcript of Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1....

Page 1: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Часть 1. Комбинаторика символьных последовательностей

( с/к Дискретный анализ и комбинаторика для студентов ММФ НГУ)

1. Введение.

В последние годы в дискретной математике идет интенсивный процесс формирования

раздела комбинаторики, который принято называть «Комбинаторика слов и символьных

последовательностей». Символьные последовательности - это слова бесконечной длины,

составленные из символов или букв некоторого алфавита, как правило, конечного. Слова

в алфавите, или цепочки символов (strings of symbols) - основной объект исследования в

различных разделах дискретной математики: теории программирования, формальных

языках, теории кодирования, математических основаниях криптографии.

Большое число задач из других областей, в том числе и классической непрерывной

математики, формулируются, или могут быть переформулированы, как комбинаторные

задачи существования, распознавания свойств, порождения или перечисления слов или

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

символьные последовательности, и все шире применяются различные математические

методы, выделяются задачи анализа генетических текстов, их хранения, обработки,

распознавания свойств и т.п. Одна из основных целей этих исследований состоит во

вскрытии взаимосвязей между «линейной» организацией «первичных» генетических

текстов и функционированием последующих более «сложно» организованных белковых

структур. Одним из подходов к изучению этих трудных «загадок природы» может явиться

исследование различного типа «естественных» математических структур, определяемых

на множествах фрагментов (подслов) «первичных» структур ДНК.

Мы начинаем с некоторых известных (а может быть и не очень) конструкций слов

и символьных последовательностей, которые определяются рекурсивными схемами их

порождения или задаются с помощью некоторого словесного описания их построения. Но

эти алгоритмические описания таковы, что позволяют выписывать буквы слова или

последовательности одну за другой, удлиняя получаемые слова или символьные

последовательности до любой длины. Мы дадим примеры последовательностей очень

простого алгоритмического порождения, проблемы распознавания свойств которых,

несмотря на кажущуюся простоту постановки вопроса, представляют нерешенные

математические задачи.

Одним из вопросов о свойствах слов и последовательностей из определенного

класса обычно являются постановки задач, касающихся взаимосвязи локальных свойств,

которые мы можем наблюдать, просматривая символьную последовательность так или

иначе определяемым «окном» наблюдения, в котором мы видим подслова слова или

последовательности, и ее свойств, «в целом» определяемых процедурой ее порождения. В

более утилитарные задачи анализа обычно включают поиск вхождения определенных

подслов или установление их отсутствия, нахождение участков повторяющихся подслов,

вычисление частот вхождения букв или блоков и информация о их местоположении и т.п.

2. Основные определения

Пусть дан алфавит . Элементы алфавита будем называть буквами или символами.

Слово (последовательность) - это конечная (или бесконечная) цепочка, состоящая из букв

алфавита . Множество всех слов над алфавитом обозначается через *. Длина слова X

есть число букв в X. Длину слова будем обозначать через X.

Page 2: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Если X и Y -слова над алфавитом , то их конкатенация XY- есть результат

приписывания слова Y к слову X. Слово X называется подсловом слова Y, если

существуют такие слова X1 и X2, что Y=X1XX2. Слово X -пустое, если оно не содержит ни

одной буквы. Если X1 - пустое слово, а X2 - не является пустым словом, то X называется

префиксом, если X2 - пустое слово, а X1 - непустое слово то X называется суффиксом.

Пусть даны последовательности = {ai} и = {bi} и s > 0. Если bi=ai+s для

i=0,1,2,... , то называется сдвигом на s. Последовательность = {ai} называется

периодической, если существует r > 0: a1=ar+1, a2=ar+2, ... , где r-длина периода

последовательности . Последовательность называется периодической с некоторого

места, если существуют число k и r такие, что ak=ar+k, ak+1=ar+k+1,....

Будем говорить, что слова = (a1,,an) и = (b1,,bn) находятся в отношении

следования, если a2 = b1, a3 = b2, , an = bn1.

Пусть = {0, 1, , m1}. Граф де Брёйна размерности n - это ориентированный

граф n

mB =(V,E) (V-множество вершин, E-множество дуг), в котором V={0,1,,m1}n-все

слова из алфавита длины n, а E={(,)|, находятся в отношении следования }. Число

вершин в таком графе равно mn.

Определим граф подслов размерности n как подграф графа де Брейна, вершинами

которого являются все подслова длины n символьной последовательности и дугами графа

являются дуги (,) такие, что и - вершины графа подслов, находящиеся в отношении

следования, и последовательность содержит подслово = (a1, a2, , an, bn)=(a1, b1, bn).

H есть рёберный граф для графа G, если вершинами в H являются дуги графа G и

пара вершин в H соединена дугой, если соответствующие дуги были инцидентны в G

(конец одной являлся началом для второй дуги).

Определение. Функция комбинаторной сложности f(n)-это функция, равная числу

различных подслов длины n в последовательности.

3. DOL-последовательности

Пусть = {a1,aq} Отображение :*

* называется морфизмом, если

(XY)=(X)(Y) для всех слов X и Y. Очевидно, произвольный морфизм полностью

определяется образами символов, которые мы назовем блоками.

Пусть для некоторой буквы a слово (a) начинается с буквы a. В этом случае

говорят, что допускает неподвижную точку = (,a), т.е. бесконечное слово,

начинающееся с буквы a и удовлетворяющее равенству = (). Тогда пишем, что

=limkk() . Другим термином для обозначения неподвижной точки морфизма

является термин DOL-последовательность (или DOL-слово).

Приведём пример построения последовательности итерацией морфизма для

последовательности Морса-Хедлунда:

Начальное слово последовательности «0» и морфизм следующий:

= 0 01, 1 10

тогда 0 = 0,

1 = 01,

2 = 0110,

3 = 01101001 и т.д.

Page 3: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Морфизм называется равноблочным, если все его блоки имеют равную длину:

(ai)=m, i {1,, q}. Неподвижная точка равноблочного морфизма называется

равноблочным DOL-словом. Морфизм называется маркированным, если все его блоки

начинаются с разных символов и кончаются разными символами: (ai)=a(i)sia(i) для

каждого i{1,,q}, здесь , -перестановки над q элементами, а si -произвольные слова

над . Неподвижная точка маркированного морфизма называется маркированным DOL-

словом.

Рассмотрим допустимое слово un. Пара (u1,u2) называется точкой синхронизации

слова u над , если u=u1u2 и между u1 и u2 в любом вхождении слова u в проходит

граница между блоками. Слово из n называется циркулярным, если оно имеет по крайней

мере одну точку синхронизации. Заметим, что если морфизм равноблочен или

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

границы между блоками.

Говорят, что DOL-последовательность циркулярна с длиной синхронизации L,

если любое допустимое в слово длины не меньше L циркулярно.

4. Последовательность Морса-Хедлунда

Известно много эквивалентных способов задания последовательности Морса-

Хедлунда, например следующие:

1. i-ый член последовательности есть 0, если число единиц в двоичной записи числа i

чётно, и равен 1 в противном случае.

2. Итеративный способ: x0 = 0, x2i = xi , x2i+1 = xi+1(mod 2), i = 0,1,...

3. Индуктивной схемой : X0 = 0, Xn = Xn1

где -отрицание слова Xn1, которое получается из Xn1 путем замены в нём всех

нулей на единицы, а всех единиц на нули.

4. Морфизмом: = 0 01, 1 10

Пример: X2=0.1, X3=01.10, X4=0110.1001.

Cвойства последовательности Морса-Хедлунда исследовались рядом авторов. Известны,

например, следующие свойства:

1. В последовательности не встречаются расположенные подряд три одинаковых

подслова([10]).

2. n n-1 n-1 n-2 n-2 n-2 n-2 n-2 n-2 n-2 n-2X =X X (X X ) (X X ) X X X X Т.е. на каждом чётном шаге мы

получаем слово, которое одинаково читается слева направо и справа налево (такие

слова называются палиндромами).

3. Для последовательности Морса-Хедлунда подсчитана функция комбинаторной

сложности ([1]):

R(n+1) = 3n+(n); (n) = min{nC(n),2C(n)n}, C(n) = 2k, n/2 < 2

k n.

Полное описание графов подслов произвольной размерности содержится в [7] и

определяется структурой графов размерности 3, 4, 5, 7.

Page 4: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

5. Последовательность Фибоначчи

Последовательность Фибоначчи 1 порождается морфизмом:

1 = { 0 01, 1 0 }.

Ее также можно задать индуктивной схемой: X0 = 0 , X1 = 01, Xn = Xn1Xn2

Пример: X2 = 01.0, X3 = 010.01, X4 = 01001.010.

Известно, что функция комбинаторной сложности последовательности Фибоначчи

равна f(n)=n+1.

6. Обобщенные последовательности типа Фибоначчи.

Естественным обобщением символьной последовательности Фибоначчи являются

последовательности, рекурсивные схемы порождения которых имеют больший, чем 2,

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

алфавите 0, 1, 2 получается конкатенацией трех слов, порожденных на предыдущих

шагах:

Xn + 3 = Xn + 2 Xn + 1 Xn; X0 = 0, X1 = 01, X2 = 0102

Как и в случае последовательности Фибоначчи, легко найти итеративную схему

порождения этой же последовательности, которая будет являться неподвижной точкой

следующего морфизма:

f = ( 0 01, 1 02, 2 0 ) .

Каждая из этих схем определяет одну и ту же бесконечную последовательность

X = X0, X1, X2, = lim k fk (0) = 01020100102010102….,

свойства которой несложно найти исходя из способов ее порождения. Распознаванию

различных свойств и их «угадыванию» значительно помогает визуализация

последовательности на графах де Брейна и наблюдение последовательности ее графов

подслов с ростом их размерности. Например, несложно находится комбинаторная

сложность последовательности X, которая равна 2n + 1

(число различных подслов длины n,

содержащихся в X).

7. Последовательность Евдокимова

E- последовательность или последовательность Евдокимова введена в работе [3] в

связи с решением одной комбинаторно-геометрической проблемы, известной как

проблема «змея в ящике». Эта последовательность определена в [3] следующим образом:

a0=0; b0=1; ak+1=ak0bk; bk+1=ak1bk;

Тогда E-последовательность есть : lim k an .

Пример: a1=0.0.1, b1=0.1.1,

a2=001.0.011, b2=001.1.011

a3=0010011.0.0011011, b3=0010011.1.0011011 .

Page 5: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Известно, что E-последовательность не порождается морфизмом, однако ее можно

породить двумя морфизмами:

1= 0 001 ,1 011, если 0,1 на нечётных местах и

Ф2 = 0 0 , 1 1 если 0,1 на чётных местах

8. Кривые дракона

Представим сначала геометрическое описание кривых дракона([2]), как ломаных на

плоскости, составленных из звеньев-отрезков единичной длины. Построение таких

кривых осуществляется следующим образом:

На первом шаге берём горизонтальный отрезок и достраиваем его другим отрезком,

получившимся из начального поворотом относительно его правого конца (точки O1 на

рисунке) на угол [()/2] по часовой стрелке.

На n-том шаге продолжаем кривую, построенную на n1-вом шаге (будем называть её

кривой ранга n1) с концом в точке On кривой, полученной из неё же поворотом

относительно точки On на угол [()/2] по часовой стрелке.

Пример построения кривой на третьем шаге:

Теперь мы будем «идти» по кривой , обозначая каждый проходимый поворот

«Л»или»П»(левый или правый). Переобозначив «Л»в «0», а «П»в «1», получим ещё одно

представление кривой дракона последовательностью в алфавите {0,1}.

Заметим, что при повороте кривой относительно точки On на угол [()/2] по часовой

стрелке все правые повороты становятся левыми, а левые - правыми. Кроме того,

присоединяя к кривой её же, мы добавляем ещё один левый поворот и, как и в

предыдущем случае присоединяем сначала последний отрезок, потом предпоследний и

т.д. Тогда для порождения этой последовательности мы можем воспользоваться

следующей схемой:

X1=0, nnn XXX ˆ01 (2)

где, как и ранее, X -это отрицание слова X, а X - это слово X, прочитанное с конца.

Page 6: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Пример: X2=0.0.1, X3=001.0.011, X4=0010011.0.0011011.

Легко убедиться, что последовательность дракона, заданная схемой (2) совпадает с

E-последовательностью, заданной схемой (1).

9. Последовательность Колакоски.

Однако, существуют последовательности, алгоритм порождения которых очень

прост, но предсказание даже, казалось бы, несложных свойств затруднительно, а

доказательства не найдены до сих пор. Одной из таких «трудноисследуемых»

символьных последовательностей является следующая.

Последовательность Колакоски (Kolakoski word) K в алфавите 1, 2 образуется

конкатенацией блоков, каждый из которых состоит или из одних единиц, или из одних

двоек. Эти блоки чередуются, т.е. за блоком из 1 идет блок из 2 и наоборот, а длина i-го

блока равна i-му элементу этой последовательности. Таким образом, начиная с 2, мы

получим:

K = 22112122122112112212….

Длина первого блока 22 равна двум, т.к. первая буква последовательности K есть 2, длина

второго блока 11 равна двум, т.к. вторая буква последовательности K есть 2, длина

третьего блока (из двоек) равна единице, т.к. третья буква есть 1, и т.д.

10. Нерешенные задачи.

1. Верно ли, что числа вхождений букв «1» и «2» в последовательность K

ассимптотически равны?

2. Не найдена и комбинаторная сложность последовательности K, в частности,

неизвестно, растет ли эта функция от n не более чем квадратично с ростом n.

3. Существует ли схема итеративного порождения этой последовательности, т.е.

является ли она неподвижной точкой (f(K) = K) некоторого морфизма f, подобно

тому, как это имеет место для обобщенной последовательности Фибоначчи

предыдущего примера.

Если ответ на вопрос 3 положителен, то, по-видимому, схема итеративного

порождения сложна, поскольку процесс возможного разбиения на блоки

последовательности K и проверки того, годится ли соответствующий морфизм для

порождения K, легко программируется. Перебирая и анализируя возможных кандидатов

на функцию f, легко тестировать их, идентифицируя порождаемую ими

последовательность с K. Обычно, таким образом находится нужный морфизм, если

таковой существует и он не очень сложен. Однако, известны случаи существования

морфизмов, длина блоков подслов которых очень велика, и найти которые путем

указанного перебора невозможно. Таким хорошо известным морфизмом является

конструкция последовательности Керянена [Ker1] в четырехбуквенном алфавите, в

которой длина слов подстановки f равна 86. Эта конструкция завершает решение

известной в комбинаторике слов проблемы существования бесконечной символьной

последовательности в конечном алфавите, никакие два последовательных подслова в

которой не равны, как «коммутативные слова», т.е. не равны с точностью до перестановки

букв в них [Ker2]. Это свойство «сильной непериодичности» и имеющиеся конструкции

обобщают исследования морфизмов, например, приведенного ранее морфизма Туэ-

Page 7: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Морса-Хедлунда, которые определяют бесповторные символьные последовательности, не

содержащие последовательных подслов, равных как слова, т.е. графически совпадающих.

11. Символьные последовательности порождаемые перестановкой блоков

В качестве алфавита мы рассмотрим генетический алфавит ДНК, который состоит

из четырех букв: a (аденин), g (гуанин), c (цитозин), t (тимин). Рассмотрим бесконечные

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

блоков. Число перестановок из четырех символов равно 4! = 24. Таким образом, мы

получаем 23 различные последовательности (так как одна перестановка является

тождественной).

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

следующим образом:

1 шаг: в качестве начального слова w1 берем слово agct. Задаем перестановку П.

Разбиваем слово w1 на четыре блока равной длины. Заметим, что переставляются только

блоки, а сами символы внутри блоков остаются на своих местах.

2 шаг: слово w2 получаем с помощью приписывания к слову w1 слова П(w1), которое

является перестановкой блоков слова w1. Далее, мы делим слово w2 на четыре равных

блока и переставляем их по заданной перестановке П и т.д.

Таким образом, на k- ом шаге wk = wk-1П(wk-1). Очевидно, что на каждом шаге длина слова

wk увеличивается в два раза. Следовательно, длина wk = 2k+1

.

Примеры.

1) Возьмем перестановку П=1243, то есть 1 и 2 блоки остаются на своих

местах, а 3 и 4 меняются местами. Вертикальной чертой обозначим

границу между блоками.

w1 = agct

w2 = w1 П(w1) = a g c t a g t c. w2 = ag| ct| ag| tc| .

w3 = w2 П(w2) = a g c t a g t c a g c t t c a g и т. д.

2) Перестановка П=2143.

w1 = a g c t . w1 = a|g|c|t

w2 = w1 П(w1) = a g c t g a t c. w2 = ag| ct| ga| tc|.

w3 = w2 П(w2) = a g c t g a t c c t a g t c g a и т.д.

12. Последовательность “Look & Say”.

Определим последовательность слов следующей алгоритмической схемой их

порождения:

Первое слово - это «буква» 1, т.е. X1 = 1.

Второе слово - это результат записи того, что мы последовательно видим в записи

первого слова X1, т.е. «одну единицу», и это дает код-запись 11, т.е. X2 = 11.

Третье слово - это код-запись второго слова X2, т.е. «две единицы», и это дает слово

X3=21.

X4=1211, т.к. в X3 «одна двойка и одна единица».

X5=111221 и определяется по этой же схеме,

т.е. серия подряд идущих «букв-чисел» в X4 кодируется первым числом, равным

длине серии, а второе число это буква серии.

Далее будем иметь

X6 = 312211

X7 = 13112221

Page 8: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Задача:.

Какие подслова длины n содержатся во множестве слов {Xn}, n = 1, 2, 3,

13. Кривые Пеано, Серпинского, Гильберта

Под кривой Пеано мы подразумеваем всякую кривую Жордана X=(t), Y=Y(t),

заполняющую внутренность какого-нибудь квадрата Q, лежащего на плоскости XOY.

Следовательно, кривая Пеано C, рассматриваемая как множество на плоскости точек, не

является множеством, нигде неплотным.

Рассмотрим непрерывную функцию, построенную Джузеппе Пеано в 1890 году.

Область определения этой функции – отрезок, а область значений – квадрат на плоскости.

Соответствующая линия называется кривой Пеано или кривой, заполняющей плоскость.

Кривая Пеано интересна как пример непрерывной функции, отображающей множество

заданной размерности на множество большей размерности. Существование таких

функций оказало огромное влияние на дальнейшее развитие математического анализа.

Введем некоторые обозначения, удобные для изучения свойств кривой Пеано. Пусть I –

единичный отрезок [0,1], а S – единичный квадрат II, то есть: S={(X,Y): X,YI}.

При построении Д. Пеано использовал представление точек отрезка I в системе счисления

по основанию 9. Первый шаг состоит в том, чтобы разбить S на девять равных частей.

Непрерывная кривая, которая проходит через все квадраты, строится так, как показано на

рис. 1. Квадраты занумерованы числами 0,1,2,3,4,5,6,7 и 8, в соответствии с порядком, в

котором линия их пересекает. Полученная линия представляет собой первую итерацию

построения.

Далее, каждый из этих квадратов разбивается на девять равных подквадратов, которые

нумеруются аналогично тому, как это было сделано на первой итерации. Получаем

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

конечная точки ложатся на кривую предыдущего шага конструкции. Это позволяет нам

занумеровать подквадраты числами 0,1,2,3,4,5,6,7 и 8 внутри каждого квадрата. Повторяя

описанную процедуру, каждый раз разбиваем квадраты на девять подквадратов, строя

кривую через все подквадраты так, чтобы ее концы ложились на линию предыдущего

шага итеративной конструкции, и занумеровывая их. На рис.2 изображено, как выглядит

после двух итераций квадрат с номером 4.

Рис. 1 Первая итерация построения Пеано Рис. 2 Вторая итерация Пеано

Тогда, кривая Пеано, переводящая I в S, определяется отображением, которое

сопоставляет точке XI, записанной в девятеричной системе счисления 0,X1X2X3, точку

P(X)S по следующему правилу:

Page 9: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

P(X) – в квадрате под номером X1 после первой итерации,

P(X) – в квадрате под номером X1X2 после второй итерации,

P(X) – в квадрате под номером X1X2X3 после третьей итерации,

… и т.д.

Отображение Пеано не устанавливает взаимно однозначного соответствия между точками

множеств I и S. Известно, что это невозможно сделать с помощью непрерывной функции.

В случае кривой Пеано одной точке вдоль общего ребра двух квадратов соответствуют

две точки отрезка. Более того, одной точке на стыке четырех квадратов соответствуют

целых четыре точки отрезка.

Другой более известный пример кривой, заполняющей плоскость, принадлежит Давиду

Гильберту. Единичный квадрат Q делится на четыре равные части. Точки отрезка I так же

представляются в системе счисления, но по основанию 4. Непрерывная кривая, которая

проходит через все квадраты, строится так, как показано на рис. 3. Квадраты

занумерованы числами 1,2,3 и 4 в соответствии с порядком, в котором линия их

пересекает. Полученная линия представляет собой первую итерацию построения.

Следующее применение операции заключается в разбиении каждого из этих квадратов на

четыре равных квадрата. Обходим новые квадраты, в соответствии с новой нумерацией

как показано на рис.4.

Рис. 3 Первая итерация построения Гильберта Рис.4 Вторая итерация построения Гильберта

Продолжая неограниченно этот процесс и соблюдая осторожность, чтобы при

обходе всех квадратов n-го ранга четыре квадрата, составляющие квадрат (n-1)-го шага

конструкции, обходились не в разбивку, а один за другим, - мы будем иметь такое

попарно соответствие квадратов Q* и отрезков I* n-шага, при котором квадрату (n+1)-го

шага, содержащемуся в Q* будет отвечать отрезок (n+1)-го шага, содержащийся в I, и

обратно.

Также известна кривая, заполняющая плоскость, и принадлежащая Вацлаву

Серпинскому. На рис. 5 изображена кривая Серпинского после двух итераций.

Page 10: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Рис.5 Вторая итерация построения Серпинского

Кодирование кривых символьными последовательностями

Кривые Пеано можно задавать символьными последовательностями в различных

алфавитах, кодируя кривую направлениями или поворотами. Рассмотрим такие

последовательности и способы их задания.

13.1 Последовательность Пеано в алфавите {0,1,2,3}

Введем прямоугольную систему координат, как показано на рис.1. Будем «идти» по

кривой. Если направление движения совпадает с положительным направлением оси OX,

то обозначим отрезок, по которому движемся, через X. Если направление движения

совпадает с отрицательным направлением оси OX, то X . Если направление движения

совпадает с положительным направлением оси OY, то обозначим отрезок Y. Если

направление движения совпадает с отрицательным направлением оси OY, тоY .

Рис.1.1 Кодирование кривой Пеано направлением движения

Если обозначим X 0, Y 1, X 2, Y 3, то мы получим представление кривой Пеано

последовательностью в алфавите {0,1,2,3}.

Пусть Pn – слово, полученное после n-ой итерации. Тогда после (n+1)-ой итерации в

квадратах с номерами 0, 2, 6 и 8 у нас будет находиться Pn. В квадратах с номерами 1 и 7

слово Pn повернется на /2 по часовой стрелке: Y перейдет в X, X в Y , X в Y, Y в X , то

есть 03210. Обозначим полученное таким образом слово nP~

. В квадратах с

номерами 3 и 5 слово Pn повернется на /2 против часовой стрелки: Y перейдет в X , X в

Y, X в Y , Y в X, то есть 01230. Обозначим полученное таким образом слово

через nP . В квадрате с номером 4 слово Pn повернется на : Y перейдет в Y , X в X , X в

Page 11: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

X, Y в Y, то есть 02, 13. Обозначим полученное таким образом слово nP . Таким

образом, мы можем рекуррентно определить последовательность:

P1 = 101232101,

nnnnnnnnnn PPPPPPPPPP

~ˆˆ~1

Пример:

P1= 101232101,

P2=101232101.030121030.101232101.212303212.323010323.212303212.101232101.

030121030.101232101.

13.2 Последовательность Пеано в алфавите {0,1}

Теперь мы будем идти по кривой, обозначая каждый проходимый поворот «Л» или «П»

(левый или правый). Переобозначив «П» в «0», а «Л» в «1», получим представление

кривой Пеано последовательностью в алфавите {0,1}. Ниже будут сформулированы

предложения о том, что в последовательности не встречается подряд двух одинаковых

символов, из чего мы можем получить представление в двухбуквенном алфавите для этой

и других последовательностей.

Пусть Pn – последовательность, полученная после n-ой итерации. Тогда после (n+1)-ой

итерации во всех подквадратах у нас будет находиться Pn. Присоединяя их друг к другу

мы будем добавлять еще один поворот. При переходе из 0-го подквадрата в 1-ый, из 4-го

в 5-ый, из 5-го в 6-ой и из 6-го в 7-ой добавляется правый поворот, т.е. «0». При переходе

из 1-го подквадрата в 2-ой, из 2-го в 3-ий, из 3-го в 4-ой и из 7-го в 8-ой добавляется

левый поворот, т.е. «1». Таким образом, для порождения этой последовательности мы

можем воспользоваться следующей схемой:

P1=10001110,

Pn+1= Pn1Pn0Pn0Pn0Pn1Pn1Pn1Pn0Pn.

13.3 Последовательность Серпинского в алфавите {0,1,2,3}

Введем прямоугольную систему координат, как мы это делали ранее. Заметим, что

поскольку кривая Серпинского циклически замкнута, то мы можем начать ее «обход» из

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

координату по оси OX и минимальную положительную координату по оси OY. На рис.2

точка А – начало обхода кривой после первой итерации. Обход будем совершать против

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

направлением осей.

Рис.3.1 Кодирование кривой Серпинского

Переобозначив X 0, Y 1, X 2, Y 3, мы получили представление кривой

Серпинского последовательностью в алфавите {0,1,2,3}.

Page 12: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

Пусть Sn – последовательность, полученная после n-ой итерации. Разобьем ее на четыре

равных по длине блока и обозначим их соответственно 1

nS , 2

nS , 3

nS , 4

nS . Тогда мы можем

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

S1 = 21212.32323.03030.10101

Sn+1 =1

nS ( 2

nS )’2 4

nS 1

nS 2

nS ( 3

nS )’3 1

nS 2

nS 3

nS ( 4

nS )’0 2

nS 3

nS 4

nS ( 1

nS )’1 3

nS 4

nS ,

Где (S)’ – результат замены последнего символа в S по правилу: 02, 13.

13.4 Последовательность Серпинского в алфавите {0,1}

Теперь мы будем идти по кривой, обозначая каждый проходимый поворот «Л» или

«П» (левый или правый), аналогично тому, как мы это делали для кривой Пеано.

Переобозначив «П» в «0», а «Л» в «1», получим представление кривой Серпинского

последовательностью в алфавите {0,1}.

Пусть Sn – последовательность, полученная после n-ой итерации. Разобьем ее на два

равных по длине блока, которые при этом будут одинаковыми, и обозначим их 1

nS .

Заметим, что 1

nS состоит из блоков вида «010» и «11», причем начинается блоком «010» и

заканчивается блоком «11». 1

nS , в котором последний блок «11» поменяли на «010»

обозначим 2

nS . Тогда мы можем рекуррентно задать последовательность следующим

образом:

S1 = 010.11. 010.11. 010.11. 010.11

Sn+1 =2

nS 1

nS 2

nS 1

nS 2

nS 1

nS 2

nS .

Также последовательность Серпинского можно породить следующим

морфизмом для блоков:

=

11.010.11.01011

010.010.11.010010

13.5 Последовательность Гильберта в алфавите {0,1,2,3}

Введем прямоугольную систему координат, как показано на рис.3. Будем «идти» по

кривой. Если направление движения совпадает с положительным направлением оси OX,

то обозначим отрезок, по которому движемся X. Если направление движения совпадает с

отрицательным направлением оси OX, то X . Если направление движения совпадает с

положительным направлением оси OY, то обозначим отрезок, по которому движемся Y.

Если направление движения совпадает с отрицательным направлением оси OY, то –Y .

Рис.5.1 Кодирование кривой Гильберта

Переобозначив X 0, Y 1, X 2, Y 3, мы получили представление кривой

Гильберта последовательностью в алфавите {0,1,2,3}. Пусть Gn – последовательность,

полученная после n-ой итерации. Тогда после (n+1)-ой итерации в 2-ом и 3-ем

Page 13: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

подквадратах у нас будет находиться Gn. В 1-ом подквадрате Gn повернется на /2 по

часовой стрелке: Y перейдет в X, X в Y, X в Y , Y в X , то есть 01, 23. Обозначим

полученное таким образом слово nG . В 4-ом подквадрате Gn повернется на /2 против

часовой стрелки: Y перейдет в X , X вY , X в Y, Y в X, то есть 03, 12. Обозначим

полученное таким образом слово nG~

. Когда Gn поворачивается на : Y переходит в Y , X в

X , X в X, Y в Y, то есть 02, 13. Обозначим полученное таким образом слово nG .

Таким образом, мы можем рекуррентно задать последовательность:

G1 = 103,

Gn+1 = `

~301ˆ

nnnn GGGG .

Пример:

G1 = 103,

G2 = 012.1.103.0.103.3.230.

13.6 Последовательность Гильберта в алфавите {0,1,2}

Теперь мы будем идти по кривой, обозначая каждый проходимый поворот «Л» или «П»

(левый или правый). Отсутствие поворота будем обозначать буквой «Н». Переобозначив

«П» в «0», «Л» в «1», а «Н» в «2» получим представление кривой Гильберта

последовательностью в алфавите {0,1,2}.

Пусть Gn – последовательность, полученная после n-ой итерации. Тогда после (n+1)-ой

итерации во 2-ом и 3-ем подквадратах у нас будет находиться Gn. А в 1-ом и 4-ом

подквадратах будет находиться nG , которое получается заменой «П» на «Л», а «Л» на

«П», «Н» остается на месте, то есть 01, 22. Присоединяя их друг к другу мы будем

добавлять еще два символа в зависимости от четности шага. Таким образом, для

порождения этой последовательности мы можем воспользоваться следующей схемой:

G1=00,

G2n = 12121212 201102 nnnn GGGG ,

G2n+1= nnnn GGGG 2222 022220 .

Пример:

G1= 00,

G2=11.02.00.11.00.20.11.

Из определения непосредственно следует, что последовательность Гильберта в

алфавите {0,1,2} является палиндромом, то есть одинаково читается слева направо и

справа налево

ЛИТЕРАТУРА

[1] Августинович С.В. Число различных подслов заданной длины в последовательности

Морса-Хедлунда // Сибирский журнал исследования операций. Апрель-июнь 1994. Т. 1, 2.

[2] Васильев Н.Б.,Гутенмахер В. Кривые дракона // Квант 1972. 2.

[3] Евдокимов А.А. О максимальной длине цепи в единичном n-мерном кубе //

Математические заметки 1969. Т.6, 3.

[4] Евдокимов А.А., Левин А.А. Графические модели и комбинаторика генетических и

математических символьных последовательностей.// Вычислительные технологии.

Новосибирск, Том 7, 2002 г. , стр. 274 - 278.

Page 14: Часть 1. Комбинаторика символьных ... · 2016-09-21 · Часть 1. Комбинаторика символьных последовательностей

[5] Евдокимов А.А., Левин А.А. Комбинаторика и визуализация математических и

генетических символьных последовательностей.//

http://www.bionet.nsc.ru/ICIG/report/2001/icg_im/full2002.htm , стр. 43 - 52.

[6] Кадач А. В. Эффективные алгоритмы неискажающего сжатия данных сортировкой

блоков. Препринт 42.1. Новосибирск 1997.

[7] Кроновер Р. М. Фракталы и хаос в динамических системах. Основы теории. Москва:

Постмаркет, 2000.

[8] Kitaev S. Generalized patterns in words and permutations. Goeteborg.

January 2003.

[9] Lothaire M. Algebraic combinatorics on words.// Encyclopedia of

Mathematics 90, Cambridge University Press, 2002.

[10] Лузин Н. Н. Теория функций действительного переменного. Государственное учебно-

педагогическое издательство Наркомпроса РСФСР. Москва,1940

[11] Мерекин Ю. В. Нижняя оценка сложности для схем конкатенации слов // Дискретный

анализ и исследование операций 1996. Т.3,1

[12] Morse M., Hedlund G. Symbolic dynamics.// Amer. J. Math. N 60, 1938, P. 815 - 866.

[13] Morse M., Hedlund G. Unending chess, symbolic dynamics and a problem in semigroups.//

Duke Math. J. N 11, 1944, P. 1 - 7.

[14] Нигматуллин Р.Г. Сложность булевых функций. Издательство Казанского

университета, 1983.

[15] Фрид А. Э. О графах подслов DOL-последовательностей // Дискретный анализ и

исследование операций 1999. Серия 1 Т.6,4

[16] Фрид А.Э. О комбинаторной сложности итеративно порождаемых символьных

последовательностей//Дискретный анализ и исследование операций 1997. Т.4, 1.

[17] Холл М. Комбинаторика. М. : Мир, 1970.

[18] Яблонский С.В. Введение в дискретную математику. М. : Высшая школа, 2002.

[19] Яглом А.М., Яглом И.М. Неэлементарные задачи в элементарном изложении. М. :

Гостехиздат, 1954.

15 октября 2008 г.