Научная статья на тему 'Индексы в динамической системе двоичных векторов, ассоциированных с ориентациями циклов'

Индексы в динамической системе двоичных векторов, ассоциированных с ориентациями циклов Текст научной статьи по специальности «Математика»

CC BY
128
22
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КОНЕЧНАЯ ДИНАМИЧЕСКАЯ СИСТЕМА / ЭВОЛЮЦИОННАЯ ФУНКЦИЯ / ДВОИЧНЫЕ ВЕКТОРЫ / ЦИКЛЫ / ИНДЕКС / NITE DYNAMIC SYSTEM / EVOLUTIONARY FUNCTION / BINARY VECTORS / INDEX / CYCLES

Аннотация научной статьи по математике, автор научной работы — Жаркова Анастасия Владимировна

Предлагается алгоритм для подсчёта индексов состояний конечной динамической системы двоичных векторов, ассоциированных с ориентациями циклов, в которой эволюционная функция преобразует вектор с помощью одновременного выполнения следующих действий: начальный 0 и конечная 1 заменяются на 1 и 0 соответственно, каждая диграмма 10 на 01. Определяется максимальный из индексов системы заданной размерности.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Indices in dynamic system of binary vectors associated with cycles orientations

An algorithm is proposed for computation of indices in dynamic system of binary vectors associated with cycles orientations. Evolutionary function of the system transforms vectors according to the following rules: if both the initial component is 0 and the nal one is 1 they are replaced by 1 and 0 respectively and all digrams 10 are replaced simultaneously by 01. Maximal index of the subsystem formed by vectors of a given dimension is found.

Текст научной работы на тему «Индексы в динамической системе двоичных векторов, ассоциированных с ориентациями циклов»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2012 Прикладная теория графов №2(16)

ПРИКЛАДНАЯ ТЕОРИЯ ГРАФОВ

УДК 519.1

ИНДЕКСЫ В ДИНАМИЧЕСКОЙ СИСТЕМЕ ДВОИЧНЫХ ВЕКТОРОВ, АССОЦИИРОВАННЫХ С ОРИЕНТАЦИЯМИ ЦИКЛОВ

А. В. Жаркова

Саратовский государственный университет им. Н. Г. Чернышевского, г. Саратов, Россия

E-mail: [email protected]

Предлагается алгоритм для подсчёта индексов состояний конечной динамической системы двоичных векторов, ассоциированных с ориентациями циклов, в которой эволюционная функция преобразует вектор с помощью одновременного выполнения следующих действий: начальный 0 и конечная 1 заменяются на 1 и 0 соответственно, каждая диграмма 10 — на 01. Определяется максимальный из индексов системы заданной размерности.

Ключевые слова: конечная динамическая система, эволюционная функция, двоичные векторы, циклы, индекс.

Введение

Графовые модели, в которых отказы процессоров интерпретируются как удаление соответствующих вершин, а отказы сетевых каналов — как удаление дуг, занимают важное место в задачах, связанных с отказоустойчивостью компьютерных сетей. Здесь можно выделить следующую конструкцию, получившую самостоятельное значение в теории графов — бесконтурный граф с заданной структурой источников и стоков [1]. В модели [1] в качестве механизма восстановления работоспособности сети предлагается так называемая SER-динамика бесконтурных графов. Это позволяет использовать при изучении модельных графов идеи и методы теории конечных динамических систем и, в частности, динамических систем двоичных векторов (см., например, [2, 3]) — когда имеется естественная двоичная кодировка графов рассматриваемого класса.

Под конечной динамической системой понимается пара (S, 8), где S — конечное непустое множество, элементы которого называются состояниями системы; 8: S ^ S — отображение множества состояний в себя, называемое эволюционной функцией системы. Каждой конечной динамической системе сопоставляется карта — ориентированный граф с множеством вершин S и дугами, проведенными из каждой вершины s Е S в вершину 8(s). Этот граф является функциональным, то есть из каждой его вершины выходит точно одна дуга. Компоненты связности графа, задающего динамическую систему, называются её бассейнами. Каждый бассейн представляет собой контур с входящими в него деревьями. Контуры называются предельными циклами или аттракторами.

Основными проблемами теории конечных динамических систем являются задачи отыскания эволюционных параметров без проведения динамики. К их числу относится индекс состояния — расстояние до аттрактора того бассейна, которому принадлежит

состояние. Автором составлены программы для ЭВМ, позволяющие вычислять различные параметры динамических систем двоичных векторов, ассоциированных с некоторыми типами графов, в частности [4].

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

1. Описание динамической системы

СО

На множестве В = у Вп, где через Вп, п > 2, обозначается множество всех дво-

п= 3

ичных векторов размерности п, рассмотрим динамическую систему (В, в). Пусть состоянием динамической системы в данный момент времени является вектор V Е В. Тогда в следующий момент времени она окажется в состоянии в^), полученном путем одновременного применения следующих правил:

I) если первой компонентой в V является 0 и последней компонентой является 1, то первой компонентой в в^) будет 1, а последней компонентой — 0;

II) если в составе V имеются диграммы вида 10, то в в^) каждая из них заменяется на 01;

III) других отличий между V и в^) нет.

Каждое состояние размерности п при динамике переходит в состояние также размерности п. Таким образом, система (В, в) в зависимости от п разбивается на конечные подсистемы (Вп, в), п > 2.

Теперь пусть имеется п-звенный цикл с. Выберем в нём какую-либо вершину в качестве начальной и обозначим её через со, тогда цикл можно записать как с = с0с1... сп-1 сп, где сп = со. Придадим каждому ребру цикла произвольную ориентацию. Дуги, имеющие направление по часовой стрелке (от вершины с0 к вершине сп), пометим символом 1, а дуги с противоположной ориентацией — символом 0, и последовательно выпишем получившуюся последовательность из нулей и единиц.

Таким образом, каждой ориентации цикла сопоставляется п-мерный двоичный вектор. С другой стороны, каждый такой вектор однозначно определяет некоторую ориентацию цикла, так что между множеством Сп, п > 2, всевозможных ориентированных п-звенных циклов указанного вида и множеством Вп, п > 2, устанавливается взаимно однозначное соответствие. На языке циклов структура динамической системы вводится следующим образом: если дан некоторый цикл с Е Сп, то его динамическим образом в (с) является цикл, получаемый из с одновременным превращением всех стоков в источники. Это частный случай динамики бесконтурных графов, введённой в [1]. Заметим, что контуры в динамической системе (Сп,в), п > 2, образуют аттракторы единичной длины. Преобразования ориентаций циклов соответствуют эволюционным преобразованиям соотносимых им двоичных векторов в динамической системе (Вп, в), п > 2, а именно vв(c) = в^с).Таким образом, динамические системы (Вп,в) и (Сп,в), п > 2, изоморфны. На рис. 1 и 2 изображены карты изоморфных динамических систем (В3,в) и (Сз,в).

Рис. 1. Карта динамической системы (В3,9)

Рис. 2. Карта динамической системы (Сз,9)

2. Индексы состояний

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

Теорема 1. Состояния динамической системы (Вп,в), п > 2, являющиеся циклически идентичными, имеют одинаковые индексы.

Доказательство. Возьмём два циклически идентичных вектора и и V. На языке ориентаций циклов получаем, что соответствующие им графы си и с„ являются изоморфными с точностью до переобозначения вершин. Так как данные изоморфные циклы на следующем шаге динамики переходят также в изоморфные циклы, то есть в(си) = в(с„), то они, а значит, и соответствующие им векторы имеют одинаковый индекс. ■

Через рс(V) обозначим циклическую плотность вектора V, то есть количество пар совпадающих соседних компонент в нём с учётом циклического сдвига. Например, рс(11001011) = 1 + 3 = 4. Очевидно, что для состояния V системы (Вп, в) выполняется 0 ^ рс(V) ^ п. Под циклическим блоком будем понимать максимальное по включению множество подряд стоящих нулей (0-блок) или единиц (1-блок) в количестве больше 1 с учётом циклического сдвига. Длина блока — число нулей (единиц) в блоке, уменьшенное на 1. Обозначим через р°, суммы длин с учетом циклического сдвига рассматриваемых 0-блоков и 1-блоков соответственно.

Под блок-группой будем понимать последовательность компонент вектора, возможно при циклическом сдвиге, начинающуюся с 0-блока и заканчивающуюся 1-блоком. Под первичной блок-группой будем понимать блок-группу, в которой сначала идут только 0-блоки, затем только 1-блоки.

Введем необходимые обозначения: г — индекс состояния; I — длина рассматриваемой блок-группы.

Алгоритм вычисления индекса состояния системы (В, в)

Индекс «(V) состояния V системы (В, в) вычисляется исходя из его векторного представления.

I. Если р0 = 0 или р] = 0, то «(V) = 0.

II. Если р0 = 0 и р] = 0, то выполняем следующие действия.

1. Помечаем в векторе все первичные блок-группы; их количество обозначим Л.

2. В каждой блок-группе подсчитываем суммы длин 0- и 1-блоков. Пусть 0 < ] ^ Л, тогда считаем р0.), р]. и помечаем блок-группы знаками «-(ж)», «=» и «+(ж)», если

в них Р0(.) > р. Р0(.) = р. Р0.) < Р](.) соответственно, где ж = |Р0(.) - р.

3. Если в векторе существуют одновременно « —» и «+» блок-группы, то идём в п. 4, иначе идём в п. 5.

4. Если в векторе подряд стоят «-(ж)» блок-группа и « + (у)» блок-группа (без учёта остальных компонент и «=»-групп между ними, если они имеются), то объединяем их в одну блок-группу, включая возможно стоящие между ними компоненты и «=»-группы (их количество в данном случае обозначим за Л=), и помечаем знаком «-(ж — у)», «=» или «+(у — ж)», если ж > у, ж = у, ж < у соответственно. Полагаем Л := Л — 1 — Л= и идём в п. 3.

5. Считаем г., 0 < ] ^ Л, согласно следующим правилам:

- в «—» блок-группе г. = Ь. /2 — 1, где Ь . — длина той части блок-группы (если её рассматривать с конца циклически влево), в которой выполняется равенство р0 = р];

- в «=» блок-группе г. = ./2 — 1;

- в «+» блок-группе г. = Ь./2 — 1, где Ь. —длина той части блок-группы (если её рассматривать с начала циклически вправо), в которой выполняется равенствор0 = р].

6. Ответ: г^) = тах г..

0<Кй '

Теорема 2. Предложенный алгоритм вычисления индекса состояния динамической системы (В, в) корректен.

Доказательство.

I. У вектора р0 = 0 или р] = 0. В работе [5] показано, что состояния, для которых р0 = 0 или р] = 0, принадлежат аттрактору, поэтому такие состояния имеют нулевой индекс.

II. У вектора V существуют одновременно 0- и 1-блоки. В данном случае индекс вектора равен количеству шагов эволюции, в результате которых получится состояние, содержащее только 0-блоки, только 1-блоки или не содержащее ни 0-, ни 1-блоков.

1. Рассмотрим ситуацию, когда в состоянии идут сначала все 0-блоки, затем все 1-блоки. Заметим, что в таких состояниях существует единственная блок-группа, а именно первичная блок-группа, которая начинается с первого 0-блока и заканчивается последним 1-блоком.

а) р0 <р].

Из доказательства критерия принадлежности состояния аттрактору в работе [5] следует: в таком состоянии на каждом шаге эволюции одновременно 0-блоки начинают движение вправо, 1-блоки начинают двигаться влево за счёт поглощения компонент, стоящих между блоками, с учетом циклического сдвига; когда они оказываются стоящими рядом, то блоки начинают уменьшаться на единицу каждый за счёт поглощения компонент друг друга, пока один из блоков полностью не поглотится, после чего опять продолжаются сдвиги блоков навстречу друг другу, пока не поглотится самый последний 0-блок, а это означает, что достигнут аттрактор.

Таким образом, для вычисления индекса нужно, рассматривая вектор циклически вправо от начала блок-группы, дойти до такой компоненты состояния, чтобы выполнялось равенство р0 = р] —именно этой компонентой и закончится 1-блок, который

поглотит последнюю оставшуюся компоненту 0-блока единичной длины. Тогда действительно г = Ь/2 — 1, где Ь — длина такой части данной блок-группы. Чётность Ь показана в работе автора [6].

б) р0 = р].

В работе [5] показано, что такая ситуация возможна только для четного п. Из доказательства критерия принадлежности состояния аттрактору в [5] следует, что в таком состоянии при эволюции 0-блоки и 1-блоки начнут движение навстречу друг другу, пока не окажутся рядом, а затем начнут поглощать друг друга с каждым следующим шагом эволюции, пока не поглотится один из блоков. После этого продолжится аналогичное движение, пока рядом не окажутся последние оставшиеся 0-блок и 1-блок, которые начнут поглощать друг друга с каждым следующим шагом эволюции, пока от них не останется по одной компоненте, что будет означать, что достигнут аттрактор. Таким образом, индекс данного состояния действительно равен г = //2 — 1.

в) р0 >р].

Здесь ситуация аналогична случаю П.1а, только тут поглотятся все 1-блоки. Поэтому для вычисления индекса нужно, рассматривая вектор циклически влево от начала блок-группы, дойти до такой компоненты состояния, чтобы выполнялось равенство р0 = р] —именно этой компонентой и закончится 0-блок, который поглотит последнюю оставшуюся компоненту 1-блока единичной длины. Тогда действительно г = Ь/2 — 1.

2. Теперь рассмотрим ситуацию, когда в состоянии 0-блоки и 1-блоки расположены случайным образом.

Из доказательств предыдущих пунктов можно заключить, что при эволюции такого состояния 0-блоки будут сдвигаться циклически вправо, при этом если они будут встречаться с 1-блоками, то длина 0-блока будет уменьшаться с очередным шагом эволюции. То есть если есть подряд стоящие 0-блоки, то они или все поглотятся, если следующие за ними подряд стоящие 1-блоки в сумме имеют равную или большую сумму длин; или подряд стоящие 0-блоки поглотят сами следующие за ними подряд стоящие 1-блоки и продолжат циклический сдвиг вправо, встречая очередные 1-блоки, если сумма длин этих 0-блоков больше суммы длин 1-блоков. Для 1-блоков ситуация аналогична.

В таком состоянии существует не менее двух первичных блок-групп, обозначим их количество за Л. Причём если в первичной блок-группе сумма длин 0-блоков больше, чем сумма длин 1-блоков, то при эволюции на очередном шаге в блок-группе останутся только 0-блоки, которые при последующей эволюции продолжат движение вправо. Если в первичной блок-группе суммы длин 0- и 1-блоков равны, то при эволюции на очередном шаге в блок-группе останутся только чередующиеся нули и единицы. Если же в первичной блок-группе сумма длин 0-блоков меньше, чем сумма длин 1-блоков, то при эволюции на очередном шаге в блок-группе останутся только 1-блоки, которые при последующей эволюции продолжат движение влево.

Пометим в состоянии все первичные блок-группы в зависимости от суммы длин 0- и 1-блоков. А именно, в каждой первичной блок-группе подсчитываем р0.), р].), где 0 < ] ^ Л, и помечаем блок-группы знаками « — (ж)», «=» и «+(ж)», если в них

р0(.) > р](.) , р0(.) = р](.) , р0(.) < р](.) соответственно, где ж = |р0(.) — р](.) 1.

Так как на очередном шаге эволюции движение 0- и 1-блоков происходит одновременно, то если в состоянии существуют одновременно « — (ж)» и «+(у)» блок-группы, то в них при эволюции останутся 0-блоки и 1-блоки соответственно, которые по-прежнему будут друг друга поглощать. Значит, игнорируя чередующиеся нули и единицы, а также «=» блок-группы, которые могут стоять между « — (ж)» и «+(у)» блок-группами,

объединяем их в одну блок-группу, включая возможно стоящие между ними компоненты и «=»-группы (их количество в данном случае обозначим за h=), и помечаем знаком «< —(x — у)», ««=» или «<+(у — x)», если x > у, x = у, x < у соответственно. При этом количество блок-групп уменьшается, то есть h := h — 1 — h=. Если в состоянии после этого существуют одновременно « —(х)» и «+(у)» блок-группы, то повторяем данную процедуру объединения, пока не избавимся от этой ситуации.

В результате получим состояние, в котором возможна одна из следующих ситуаций по наличию блок-групп: только « —» блок-группы; только «+» блок-группы; только «=» блок-группы; одновременно « —» и «=» блок-группы; одновременно «=» и «+» блок-группы. При эволюции от этих блок-групп в результате останутся: только 0-блоки; только 1-блоки; ни 0-, ни 1-блоков; только 0-блоки или ни 0-, ни 1-блоков; ни 0-, ни 1-блоков или только 1-блоки — это уже состояния, принадлежащие аттрактору. Таким образом, для вычисления индекса состояния нужно подсчитать количество шагов эволюции, за которые от исходных блок-групп останутся вышеперечисленные компоненты, и выбрать из этих чисел максимальное. Используя формулы, полученные в доказательстве (случаи II.1 a-в), считаем ij, 0 < j ^ h, согласно следующим правилам:

- в «—» блок-группе ij = tj /2 — 1, где tj — длина той части блок-группы (если её рассматривать с конца циклически влево), в которой выполняется равенство р0 = p;

- в «=» блок-группе ij = Ij/2 — 1;

- в «+» блок-группе ij = tj/2 — 1, где tj —длина той части блок-группы (если её рассматривать с начала циклически вправо), в которой выполняется равенствор0 = р^.

Тогда i(v) = max j. ■

0<Kh j

Для поиска индекса состояния по данному алгоритму вектор сразу разбивается на группы, которые могут быть потом объединены, а затем подсчитываются индексы отдельно для каждой группы и выбирается максимальный из них, поэтому алгоритм имеет линейную сложность O(n), где n — количество компонент в состоянии.

Пример 1. Подсчитаем индекс состояния 1100О1О100.

Считаем индекс состояния согласно п. II алгоритма.

1. Помечаем в векторе все первичные блок-группы: 1100jO1lO100, h =1.

2. Получаем, что в состоянии присутствует единственная «=» блок-группа.

3. В векторе не существует одновременно « —» и «+»-группы, значит, идём в п. 5.

5. Подсчитываем групповой индекс: i1 = /1/2 — 1 = 200/2 — 1 = 99.

6. Таким образом, i(v) = 99, т. е. данное состояние придет к аттрактору за 99 шагов.

Следствие 1. Система (Bn,0), n > 2, имеет максимальный индекс (n — 1)/2 — 1

при нечетном n и n/2 — 1 — при четном n.

Доказательство. Все формулы вычисления индекса состояния рассматривают, по сути, такую часть блок-групп, что при р0 < р^ сумма длин 1-блоков равна сумме длин всех 0-блоков этой блок-группы; при р0 > р^ сумма длин 0-блоков равна сумме длин всех 1-блоков этой блок-группы, а при р0 = р1 берётся длина этой блок-группы. Соответственно при чётном n максимальным является индекс у состояния 00(10)n 411, для которого i(00(10)n 411) = n/2 — 1; при нечётном n максимальный индекс у состояния 00(10)n-411x, где х — это 0 или 1; для него i(00(10)n-411x) = (n — 1)/2 — 1. ■

Заключение

Предложен алгоритм для подсчёта индексов состояний в динамической системе двоичных векторов, ассоциированных с ориентациями циклов, а также определено, чему равен максимальный индекс подсистемы заданной размерности.

ЛИТЕРАТУРА

1. Barbosa V. C. An atlas of edge-reversal dynamics. London: Chapman&Hall/CRC, 2001. 372 p.

2. Салий В. Н. Об одном классе конечных динамических систем // Вестник Томского гос-университета. Приложение. 2005. №14. С. 23-26.

3. Colon-Reyes O., Laubenbacher R., and Pareigis B. Boolean monomial dynamical systems // Ann. Combinator. 2004. V. 8. P. 425-439.

4. Власова А. В. Исследование эволюционных параметров в динамических системах двоичных векторов // Свидет. РОСПАТЕНТа №2009614409, зарегистр. 20 августа 2009.

5. Власова А. В. Аттракторы динамических систем, ассоциированных с циклами // Прикладная дискретная математика. 2011. №2(12). С. 90-95.

6. Власова А. В. Индексы в динамической системе (B, 5) двоичных векторов // Изв. Са-рат. ун-та. Нов. сер. 2011. Т. 11. Сер. Математика. Механика. Информатика. Вып.3. Ч. 1. С.116-122.

i Надоели баннеры? Вы всегда можете отключить рекламу.