Научная статья на тему 'Индексы в динамической системе (b, ±) двоичных векторов'

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

CC BY
144
47
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИНАМИЧЕСКАЯ СИСТЕМА / ЭВОЛЮЦИОННАЯ ФУНКЦИЯ / АТТРАКТОР / ИНДЕКС / ПЛОТНОСТЬ / БЛОК / DYNAMICAL SYSTEM / VECTOR / EVOLUTIONAL FUNCTION / ATTRACTOR / INDEX / DENSITY / BLOCK

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

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

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

An algorithm is proposed for computation of indices of states in dynamical system (B, ±), whose states are binary vectors and evolutional function ± transforms vectors according to the following rules: the initial component 0 (if exists) is replaced by 1, every digram 10 by 01, and the final 1 (if exists) by 0. Correctness of the algorithm is proven.

Текст научной работы на тему «Индексы в динамической системе (b, ±) двоичных векторов»

ИНФОРМАТИКА

УДК 512.5

ИНДЕКСЫ В ДИНАМИЧЕСКОЙ СИСТЕМЕ (B, S) ДВОИЧНЫХ ВЕКТОРОВ

А. В. Власова

Саратовский государственный университет,

кафедра теоретических основ компьютерной безопасности и криптографии E-mail: VAnastasiyaV@gmail.com

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

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

Indices in Dynamical System (B, 5) of Binary Vectors A. V. Vlasova

Saratov State University,

Chair of the Theoretical Foundations of Computer Security and Cryptography E-mail: VAnastasiyaV@gmail.com

An algorithm is proposed for computation of indices of states in dynamical system (B, 5), whose states are binary vectors and evolutional function 5 transforms vectors according to the following rules: the initial component 0 (if exists) is replaced by 1, every digram 10 by 01, and the final 1 (if exists) by 0. Correctness of the algorithm is proven.

Keywords: dynamical system, vector, evolutional function, attractor, index, density, block. ВВЕДЕНИЕ

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

Под конечной динамической системой понимается пара (S, 8), где S — конечное непустое множество, элементы которого называются состояниями системы, 8: S ^ S — отображение множества состояний в себя, называемое эволюционной функцией системы.

Каждой конечной динамической системе сопоставляется карта — граф с множеством вершин S и дугами, проведенными из каждой

вершины 5 е Б в вершину ¿(5). Этот граф является функциональным, т.е. из каждой вершины выходит точно одна дуга. Компоненты связности графа, задающего динамическую систему, называются её бассейнами.

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

Одной из основных характеристик состояний конечной динамической системы является индекс — расстояние до аттрактора того бассейна, которому принадлежит состояние. Программа [4] предназначена для исследования эволюционных параметров состояний (индекс, недостижимость, ветвление) в динамических системах, состояниями которых являются двоичные векторы, представленные такими графами, как цепи, циклы и пальмы. В настоящей работе описываются индексы динамической системы двоичных векторов, порожденных такими графами, как цепи (см. [5-7]).

1. ОПИСАНИЕ СИСТЕМЫ

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

1) если первой компонентой в V является 0, то первой компонентой в ¿(V) будет 1;

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

3) если последней компонентой в V является 1, то последней компонентой в ¿(V) будет 0;

4) других отличий между V и ¿(V) нет.

Замечание. Вышеперечисленные правила применяются одновременно.

Эта динамика для двоичных векторов определена в [2]. Каждое состояние размерности п при динамике переходит в состояние также размерности п. Таким образом, система В в зависимости от п разбивается на подсистемы (Вп, ¿). На рисунке показана карта динамической системы (В6 , ¿).

2. АТТРАКТОРЫ В СИСТЕМЕ (В,

Через р^) обозначается плотность вектора V, т.е. количество пар совпадающих соседних компонент в нем. Например, р(111111) = 5, р(101010) = 0, р(111011) = 3, р^ШОП)) = р(110110) = 2. Очевидно, что для V е Вп будет 0 < р^) < п - 1.

Аттракторы динамической системы (В, были описаны в работе [5], где доказываются следующие три теоремы.

Теорема 1. Для системы (В, при любом V справедливо неравенство р^^)) < р^).

Теорема 2. Для системы (В, верно С^)(р^) = 0 (Зк^р^(V)) < р^))).

000011^

000100 МТ100010 Н»Г01000Г

000101

00001^»П0000Г

000000

000001

000110

001010

001000

001001

100000

100101

100100 100011

110001

010000 110000

010010 110010

001111_

110111 МГ101110 Н»ГШТ0Г

010111

101111 ^Г0ШГ0"

111111

011111

>

111110

100111

101011

111011

011011

>

010110

110110

011100

111101 111100

101101 101100

001110

000111 001011

101000

011010

100110

001100 001101 010100

101001 011000 011001 111000 111001

111010

110100

110101

010101

101010

110011 010011

Карта динамической системы (B6,6)

Теорема 3. При любом п > 2 система (Вп,5) имеет единственный бассейн и аттрактор, представляющий собой двухэлементный цикл, образуемый состояниями (01)1-п/2 0 и (10)1-п/2 1 при нечётном п и состояниями (01)п/2 и (10)п/2 при чётном п.

3. АЛГОРИТМ ВЫЧИСЛЕНИЯ ИНДЕКСА СОСТОЯНИЯ В СИСТЕМЕ (В, 5)

Блок — это подряд стоящие нули (0-блоки) или единицы (1-блоки), в количестве > 2. Длина блока — это число нулей (единиц) в нем, уменьшенное на 1.

Введем обозначения:

г — порядковый номер последней компоненты последнего 1-блока;

к — количество компонент вектора до первого блока;

/ — количество компонент вектора между последним блоком и концом вектора;

г — индекс рассматриваемого состояния;

5 — порядковый номер первой компоненты первого 0-блока;

р0 ,Р1 — суммы длин рассматриваемых 0-блоков и 1-блоков соответственно;

УНГ — указатель начала группы;

УРС — указатель рассмотрения состояния.

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

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

I. Если вектор V содержит в себе блоки и все они состоят из 1, то г(г>) = г — 1;

II. Если вектор V содержит в себе блоки и все они состоят из 0, то ¿(V) = п — 5;

III. Если вектор V содержит в себе 1-блоки, после которых идут 0-блоки, то ¿(V) = п — 5 при г — 1 < п — 5, иначе ¿(V) = г — 1;

IV. Если вектор V содержит в себе 0-блоки, после которых идут 1-блоки, то ¿(V) = г — 1 при ро < Р1, ¿(V) = (г — 5 + 1)/2 — 1 при ро = Р1, ¿(V) = п — 5 при pо > Р1;

V. Если вектор V содержит в себе 0-блоки и 1-блоки в произвольном порядке, отличном от описанных в пунктах I — IV алгоритма, то, просматривая его слева направо, выполняем следующие действия:

1. УНГ и УРС ставятся в начале вектора. Если до первого 0-блока есть 1-блоки, то первой группой будет являться отрезок вектора от начальной компоненты до последней компоненты того 1-блока, который стоит перед первым 0-блоком включительно; УНГ и УРС ставятся между последней компонентой того 1-блока, который стоит перед первым 0-блоком, и следующей компонентой.

2. Если вектор уже полностью разбит на группы или если 1-блоков больше нет, то группа заканчивается на последней компоненте вектора и переходим в пункт 6, иначе р0 := 0,р1 := 0.

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

3. р0 := р0 + сумма длин 0-блоков до первого (следующего) 1-блока от УРС; УРС ставится между последним из таких 0-блоков и следующей компонентой.

4. р1 := р1+ сумма длин 1-блоков до первого (следующего) 0-блока от УРС; УРС ставится между последним из таких 1-блоков и следующей компонентой.

5. Если р0 < р1, то группа заканчивается на последней компоненте того 1-блока, который стоит перед УРС, и идём в пункт 2, УНГ ставится между последней компонентой этой группы и следующей компонентой; а если 0-блоков больше нет, то группа заканчивается на последней компоненте состояния, и идём в пункт 6. Если р0 > р1 и ещё остались 1-блоки, то идём в пункт 3, а если 1-блоков больше нет, то группа заканчивается на последней компоненте состояния и идём в пункт 6.

6. В каждой группе подсчитываем р0 и р1 и помечаем группы знаками «—», «=», «+», если в них р0 > р1 ,р0 = рьр0 < р1 соответственно. Объединяем рядом стоящие группы с одинаковыми пометками «—» или «+» в одну, при этом если между «+»-группами встречаются «=»-группы, то их также объединяем в «+»-группу. Пусть Н — общее количество групп. Считаем групповые индексы ¿з-, 1 < ] < Н, согласно следующим правилам: в «—»-группе ¿з- = п — , в «=»-группе ¿3 = (гj — + 1)/2 — 1, в «+»-группе ¿з- = Гj — 1. Тогда ¿(V) = тех ¿з.

Теорема 4 (Корректность алгоритма вычисления индекса состояния). Алгоритм вычисления индекса состояния корректен.

Таблица 1

№ шага Состояние

0 111...11101...010

1 111...11010...101

2 111...10101...010

г - 2 110...10101...010

г — 1 101...01010...101

Таблица 2

Доказательство. I. Если вектор у содержит в себе блоки и все они состоят из 1, то г (у) = г — 1. Рассмотрим эволюцию таких состояний в зависимости от количества 1-блоков.

1.1. Вектор имеет единственный 1-блок. Рассмотрим эволюцию таких состояний в зависимости от расположения 1-блока.

а) вектор содержит единственный 1-блок, который расположен в начале вектора.

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

Таким образом, г (у) = г — 1.

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

б) вектор содержит единственный 1-блок, который расположен не в начале вектора.

В табл. 2 приведена схематичная эволюция таких состояний. Таким образом, г (у) = к + р1 = г — 1.

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

1.2. Вектор имеет несколько блоков, и все они состоят из 1.

Из рассмотрения пункта 1.1 можно заключить, что 1-блоки

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

Таким образом, рассмотрев все возможные ситуации, делаем вывод, что пункт I алгоритма корректен.

II. Если вектор V содержит в себе блоки, и все они состоят из 0, то г (у) = п — е. Рассмотрим эволюцию таких состояний в зависимости от количества 0-блоков.

П.1. Вектор имеет единственный 0-блок. Рассмотрим эволюцию таких состояний в зависимости от расположения 0-блока.

а) вектор содержит единственный 0-блок, который расположен в конце вектора.

Схематичная эволюция таких состояний: 101000...000 —1 010100...000 —2 101010...000 —3 ...

№ шага Состояние

0 01.. .01011.. .1111101. ..010

1 10.. .10111.. .1111010 ..101

2 01.. .01111.. 1110101. ..010

3 10.. .11111... 1101010. ..101

к — 1 01 ..11110. ..10101.. 010

к 11. ..11101. ..01010.. .101

к + 1 11. ..11010. ..10101.. 010

к + 2 11. ..10101. ..01010.. .101

к + рг — 1 11. .01010. ..10101.. .010

к + рг 10. ..10101 ..01010.. .101

*Р0-1

-1 01010...100

10101...010.

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

б) вектор содержит единственный 0-блок, который расположен не в конце вектора. Схематичная эволюция таких состояний: 10...1010000...00010...101 —1 01...0101000...00001...010

—>2 10...101010...00000...101 —^з ... —f -1 10...10101...01000...001 —f 01...01010...10100...000 —f+1 10...10101...01010...000 —f+2 ... —f +р0-1 10...10101...01010...100 —f +р0 01...01010...10101...010.

Таким образом, г (у) = / + р0 = п — е.

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

П.2. Вектор имеет несколько блоков, и все они состоят из 0.

—►

Из рассмотрения пункта II.1 можно заключить, что каждый 0-блок на очередном шаге смещается вправо на одну компоненту, пока не достигает конца вектора, затем длина 0-блока на каждом очередном шаге уменьшается на единицу за счёт поглощения самой правой компоненты и перед ним следуют чередующиеся нули и единицы, пока все компоненты 0-блока не поглотятся. Очевидно, что в данном случае последним поглотится самый левый 0-блок, и тогда индекс будет равен уменьшенному на единицу порядковому номеру с конца вектора первой компоненты самого левого 0-блока, или i = n — s.

Таким образом, рассмотрев все возможные ситуации, делаем вывод, что пункт II алгоритма корректен.

III. Если вектор содержит в себе 1-блоки, после которых идут 0-блоки, то i = n—s при r — 1 < n—s, иначе i = r — 1.

Исходя из доказательств предыдущих пунктов, можно заключить, что в данном случае на каждом шаге эволюции одновременно 0- и 1-блоки начнут движение вправо или влево соответственно, пока не достигнут своих концов вектора и не начнут поглощаться, т.е. самым последним поглотится тот блок, который дальше всего будет стоять от своего края. Таким образом, нужно определить порядковый номер от конца состояния первой компоненты первого 0-блока, определить порядковый номер последней компоненты последнего 1-блока, выбрать максимальный из них и считать согласно пунктам I или II, т.е. если r — 1 <n — s, то i = n — s, иначе i = r — 1. Таким образом, пункт III алгоритма корректен.

IV. Если вектор содержит в себе 0-блоки, после которых идут 1-блоки, то i = r — 1 при p0 < pi, i = (r — s + 1)/2 — 1 при p0 = pi, i = n — s при p0 > pi.

Обозначим через g количество компонент вектора между последним 0-блоком и первым 1-блоком.

IV.1. Рассмотрим сначала эволюцию таких состояний, включающих в себя один 0-блок, после которого есть 1-блок, и в зависимости от их значений p0 и pi:

а) состояния, для которых р0 < Р1. ТаблиЧа 3 В табл. 3 приведена схематичная эволюция

№ шага Состояние таких состояний. Таким образом, ¿(-) = г — 1.

0 01. .01000...00101...010111...111101. .01 Заметим, что в этом конкретном случае

1 10. .10100...00010...101111...111010. .10 сначала на каждом шаге эволюции 0-блок

2 01. .01010...00001...011111...110101. .01 начинает двигаться вправо, 1-блок начинает

двигаться влево за счёт поглощения компонент,

g/2 01. .0101000...000011111...11110101. ..01 стоящих между блоками; когда блоки оказыва-

g/2 + 1 10. .1010100...000011111...11101010. ..10 ются стоящими рядом, то их длины начинают

g/2 + 2 01. .0101010...000011111...11010101. ..10 уменьшаться на единицу за счёт поглощения

компонент друг друга, пока 0-блок полностью

g/2 + ро — 1 01...0101010011...11010101...10 не поглотится. Таким образом, в результате

g/2 + ро 10...1010101011...10101010...01 остаётся 1-блок и чередующиеся нули и еди-

ницы, дальнейшая эволюция была описана в

r — 2 1101...01010...101 пункте I, т.е. получается, что в процессе эволю-

r — 1 1010...10101...010 ции для подсчёта индекса состояния имеет зна-

чение только 1-блок, а точнее порядковый номер

его последней компоненты, так как при эволюции его последняя компонента просто смещается влево на каждом шаге эволюции, пока из всего 1-блока не останется она одна, т.е. ¿(-и) = г — 1.

б) состояния, для которых ро = р1.

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

в) состояния, для которых р0 > р1.

Здесь ситуация будет аналогична пункту ГУЛ.а, только в результате остаётся один 0-блок и чередующиеся нули и единицы, дальнейшая эволюция описана в пункте II, т.е. ¿(-) = п — 5.

^.2. Рассмотрим теперь состояния, включающие в себя несколько 0-блоков, после которых идут 1-блоки, также в зависимости от значений р0 и р\ в векторе.

а) состояния, для которых р0 <рь

Из пункта получаем, что здесь на каждом шаге эволюции 0-блоки начинают двигаться впра-

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

б) состояния, для которых р0 = рь

Из рассуждений пунктов IV. 1.б и ^.2.а получаем, что при эволюции 0-блоки и 1-блоки начнут движение навстречу друг другу, пока не окажутся рядом, а затем начнут поглощать друг друга с каждым следующим шагом эволюции, пока не поглотится один из блоков, после чего продолжится аналогичное движение, пока рядом не окажутся последние оставшиеся 0-блок и 1-блок, которые начнут поглощать друг друга с каждым следующим шагом эволюции, пока от них не останутся по одной компоненте, причём это уже будет вектор полностью состоящий из чередующихся нулией и единиц. Таким образом, i = (г — 5 + 1)/2 — 1.

Покажем, что количество компонент от первой компоненты первого 0-блока до последней компоненты последнего 1 блока, т.е. г — 5 + 1, всегда будет чётно. Докажем это индукцией по р0.

Базис индукции: р0 = 1. Здесь получается, что длины 0- и 1-блоков равны 1 и в сумме дают чётное число, количество компонент между этими блоками также чётно, так как это чередующиеся нули и единицы, а после 0-блока обязательно будет стоять 1 и перед 1-блоком будет стоять 0, в итоге получаем чётное количество компонент от первой компоненты первого 0-блока до последней компоненты последнего 1-блока.

Шаг индукции. Предположим, что при любом р0 < т е N количество компонент от первой компоненты первого 0-блока до последней компоненты последнего 1 блока, т.е. г — 5 + 1, будет чётно. Покажем, что данное условие выполняется при р0 = т + 1. Рассмотрим здесь несколько ситуаций.

1) длины первого 0-блока и последнего 1-блока не равны 1. Тогда отсекаем у этих блоков по одному элементу, получаем случай р0 = т, для которого требуемое условие выполняется, а отсекли мы две компоненты, т.е. в итоге получаем чётное число и выполнение нужного условия.

2) длина первого 0-блока или длина последнего 1-блока равна 1. Например, длина первого 0-блока равна 1. Тогда отсекаем у этих блоков по одной компоненте, получаем случай р0 = т, для которого требуемое условие выполняется. От 0-блока осталась одна компонента, до следующего 0-блока идёт нечетное количество компонент, а отсекли мы две компоненты, т.е. в итоге получаем чётное число и выполнение нужного условия.

3) длины первого 0-блока и последнего 1-блока равны 1. Тогда отсекаем у этих блоков по одному элементу, получаем случай р0 = т, для которого требуемое условие выполняется. От 0-блока и 1-блока осталось по одной компоненте, до следующего 0-блока идёт нечетное количество компонент, от предыдущего 1-блока идёт нечетное количество компонент, а отсекли мы две компоненты, т.е. в итоге получаем чётное число и выполнение нужного условия.

в) состояния, для которых р0 > рь

Здесь ситуация будет аналогична пункту ^.2.а, только в состоянии в конце концов остаётся один 0-блок и чередующиеся нули и единицы, дальнейшая эволюция описана в пункте II, т.е. = п — 5.

V. Вектор состоит из 0-блоков и 1-блоков в произвольном порядке.

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

или большую длину, или поглотят сами следующие за ними подряд стоящие 1-блоки и продолжат сдвиг вправо, встречая очередные 1-блоки, если сумма длин 0-блоков будет больше суммы длин 1-блоков. С точки рассмотрения 1-блоков ситуация получается аналогичная, но так как на очередном шаге эволюции движение 0- и 1-блоков происходит одновременно, то, не теряя общности, будем рассматривать этот случай с точки зрения движения 0-блоков, т.е. ситуаций, когда 0-блоки будут полностью поглощаться 1-блоками, что возможно в ситуациях, когда суммы длин 1-блоков больше или равны сумме длин 0-блоков, или 0-блоки поглотят 1-блоки, что возможно, когда суммы длин 1-блоков меньше суммы длин 0-блоков. В пунктах V.1-V.5 алгоритма как раз описывается процедура деления состояния на группы, в которых суммы длин 0-блоков или меньше сумм длин 1-блоков, или равны, или больше (в этом случае это может быть только крайняя справа группа). В итоге получаем вектор, разделенный на группы, причём слева будет «+»-группа, справа «-»-группа, а между ними могут быть ещё «=»-группы. Так как при динамике эти группы (блоки) начинают свои движения одновременно, то индекс будет равен максимальному из групповых индексов. А это описано в пункте V.6 алгоритма подсчёта индекса, т.е. алгоритм верен. □

Сложность алгоритма равна O(n), где n — количество компонент в состоянии. Пример. 1011101001101000111010001

Вектор подходит только под V пункт алгоритма. Сначала получаем деление вектора на группы (в результате выполнения переходов 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 2 ^ 3 ^ 4 ^ 5 ^ 2 ^ 6): L10111JL010011JL01000111JL010001J. Подсчитываем групповые индексы: н = п - 1 = 5 - 1 = 4 (<+»-группа); ¿2 = (г2 - S2 + 1)/2 - 1 = (11 - 8 + 1)/2 - 1 = 1 («=»-группа); ¿з = (гз - S3 + 1)/2 -— 1 = (19 - 14 + 1)/2 - 1 = 2 («=»-группа); i4 = n - s4 = 25 - 22 = 3 («-»-группа). Таким образом, i(v) = 4.

Эволюция состояния:

1011101001101000111010001 ^ 0111010101010100110101000 ^ 1110101010101010101010100 ^ 1101010101010101010101010 ^ 1010101010101010101010101 (аттрактор), т.е. i(v) =4.

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

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

Следствие (глубина бассейна). При любом n > 2 система (Bn,S) имеет глубину бассейна, равную n - 1.

Доказательство. Рассмотрим формулы вычисления индекса состояния в каждом пункте алгоритма.

I. i(v) = г - 1. Здесь значение индекса будет максимальным при г = n, например для состояния (1)n.

II. i(v) = n - s. Здесь значение индекса будет максимальным при s = 1, например для состояния (0)n.

В пунктах III, IV, V ситуация будет аналогична, при этом очевидно, что значение индекса в состоянии, для которого p0 = Pi (или в «=»-группе для V пункта), всегда будет меньше n - 1.

Таким образом, максимальный индекс в системе (Bn,<5) равен n - 1. □

Библиографический список

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

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

3. Colon-Reyes O., Laubenbacher R., PareigisB. Boolean monomial dynamical systems // Ann. Comb. 2004. Vol. 8. P. 425-439.

4. Власова А. В. Исследование эволюционных параметров в динамических системах двоичных векторов // Свидетельство о государственной регистрации программы для ЭВМ № 2009614409, выданное Роспатен-

том. Зарегистрировано в Реестре программ для ЭВМ 20 августа 2009 г.

5. Аттракторы в динамических системах двоичных векторов / А. В. Власова; Саратов. гос. ун-т. Саратов, 2010. 19 с. Деп. в ВИНИТИ 23.06.2010, № 392-В2010.

6. Власова А. В. Ветвления в динамической системе п-мерных двоичных векторов // Инновационные технологии XXI века в управлении, информатике и образовании. Нальчик, 2008. С. 109-112.

7. Об одной динамической системе / А. В. Власова; Саратов. гос. ун-т. Саратов, 2007. 17 с. Деп. в ВИНИТИ 17.12.07, № 1181-В2007.

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