УДК 004.9
Алёшкин А.С., Обухова А.Г., Жуков Д.О.
Московскими технологическими университет МИРЭА, г. Москва, Россия
МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СТОХАСТИЧЕСКИХ КЛЕТОЧНЫХ АВТОМАТОВ С ПАМЯТЬЮ
Аннотация
В представленной статье обсуждается модель стохастических клеточных автоматов с памятью. Анализ модели показывает, что динамика изменения состояний в таких системах имеет очень сложный и неочевидный характер, требующий дальнейшего изучения, а сами подобные объекты можно отнести к новому классу клеточных автоматов. Среда, в которой моделируются связи между ячейками клеточного автомата на отдельных шагах процесса перехода, рассматриваться как сеть, имеющая случайную структуру (это позволяет говорить о стохастичности), а учет памяти в поведении ячеек описываться наборами изменяющихся правил.
Для исследования разработанной модели были разработаны алгоритмы их работы и специальное программное обеспечение. Имитационное моделирование показало, что созданная модель стохастических клеточных автоматов с памятью может быть использована для описания группового поведения в социальных системах, например группового выбора во время электоральных кампаний.
Ключевые слова
^учайная сеть; клеточный автомат; реализация памяти.
Alyoshkin A.S., Obukhova A.G., Zhukov D.O.
Moscow Technological University MIREA, Moscow, Russia
MATHEMATICAL AND SOFTWARE SOLUTIONS OF STOCHASTIC CELLULAR AUTOMATONS
WITH MEMORY
Abstract
In provided article a model of stochastic cellular automatons with memory is discussed. The analysis of the model shows that the dynamics of state changes in such systems is very complex and non-obvious and requires further study. That sort of systems and similar objects can be attributed to a new class of cellular automatons. The environment in which the connections between cells of the cellular automaton are modeled at separate steps of the transition process is considered as a random structure network (it is therefore possible to speak of stochasticity), and taking account of the memory in cells behavior is described by sets of changing rules.
In order to study the developed model, their operation algorithms and special software were developed.
Simulation modeling has showed that the created model of stochastic cellular automatons with memory can be used to describe group behavior in social systems, for example, a group selection during electoral campaigns.
Keywords
Random network; cellular automaton; memory implementation.
Введение
Разработка моделей процессов выбора группового поведения и управления действиями в социальных и экономических системах является очень важнои и интересной задачей. Начиная от сетеи знании компании и логистических цепочек
поставки товаров до процессов передачи информации, распространения мнении, выражения взглядов и поведения пользователей в социальных сетях, политических выборов, групповые процессы взаимодействия играют огромную роль в социальных и экономических
отношениях.
Групповые процессы взаимодействия можно определить как совокупность информационных каналов (связи сети или ребра в графе) каждого человека (узлы сети или вершины графа), связывающих его с другими членами сообщества, а также средств массовой информации (то есть не только взаимодействие между членами определенной группы в социальной сети). Средства массовой информации (радио, телевидение, интернет ресурсы, социальные сети и т. д.), а также книги, газеты, журналы оказывают существенное влияние на состояние отдельных узлов социальной сети (выбор предпочтении и поведенческие реакции людеи), которое может меняться с течением времени как за счет информационной среды, так и взаимодействия пользователей между собои.
В связи с этим возникает ряд вопросов. Во-первых, как может происходить изменение в системе доли узлов, находящихся в том или ином состоянии. Во-вторых, как эти узлы связываются между собои в подгруппы (кластеризация сети). В-третьих, как информационные процессы зависят от всеи сети в целом для различных состоянии узлов и как они развиваются во времени.
За последние десять лет интерес исследователей к моделированию явлении, происходящих в экономических и социальных системах, значительно вырос. В связи с этим очень трудно указать явных лидеров в даннои области знании. Однако следует обратить внимание на то, что для описания подобных явлении все чаще и чаще применяются различные модели на основе поведения машин клеточных автоматов, которые в общем случае можно представить как набор взаимодействующих ячеек, состояния которых и переходы между которыми определяются наборами правил взаимодействия.
Если ячейки клеточного автомата помнят о своих более ранних состояниях, то такои клеточньш автомат обладает памятью. Если выбор будущего состояния (правило перехода) х, (г+( И + 1)) в момент времени (г+ (И + 1)) определяется состоянием х, (г +И) в момент времени (г + И), состоянием соседеи Хи ес(;/ (г+И) в этот момент времени и своим более ранним состоянием в момент времени (г + И — 1), то ячеика "помнит один шаг назад": X, И И + 1 )= к (г+И) XИ И—1)), X х„ (г+И)} .
[ ,/ее (,) ]
В случае если функция величины группы соседей зависит от времени Ср, t), то мы будем иметь более сложный характер перехода:
х1 (г+( И + 1 ))=F {х, (И), X хи(г+И)}
[ ,/+ И) ) .
Еще более сложной становится модель, если к возможности изменения величины группы соседеи добавить реализацию частичной памяти:
х, (г+( И + 1 ))=Р {х, (И) ,х(г+( И—1)), X хи (г+И)}
[ I/ е G +И) \ .
Необходимо также отметить, что правила перехода, определяемые состояниями х, (г+И),
х, (г+(И—1))
X xt/ (t + h)
сами также могут
i/ t о (i)
иметь зависимость от шага h , что еще больше может усложнить модель поведения клеточного автомата. Число возможных различных состоянии (M) клеточного автомата в этих случаях будет существенно больше, чем для детерминированных клеточных автоматов с конечным числом состоянии.
В случае стохастического (случайного) поведения, при случайном характере переходов вместо функции F, заданной набором правил. необходимо ввести функцию
W{xi(t+(h+1 ))|Xi(t + h)^X)X/(t+h)j , задающую
набор вероятностей переходов. Функция W определяет вероятность перехода i элемента на шаге (t+(h + 1)) из состояния x¡(t+h), которое он имел на предыдущем шаге (t + h) в состояние xi(t+(h + 1)), при условии того, что состояние ближаиших соседеи определялось как
X Xi/(t + h) .
i/ t G ( i)
1. Краткий обзор применения моделей клеточных автоматов для описания процессов в экономических и социальных системах
В работе [1] авторов J. Hay (из Department of Chemical and Biochemical Engineering, Western University, London, ON, Canada) и D. Flynn (King's University College, London, ON, Canada) теория клеточных автоматов была применена к описанию процессов в социальных системах. Согласно их теории поведение социальной системы зависит от свойств внешнеи среды и структуры поведения, которая может быть описана с помощью четырех параметров в поведении: разнообразие, связность, взаимозависимость и адаптируемость. В этои статье было показано, что поведение становится более упорядоченным и целенаправленным при увеличении взаимозависимости и адаптивности.
J. Hay и D. Flynn изучали влияние структуры сетеи (случайные структуры, маленькие миры, цикл, колесо, звезда, иерархическая), в которых функционируют клеточные автоматы, и правил их поведения на динамику процессов в социальных сетях. Результаты исследования описаны в работе [2]. Было показано, что при одинаковых правилах взаимодействия клеток динамика процессов сильно зависит от топологии сети (неупорядоченные структуры оказывают тормозящее влияние и наибольшая скорость наблюдается в регулярных структурах).
Исследователи A. Wang, J. Chen (College of Computer Science and Technology, Taiyuan University of Technology, Taiyuan, Shanxi, China) и W. Wu
(Department of Computer Science, University of Texas at Dallas, Richardson, TX, United States) построили сотовую модель клеточных автоматов для распространения слухов в социальных сетях [3]. Экспериментальное моделирование проводилось при периодических граничных ограничениях в процессе распространения слухов. Результат показал, что модель клеточных автоматов способна охарактеризовать реально наблюдаемое поведение распространения слухов в социальной сети. На основании полученных результатов о влиянии граничных условии на распространение слухов авторы работы предложили эффективную стратегию иммунизации сети для их подавления.
Эволюционная динамика социальных сетеи с использованием моделей клеточных автоматов для исследования статистических характеристик процессов кластеризации (разделение на плохо связанные группы), например таких, как степень разделения, была исследована в работе [4]. J. Li и Z. Chen (College of Science, Beijing Forestry University, Beijing, China) и T. Qin (School of Economics and Management, Beijing Forestry University, Beijing, China) рассмотрели три вида факторов в поведении, названных ими себялюбие, взаимность и альтруизм, которые необходимы для построения социальной сети и анализа их влияния на ее рост. Результаты моделирования показали, что принцип взаимности и альтруизм способствуют росту числа объединенных узлов в социальной сети, а эгоизм тормозит рост.
Моделирование взаимодействия между клиентами и поставщиками услуг с помощью сотовои модели клеточных автоматов было осуществлено в работе [5]. R.A. Zimbres (Universidade Presbiteriana Mackenzie, Centro de Ciencias Sociais e Aplicadas, Sao Paulo, Brazil) и P.P.B. de Oliveira (Universidade Presbiteriana Mackenzie, Faculdade de Computaçao e Informatica, Sao Paulo, Brazil) на основе интервью с клиентами и поставщиками услуг с интервалом времени в четыре месяца было проведено шесть исследовании качества обслуживания, на основе которых были установлены правила переходов между состояниями клеточных автоматов. Модель клеточных автоматов достигает точности 73,80%, что существенно выше, чем дает модель линеинои регрессии качества обслуживания. Моделирование позволило авторам понять, какие виды поведения, принятые поставщиками и клиентами, создают улучшенное восприятие качества услуг.
В работе [6] на основе модели клеточных автоматов были проанализированы процессы, происходящие на фондовом рынке с учетом правил транзакции, принятых в Китае. J. Ding, Q. Li (College of Computer Sci. and Eng., Shanghai University, Shanghai, China) и Z. Li (Derivatives Department, Donghai Securities Ltd, Shanghai, China) на основе как технического анализа, так и стадного
поведения описали правила переходов между состояниями клеточных автоматов и исследовали макроскопическую динамику рынка.
Следует отметить, что ни одна из рассмотренных моделей не может считаться полностью адекватной для описания динамики социальных и экономических процессов. Все это показывает необходимость разработки новых моделеи описания процессов распространения информации в сетях социальных связеи, основанных на использовании
междисциплинарного подхода (методов социологии, математического моделирования и т.д.).
В частности, мы предлагаем рассмотреть модель стохастических клеточных автоматов с памятью. В данном случае среда, в которой моделируется связь между ячейками клеточных автоматов, может рассматриваться как имеющая случайную структуру (это позволяет говорить о стохастичности), а учет памяти в действиях (поведении ячеек) может описываться изменяющимся набором правил.
2. Построение модели стохастического клеточного автомата с памятью
Во-первых, необходимо задать типы различных ячеек, каждому из которых могут быть поставлены в соответствие определенные их свойства. Начальное число ячеек каждого типа задается перед запуском клеточного автомата в момент времени t=0. Очевидно, что рассматривая процессы в социальных и экономических системах необходимо учесть, что ячейки клеточного автомата будут обладать памятью в течение некоторого времени (или числа шагов процесса, если считать время дискретным с заданным интервалом одного шага).
Стохастичность клеточного автомата будет определяться структурой среды его функционирования. Предполагается, что на каждом шаге процесса ячейки автомата случайным образом перестраивают сеть связеи с другими ячейками. Таким образом, можно моделировать взаимодействие между собои различных ячеек (клеток), например, избирателей во время предвыборных кампании, имеющих предпочтения за разных кандидатов на каждом шаге процесса, и их влияние друг на друга (условно говоря в течение некоторого интервала времени они убеждают друг друга голосовать за того или иного кандидата, и это может привести к изменению взглядов).
В более сложном случае (например, наличие множества различных кандидатов или партии) в начальный момент времени задается доля клеток (узлов) определенного типа (для краткости описания присвоим им некоторые цветовые значения: красньш, оранжевьш, желтьш, зеленьш, голубои, синии, фиолетовый).
Далее необходимо задать правила перехода между состояниями, которые могут учитывать память. В данном случае их более наглядно можно описать в текстовом виде, а не в виде математических формул. Например, один из возможных вариантов может быть таким: в начальный момент времени узлу каждого типа (цвета) присваивается числовой параметр, характеризующий, на протяжении скольких шагов он будет сохранять свои тип (цвет). Сохранение памяти о состоянии для каждои ячейки в течение некоторого числа шагов может быть задано в виде целого положительного числа при запуске клеточного автомата либо математической функцией распределения.
На каждом шаге процесса строится новая сеть случайных связеи между узлами в системе, при этом минимальное и максимальное число связеи каждого узла выбирается из некоторого (например, заранее заданного диапазона), что обуславливает построение стохастической сети на каждом шаге процесса моделирования. Правила переходов, учитывающие память, в системе могут иметь различный вид. Например, для узла любого из типов (цветов) считаем на протяжении определенного заданного числа шагов (глубина памяти) суммарное число узлов разного типа, с которыми он был связан на этих шагах. Спустя число шагов, равное глубине памяти, происходит его переход в тот тип, который имел максимальное значение своеи суммы (такой тип перехода можно условно назвать: «цвет победитель» - забирает всё). Поясним это правило примером. Пусть красныи узел (ячейка) на протяжении 4-х шагов суммарно был связан с 3-мя оранжевыми, 6-ю желтыми, 2-мя зелеными, 10-ю голубыми, 1-им синим, 12-ю фиолетовыми и 10-ю красными (свои собственный тип тоже учитывается). В данном примере произойдет переход в тип узла, который мы назвали «фиолетовый». Если бы связеи с «красными» узлами было бы больше всех остальных, то он остался бы в своем собственном типе. Если будет два или более максимальных значении сумм связеи для двух или более типов, то переход будет происходить в ближаишии по спектру цвет. Заметим, что для каждого из типов узлов можно задавать свою глубину памяти. Более жесткое условие перехода между состояниями будет, если, например, переход происходит в случае, когда максимальное значение суммы должно отличаться от ближайшего меньшего значения на определенный заданный процент. При этом переходы между состояниями должны происходить за большее число шагов (кинетика процесса будет более протяженной во времени). Исследование влияния этого процента различии является интересной кинетической задачей.
Другои тип переходов между состояниями (цветами) узлов можно описать на основе
вероятностной модели, в которой используется функция (И,]), определяющая вероятность перехода даннои ячейки / - "цвета" в ] "цвета", на
X у]г)
шаге ^ ^¡(Ь,])=-, где у, ([) - число всех
X У, (I)
I=1
связеи даннои ячейки / - "цвета" с ячейками всех
И
цветов (включая собственным) на шаге I; X У¡(I) -
I =1
сумма всех связеи даннои ячейки / - "цвета" с ячейками всех цветов (включая собственный) на протяжении всех шагов h (h - глубина памяти даннои ячейки); у, ](I) - число связеи даннои ячейки / - "цвета" с ячеиками имеющими цвет j на
И
шаге I; X У¡] (I) - сумма всех связеи даннои
I =1
ячейки / - "цвета" с ячейками цвета j на протяжении всех шагов h (h - глубина памяти
даннои ячейки). И,] )=1 . После перехода
возможно два варианта: первыи — ячейка забывает все предыдущие взаимодействия, и второи - не забывает.
Действие внешних факторов на переход между типами узлов для каждого шага можно задать с помощью матрицы вероятностей переходов, кроме того можно предусмотреть и механизм целенаправленного изменения доли узлов определенного типа.
Матрица вероятностей переходов между состояниями ячеек клеточного автомата может описывать воздействие на переход внешних случайных факторов, а не взаимодействие между самими ячеиками.
В более сложном случае можно генерировать матрицу переходов на каждом шаге, для каждого состояния. Для этого можно использовать следующий подход. Обозначим через N число состоянии ("цветов") ячеек. Вероятность перехода на текущем шаге из данного состояния в любое другое Р,( И,]') определим как:
где Nj(И) - возможное число "цветов" (состоянии) на шаге перехода К; f(1,]) - нормированная функция, определяющая вероятность перехода (от 0 до 1) из рассматриваемого состояния / ("цвета") в любое другое состояние j на шаге К
Вероятность остаться в исходном состоянии определим следующим образом:
Поясним описанную модель переходов следующим образом. Пусть, например, на шаге И=3 в системе имеется N]( И)=4 отличных (по числу ячеек) от нуля состоянии "красное", "оранжевое", "си-
нее" и "зеленое". Тогда переход, например "красного" в "синее" будет определяться следующим образом:
Р. (h=3, /=синее)=1 f (. = красное, ] = синее)
1 = красное> ' ■> ^ ■
Аналогичным образом определяются вероятности переходов из "красного" состояния в "оранжевое" и "красного" в "зеленое". Тогда вероятность остаться в состоянии "красное" будет равна единица минус сумма переходов в другие состояния.
Функции вероятности ([г,]) принимают случайные значения от 0 до 1 и выбираются, исходя из методологии описания процессов, с учетом конкретной ситуации и представлении о свойствах системы.
В качестве примера рассмотрим распределение
Пуассона. Функция вероятности в данном случае
к
будет иметь вид f (¡,])= р(к^.^^С — е- , где
k=0,1,2,.
х,
j> 0 , C - нормировка. Величина xi
, j " , U llV/^l'lIl^UUlVUi l^Villtl 11111U i — j
определяется величиной! перехода между i и j "цветами" (состояниями). Будем считать, что все состояния (или цвета) могут быть пронумерованы целыми положительными числами от 0 до R, а расстояние между близлежащими состояниями равно 1. Тогда xi
C = 1 /X
j =i
N'[h)R-R\k
-j=IR-щ
,-|Rj-R|
k!
для данного заданного
числа k. В общем виде f (i ,j)=
| Rj- R i | k!
-|Rj-R|
Nj(h )
X
i=i
R j - R
j
_-|Rj-Ri|
k!
Возможно несколько сценариев учета влияния внешних факторов и взаимодействия ячеек между собои. Первый сценарий: учитывается только матрица переходов между состояниями без учета глубины памяти ячеек определенного типа. Второи сценарий: учитывается и заданная глубина памяти ячеек клеточного автомата, и матрица переходов. В данном случае возникает вопрос приоритетности действия. Например, на каждом шаге функционирования клеточного автомата сначала рассматривается влияние матрицы перехода, а для узлов, которые не изменили (в соответствии с неи) свои состояния, учитывается влияние памяти. Для узлов, которые совершили свои переход в соответствии с матрицей переходов, далее используется принятый в начале запуска клеточного автомата сценарии изменения глубины памяти. Либо глубина памяти остается заданнои при запуске процесса, либо изменяется в соответствии с состоянием ("цветом"), в которое перешла ячейка клеточного автомата.
Также стоит обратить внимание на процесс «забывания» информации. Продолжая описанный выше пример можно обратить внимание на сам шаг перехода. Будет ли в момент перехода узел
отбрасывать предыдущий накопленный опыт (забывать взаимодействия, случавшиеся ранее, до момента перехода) или же память сохраняется и предыдущие взаимодействия влияют на узел на каждом шаге.
Отдельного моделирования заслуживает случаиньш порядок изменения принадлежности узла. При таком подходе, даже несмотря на накопленный опыт связанности узла, он может тяготеть к тому или иному «цвету».
Обратим внимание на разделение свойств отдельных ячеек при их создании при запуске автомата и тех свойств, которые узел приобретает в процессе моделирования поведения. К примеру, для начала моделирования поведения мы задали значения емкость памяти (число шагов взаимодействий, которые помнит узел) для красных «5», а для синих «8». А в процессе моделирования часть узлов изменяет свою принадлежность и переходит из состояния «красныи» в состояние «синии» и наоборот. Это означает, что появятся «синие» узлы с емкостью памяти «5» и красные узлы с емкостью памяти «8».
3. Программное обеспечение для
моделирования стохастического клеточного автомата с памятью
Для проведения моделирования поведения стохастических автоматов с памятью нами было разработано специализированное программное обеспечение.
3.1. Программные инструменты,
использованные для разработки программного обеспечения моделирования стохастического клеточного автомата с памятью
В качестве платформы для реализации среды моделирования стохастического клеточного автомата с памятью была выбрана платформа Microsoft.Net (текущая версия Microsoft .Net Framework 4.6.1) и язык программирования C#, наиболее полно охватывающий возможности .NET Framework. Основными преимуществами платформы стали упрощение разработки приложении, наличие обширного числа открытых и доступных инструментов, наличие большого числа готовых к повторному использованию компонент и библиотек. Созданный код в дальнейшем может быть портирован под различные платформы и устройства, а также может использоваться в совершенно различных сценариях: сервис, веб-приложение, мобильное приложение и т.д. В качестве основы для проектирования пользовательского интерфейса использована технология WPF (Windows Presentation Foundation), позволяющая с помощью XML (extensible Markup Language) подобного языка разметки XAML (extensible Application Markup Language) быстро создавать и модифицировать пользовательский интерфейс приложения.
Также удобство использования приложения
e
k
определяется возможностью создания меню и команд в виде ленточного интерфейса (англ. Ribbon или Microsoft Fluent Interface). Ленточныи интерфейс в приложении реализуется с помощью открытого компонента Fluent.Ribbon
(https://github.com/fluentribbon/Fluent.Ribbon). которьш позволяет быстро добавить в приложение необходимый функционал.
За качественное логгирование поведения программы и фиксацию ошибок отвечает открытая библиотека логгирования NLog (http://nlog-project.org/). Данная система позволяет настраивать множество параметров сбора данных: начиная от уровней логгирования и заканчивая способами сохранения и передачи информации.
Результаты работы приложения могут быть экспортированы для последующей обработки в формат электронных таблиц Microsoft Open XML Excel (которыи основан на Microsoft Open XML SDK 2.5), для решения даннои задачи используется специализированная библиотека ClosedXML (https://github.com/ClosedXML/ClosedXML).
В качестве среды разработки была выбрана интегрированная IDE Microsoft Visual Studio 2015, поддерживающая полный цикл создания и
сопровождения решения, а также интегрированная со множеством онлаИн решении (менеджером используемых пакетов NuGet, системой контроля версии git и др.).
3.2. Объекты, классы и архитектура программного обеспечения для моделирования клеточного автомата с памятью
В приложении реализованы несколько базовых программных объектов, отвечающих за процесс моделирования. Основной базовый объект системы - это узел сети NetworkPoint, содержащий помимо своих координат и соседних узлов также объекты, моделирующие память накопленных взаимодействий. Основной справочник категории, называемый в системе «цвет», задан через базовый объект Base, отвечающий за единую точку управления справочниками цветов, названиями цветов и их количеством. За сохраненные результаты моделирования отвечает коллекция объектов ResultLines. В общем случае результаты проведенного исследования сохраняются в памяти при работе программы и могут быть отображены в виде графика непосредственно в процессе работы системы. Дополнительно данные моделирования можно экспортировать в фаил популярного формата электронных таблиц.
MatrixSettmgs
- CreateTable (changeColorMatrix ; Dictionary«: Color, DKtionary< Color, doubte>>)
- CreateTable Q
CreateLJibel (Row : intr Col : lot. Text : string, Ba<k : Color): Label
- Sjwe_aick (sendor : object, e : RoutedEwrrtArgs} Cto»_Clkk («rider : abject, e г RoutedEventArgs) LabeLMouseDoybleClick (sund-çr ; object, * :
SystërrvWindowsJn^
ShowGraph
■ Lines: Dictionary <Color, ChartPrimrtjVG> = null
- I rnibalrzeGraphs ()
- Window_dosing (sender : object, e : SybtemXQniiponentModel-CancelËventArgi)
IMetworkPoint
+ x: doubl« +■ y: doubl« + color; Color
+ filp: Ellipse = new Ellipse() Mçnnqryt.imtfô; Р1<М>плгу< Color, Int» = new
Diet]on31 y:Color. + MemorySize: Int + CurrènlStfrp; int = О
+ MemoryBank: Liste Dictionary <Oolor, |nt>> = new List<Dktionary<CQlor, int>>() + MemoryCurrent: Dictionary <Co1or, lnt> - now Dictionary< Color, l«t>{) + MemoryAII: Dictionary« Color, int> - new Dictionary <Color, Nnt>Q NeeddearMgnm; bpoj ^
NctworfcPointsi Liat^iHBtwafkPolnt> = new iUst< NetworkPoint>0 + Neighbors: L№<N«twofkPolnt> = Ust< NetworkPoint^O
+ bwl = fain
+ СШпвеСрИкНйМк; PtctiPnarv<Cgfor.
Dictionary* Color, dotihle*-' = new Dictionary Color,
OictionarycColor, dooble>>()
NeedHeighborjOiange: bool ~ tiruç
tomtom = mnv
- InitialijgChanqeColorMatrix f) ■ AddroCanvas (mainCanvas : Canvas) PrepareFoi.N«wN«twork fmainCanvas : Canraï
Clear Com mu nicattonsLines f mainCanvas : Canvas!
- ClearCunentMfrmQiy ()
■ ClearHemorv fmemorv : Dictionary<Color. tnt>) • CheckAndChangeCotor Q
■ ChetkAndChangeCotorFor MâtruîMovement ()
M «lin
graph: âhowGraph - null MaWxs MatftoSettlogs = null N: int = О
rnd: Random = new Randam(} с Color = Colors-AliceBlue
InibalizeKtenu Q
btndose_C(lik (-sender: object, e : FtoutedEvwiWrgs) btnCr«ate_Click (sender : object, e : RoutedEventArgs) ClearGraph ()
FlllMemeryBanfcBordiirValufcs () AddCommunication (node : NetworkPoint, n-etworfcPoint: NetwortPoint)
AddNadelnNetwark (maxNodes : int, nodesColarsUst : Dictionary«: Cofoir, int>, rest: int, i ; int. j: ini)
iudMin_VakieChanged (sender: object, c : R o uted PropertyCh angedEventArgs< do u We >) iudMax_VatueChanged (sender : object, e : Rq ut«dPropertyChangedEventArgs< double >)
btnShawChart_Click (sender; object, e ; RoutedEwntArgs)
Window_Clo5ing (sender : object, e : Systerrv.CdmponentNode-LCanceiEventAfgs)
- btnActian_Qick {sender : object, e : RoutedEventArgs) cl>MemoryClear_Cheiked {sender: objoct, « :
RqutedEventArgs)
• rbSAveExcel_aick {sendii : object, e : RoutedEventArgs)
- fbMoveSettlngs_Cl»clc (sender ; abject,, e ; RoutedEvintArgs)
cbRandamMove_Checked {sender ; object, e : Ro utedEventArgs)
■ ct>NojghboursChange_Chccked (sendor ; object, e : RautedEventArgs)
- fbRunSteps^dtcfc (sender: object, e ; RoutodEventArgsJ
Result Li lies
UfmrnMffnflFYr
Diction ary:Sy5tem.vyiradows-Media.Color. ChartPrimjtive>
new Diet о nary cSystemAVindows .Media-Color.
Cl4.tPrlfflitiv*>f)
• .тми?! .ркч.№йгу< wiBmi wiiwlff w8. wedHiCçhiri
ChartPrimitive> = new Dicti dп ary-'■ Sy stem. Wi ndom.Media.Color. ChartPrimrtive>
+ IniùalrzeLines П
* SmU^M*^ Ии.№лш.йгянй
- GetRowlnde* ¿c^llNamfr я
- GetColumnUareie fcetlMame : string); stnnq
- ? int); WM GetColomriNdme fürefix ; strina, column ; uinti; strliw
- CleafünesInMetnory f)
- gflWHnOTTçMOT^fY f)
- NormalizeLiri'esIpHüinPrY fi, jntl " SetlinesFfonnHemoirv f)
SliderWindow
■ TextfloK_KeyDowra (sender : object, e : KeyEventArgs) - Button_dick {sender : object, e : RoutedEventArgs)
Dictionary^ Col or. String >
L
л Colors .Red,''Красный" i
4- CalorsScheme: РдсЬопагу<;Color, sbring> = new
i-jÇoIors-Çreen., "Зеленый'1 У .-['CoiOr'inSkvBIU^.To-lvéOH" ^ .'[Со1ог5.в1ие,"Синий" >
.^Со1ог5.йгау.тСеоый(БелыйГ i
H.iüüliiuihts: Urtlmnarv-CDlM. Btuihb- = new
Рис. 1. Диаграмма классов приложения моделирования стохастического клеточного автомата с памятью
Сценарий! работы пользователя можно определить следующими шагами:
1. Задать настроики проводимого моделирования;
2. Провести один или несколько шагов моделирования;
3. Накопить получившиеся результаты;
4. Повторить до накопления необходимого объема данных;
5. Проанализировать и сохранить полученные результаты.
3.3. Описание функций программного обеспечения для моделирования стохастического клеточного автомата с памятью
На рисунке 2а показана панель управления разработанной средои моделирования клеточного автомата.
Панель имеет три закладки: "Управление приложением" "Настройка сети" и "Настройка
Клеточный граф
Управление приложением Настройки сети Настройки узлов 4 Закрыть приложение Шаг моделирования Число повторений 1 С
И Показать/Скрыть график ^^ Число шагов: !
Создать Загустить
СокранитьданныевЕме! :е,ь имитацию
Приложение Сеть Автоматеческоеисделировэние
узлов". В закладке "Настройка узлов", настраиваемыми параметрами является число узлов (ячеек) данного типа ("цвета") и размер памяти (см. рис 2б).
Закладка "Настройка сети" (см. рис. 2в) позволяет задавать наименьшее и наибольшее значение случайных связеи однои ячейки на каждом шаге эволюции клеточного автомата, а также выбирать сценарии поведения при переходе между состояниями. Сценарии I - ячейка после перехода в другое состояние ("цвет") сохраняет информацию о взаимодействиях на предыдущих шагах в соответствии с глубиной заданной памяти. Сценарии II - ячейка после перехода в новое состояние ("цвета") забывает накопленный опыт взаимодействия. Для выбора сценария на панели управления для этого имеется чекбокс "Забывать предыдущие взаимодействия при смене цвета".
- г? х
Рис. 2а. Панель среды моделирования клеточного автомата
Управление приложением
Настройки узлов
1 : Число узлов: 1 Число узлов: ' , п Число узлею: Щ1 Г] Ч цело улп- ЕН
ю : Размер памяти: ^ "г Размер памяти: '0 * к : Размер памяти : и : ■ Н ч> : ■ : ЕВ
Желтый ими ■ ■
Рис. 26. Функциональность закладки "Настройкаузлов"
Управление приложением Свазей минимум юг). 2 Связей максимум {до}: 5
Число связей на узел
Шааройки сети
Настройки узлов
- настроит мройтостей переда Промзводотъ случайные переходы в следующее состояние
Клетомный граф
^ Менять цеет при влиянии соседей и Забывать- Аредыэшие взаимодействия пей сьмне цвета
а*
Поведение узлов Поведение узлов и соседей
Рис. 2 в. Функциональность закладки "Настройка сети"
ц.1
Шаг моделирования
Сеть
Настройки вероятности перехода узла - □ X
УЗЕЛ \ Г Красны Оранже Желтый Зеленьи ГолубЫ Серый(1
кр™ 1 0 0 0 0 0 0 0 0
Оранжс С 1 0 0 0 С 0 0 0
Желтый С С ; 1 0 с С 0 0 0
3— (I 0 0 1 0 с с 0 0
Гелубоь с С 0 0 1 с 0 с 0
0 0 0 0 0 | 1 0 0 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0
Серы11{[ 0 0 0 0 0 0 0 0 1
Подтвердить Закрыть
Ш Изменение значен... — □ X 0
Подтвердить | Отменить
Рис. 2 г. Настройка матрицы вероятностей случайных переходов
Кроме этого, закладка "Настройка сети" позволяет настраивать матрицу вероятностей случайных переходов (это позволяет моделировать действие внешних факторов на переход между состояниями ячеек), для этого необходимо использовать функцию "Настройка вероятностей переходов" (см. рис. 2 г).
При настроике матрицы случайных переходов необходимо заполнить таблицу (см. рис. 2г). Для этого необходимо нажать кнопку "Настройка вероятностей переходов" (см. рис. 2г) и двойным кликом в выбраннои ячейке вызвать диалоговое окно, в котором вводится величина вероятности перехода (вводится числовое значение и нажимается кнопка "Подтвердить"). При корректировке таблицы можно выбирать ячейку и корректировать величину вероятности нажатием кнопки "Отменить". Приложение автоматически проверяет условие полноты вероятностей (сумма всех переходов по любои строке должна равняться единице) и в случае необходимости выдает сообщение об ошибке.
Если при моделировании необходимо учитывать только глубину памяти ячеек без внешнего воздействия, то производится следующий порядок деиствии:
1. В закладке "Настройка узлов" выставляется число узлов и размер их памяти;
2. В ячейках матрицы вероятностей случайных переходов выставляются все нули. В этом случае есть или нет отметка в чекбоксе "Производить случайные переходы в следующие состояния" на закладке "Настройка сети" роли не играет;
3. В чекбоксе "Менять цвет при влиянии соседеи" на закладке "Настройка сети" необходимо поставить отметку;
4. Наличие или отсутствие отметки в чекбоксе "Забывать предыдущие взаимодействия при смене цвета" на закладке "Настройка сети" влияет в данном случае только на то, как учитывается смена цвета при заданной глубине памяти.
Или можно провести моделирование другим путем:
1. В закладке "Настройка узлов" выставляется число узлов и размер их памяти.
2. В ячейках матрицы вероятностей случайных переходов выставляются значение вероятностей Но в чекбоксе "Производить случайные переходы в следующие состояния" на закладке "Настроика сети" отметку не делают.
3. В чекбоксе "Менять цвет при влиянии соседеи" на закладке "Настроика сети" необходимо поставить отметку.
4. Чекбокс "Забывать предыдущие взаимодействия при смене цвета" на закладке "Настроика сети" влияет только на то, как учитывается смена цвета при заданнои глубине памяти.
Если при моделировании необходимо учитывать только внешнее воздействие (матрицу переходов):
1. В закладке "Настроика узлов" выставляется число узлов, а размер их памяти устанавливается равным нулю или любым.
2. В ячейках матрицы вероятностей случайных переходов выставляются значение вероятностеи, а в чекбоксе "Производить случайные переходы в следующие состояния" на закладке "Настроика сети" ставится отметка.
3. В чекбоксе "Менять цвет при влиянии соседеи" на закладке "Настроика сети" отметку не ставят.
Если при моделировании необходимо учитывать и глубину памяти ячеек, и внешнее воздействия, то производится следующий порядок деиствии:
1. В закладке "Настроика узлов" выставляется число узлов и размер их памяти.
2. В ячейках матрицы вероятностей случайных переходов выставляются значение вероятностеи, а в чекбоксе "Производить случайные переходы в следующие состояния" на закладке "Настроика сети" ставится отметка.
3. В чекбоксе "Менять цвет при влиянии соседеи" на закладке "Настроика сети" необходимо поставить отметку.
4. Наличие или отсутствие отметки в чекбоксе "Забывать предыдущие взаимодействия при смене цвета" на закладке "Настроика сети" влияет в данном случае только на то, как учитывается смена цвета при заданнои глубине памяти.
Закладка "Управление приложением" (см. рис. 2д) позволяет осуществить построение сети (показано в левои части рисунка 2д, кнопка "Создать сеть"). Далее необходимо вызвать окно с графиком (нажатием кнопки "Показать/Скрыть график") и произвести моделирование (последовательным нажатием кнопки "Шаг моделирования"), в результате чего получается масштабируемый график, показанный в правои части рисунка 2д. Для дальнеишеи обработки данные могут быть экспортированы в Excel (кнопка "Сохранить данные в Excel").
Для реализации возможности сглаживания случайных ошибок при моделировании на закладке "Управление приложением" имеется
возможность реализации автоматического режима, при котором (после настройки параметров узлов, сети и выбора сценариев моделирования) устанавливаем число шагов работы клеточного автомата и число повторения циклов моделирования. Далее нажатием кнопки 'Запустить имитацию" начинаем моделирование.
Автомат проходит первьш цикл и получает для каждого шага число ячеек определенного типа, потом то же самое проводится для каждого следующего цикла. А затем осуществляется усреднение результатов по каждому типу ячеек для первого шага, второго шага и т.д. и выводится результат._
ь =
Управление приложением 41 Закрыть приложение I - ■ Показать/Скрыть график <fc£ Сохранить данные в Excel
Приложение
Клеточный граф
Настройки сети Настройки узлов
Шаг моделирования Ы Число повторений: 1
^^ Число шагов: |5
Создать Запустить
сеть имитацию
Сеть Автоматическое моделирование
Отображаемые данные ^ Серый(Белый)^рСиний Желтый
(»Черный Голубой Оранжевый
■^Фиолетовый ^Ьг Зеленый
Рис. 2 д. Функциональность закладки "Управление приложением"
4. Моделирование процессов с помощью стохастического клеточного автомата с памятью
4.1. Моделирование групповых процессов выбора на основе стохастического клеточного автомата с памятью, без учета внешнего воздействия
Для моделирования групповых процессов взаимного влияния с помощью стохастического клеточного автомата нами были приняты следующие допущения: продолжительность одного шага была принята равнои однои условной единице (день, неделя, месяц); в течение одного шага каждая ячейка клеточного автомата может иметь заданное в некотором диапазоне случаинои число связеи (в данном случае под связью следует понимать контакт, во время которого ячейки могут влиять друг на друга); для каждого типа ячеек задается глубина памяти, определяющая правило перехода; при моделировании можно рассмотреть различные сценарии поведения при переходе между состояниями клеточного автомата. С помощью созданного нами программного обеспечения было проведено моделирование поведения стохастических клеточных автоматов с различными наборами параметров, результаты которых были
экспортированы и обработаны в Excel (полученные результаты показаны в таблицах 1 - 2 (см. рис. 3 и 4). Моделирование показывает, что динамика изменения состояния имеет достаточно сложный вид.
В таблице 1 (на рисунках 3а - 3г) в графическом виде представлены результаты моделирования системы при различном среднем числе связеи, состоящей из одинакового числа ячеек трех типов: "красные" - 333 штуки с глубиной памяти 4 шага; "синие"- 333 штуки с глубиной памяти 5 шагов; "голубые"- 333 штуки с глубиной памяти 3 шага.
Полученные результаты показывают, что независимо от сценария перехода (с сохранением или не сохранением памяти о состояниях на предыдущих шагах после изменения "цвета" (состояния ячейки)) увеличение среднего числа связеи клеток автомата приводит к тому, что его стационарное состояние достигается за меньшее число шагов. Забывание информации о состояниях клетки на предыдущих шагах после перехода в новое состояние, наоборот, приводит к тому, что стационарное состояние клеточного автомата достигается за большее число шагов (можно попарно сравнить рисунки 3а и 3в, а также 3б и 3г).
Таблица 1. Моделирование поведения стохастического клеточного автомата при одинаковом числе ячеек, разной глубиной памяти и сценариями сохранения памяти о предыдущих взаимодействиях, после изменения состояния
После перехода в другое состояние ("цвет") ячейки сохраняют информацию о взаимодействиях на предыдущих шагах._
После перехода в другое состояние ("цвет") ячейки не сохраняют информацию о взаимодействиях на предыдущих шагах.__
1 23466 7 8 9 10 11
Ноглер шаге
Рис. 3а. Число связей ячейки на одном шаге от 2-х до 4-х _(среднее 3)_
0 10 11 12 13 14 15
Рис. 3в. Число связей ячейки на одном шаге от 2- х до 4-х _(среднее 3)_
Цвет Красный —*— Синий Голубой
О •-< I-1
7
Номер и
3 10 11 12 13 14 15
Рис. 3б. Число связей ячейки на одном шаге от 3-х до 7_ми (среднее 5)_
Рис. 3г. Число связей ячейки на одном шаге от 3-х до 7-ми (среднее 5)
Второи интересной задачей исследования поведения стохастического клеточного автомата является изучение влияния соотношения ячеек различного типа на характер наблюдаемых процессов. Ячейки клеточного автомата, обладающие большей глубиной памяти, в конце концов, могут становиться доминирующими. Однако доминирование ячеек определенного типа зависит не только от глубины памяти, но и от их первоначального соотношения.
В таблице 2 (на рисунках 4а - 4г) в графическом виде представлены результаты моделирования системы при одинаковом среднем числе связеи от 3-х до 7-ми, различном соотношении числа ячеек двух типов: "красные" и "голубые" при различных соотношениях глубины памяти.
Полученные результаты показывают, что в
зависимости от соотношения числа "красных" и "голубых" ячеек и независимо от сценария перехода (с сохранением или не сохранением памяти о состояниях на предыдущих шагах, после изменения "цвета" (состояния ячейки)) существует точка инверсии. Выше значения которой начинают "побеждать) ячейки с меньшей глубиной памяти (можно попарно сравнить рисунки 4а и 4б, а также 4в и 4г). При этом, чем больше различие между глубинои памяти, тем выше будет значение величины точки инверсии. При глубине памяти "красных" ячеек 4 шага, а "голубых" - 3 шага точка инверсии составляет примерно 0,445 (при сохранении памяти о состояниях на предыдущих шагах, после изменения "цвета"), и 0,435 (если память о состояниях на предыдущих шагах после изменения "цвета" не сохраняется).
Таблица 2. Моделирование поведения стохастического клеточного автомата, состоящего из ячеек двух типов при их различном числе, разным соотношением глубины памяти и сценариями её сохранения после изменения состояния
ячейки
После перехода в другое состояние ("цвет") ячейки сохраняют информацию о взаимодействиях на предыдущих шагах._
После перехода в другое состояние ("цвет") ячейки не сохраняют информацию о взаимодействиях на предыдущих шагах._
Цвет Красный Голубой
\ Л
/
1- < \
\
\
г
е 600
Цвет Красный Голубой
\
1 2 3 4 5 6 7 3 8 ю 11 12 13 14 15 16
Номер шага
Рис. 4а. Число ячеек "красные" - 380 (память 6 шагов); "голубые" - 620 (память 3 шага)
1 2 2 4 5
10 11 12 13 14 15 16
Рис. 4в. Число ячеек "красные" - 390 (память 6 шагов); _"голубые" - 610 (память 3 шага)_
г
£ 6СС
Цвет Краснь Голубо А
У
/
\ И V
г- \ \
/ \
1— ( г
1 2 3 4 5 6 7
9 10 11 12 13 14 15 16 17 1« 19 Я>
Номер шага
Рис. 4б. Число ячеек "красные" - 370 (память 6 шагов); _"голубые" - 630 (память 3 шага)_
1 2 3 4 5 6 7 8 0 10 11 12 13 14 15 16 17 1« 19 20 21 22 23 24 Номер шага
Рис. 4г. Число ячеек "красные" - 380 (память 6 шагов); "голубые" - 620 (память 3 шага)
При глубине памяти "красных" ячеек 6 шагов, а "голубых" - 3 шага точка инверсии составляет примерно 0,375 (при сохранении памяти о состояниях на предыдущих шагах, после изменения "цвета"), и 0,385 (если память о состояниях на предыдущих шагах, после изменения "цвета" не сохраняется).
4.2. Моделирование групповых процессов выбора на основе модели стохастического клеточного автомата с памятью с учетом внешнего воздействия
Помимо описания свойств памяти и стохастичности рассматриваемого класса клеточных автоматов нужно рассмотреть моделирование случайного действия внешних факторов, влияющих для каждого шага процесса на переход между различными (по своим свойствам) типами ячеек. Для этого нужно задать
матрицу вероятностей переходов, которая может описывать воздействие на переход внешних случайных факторов (например, влияние масмедиа). Возможно несколько сценариев учета этого влияния. Первыи сценарии: учитывается только матрица переходов между состояниями без учета глубины памяти ячеек определенного типа. Второи сценарии: учитывается матрица переходов и заданная глубина памяти ячеек клеточного автомата.
На рисунке 5 представлены результаты моделирования переходов клеточного автомата с учетом только внешних воздействий (без учета взаимодействия ячеек), описываемых матрицей вероятностей 1. Среднее число связеи однои ячейки клеточного автомата в данном случае роли не играет. Число ячеек автомата: "красные" - 540 штуки; "синие"- 340 штуки; "голубые"- 120 штуки.
Матрица 1. Величины вероятностей переходов за один шаг при действии случайных внешних факторов
Красныи Синии Голубои
Красньш 0,783 0,072 0,145
Синии 0,035 0,825 0,140
Голубои 0,200 0,270 0,530
Представленные на рисунке 5 данные показывают, что отсутствие взаимодействия ячеек клеточного автомата приводит к "гладкои" кинетике изменения состоянии (похожеи на экспоненциальное) с релаксацией к равновесным состояниям ("красное" - около 300; "синее" - около 480; "голубое" - около 220) при наличии небольшого случайного шума.
Наличие памяти о взаимодействиях между ячейками и ее влияние на переходы было рассмотрено ранее (см. рис. 3-4). Не менее интересным является моделирование совместного влияния внешнего воздействия (которое можно задать матрицей переходов) и взаимодействия между ячейками на динамику поведения клеточного автомата.
В таблице 3 (на рисунках 6а - 6г) в графическом виде представлены результаты моделирования поведения системы при различном среднем числе связеи ячеек, с учетом из взаимодействия и внешнего воздействия (с вероятностями переходов указанными в матрице 1). Автомат состоит из ячеек трех типов: "красные" - 540 штуки с глубинои памяти 5 шагов; "синие"- 340 штуки с глубинои памяти 4 шага; "голубые"- 120 штуки с глубинои памяти 3 шага.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Номер Шага
Рис. 5. Моделирование переходов клеточного автомата под влиянием только внешних факторов Представленные на рисунке 6 данные показывают, что совместные влияния внешнего воздействия (которое можно задать матрицей переходов 1) и взаимодействие между ячейками существенно усложняют динамику процессов. Если ячейки сохраняют информацию о взаимодействиях на предыдущих шагах после перехода в другое состояние ("цвет"), то ячейки, имеющие состояние, характеризующиеся как "красное", увеличивают свое число и начинают доминировать над ячейками других типов (см. рис. 6а, 6в и 5), имеющими меньшую ("синие" - 4 шага; "голубые" 3 шага) глубину памяти (вне зависимости от среднего числа связеи, приходящегося на одну ячейку). Хотя при этом только при учете внешнего воздействия (матрица 1) число "красных" ячеек должно было бы
уменьшиться.
Таблица 3. Моделирование поведения стохастического клеточного автомата, состоящего из ячеек трех типов при их различном числе, разной глубиной памяти, среднем числе связей одной ячейки и сценариях сохранения памяти о предыдущих взаимодействиях, после изменения состояния
После перехода в другое состояние ("цвет")
ячейки сохраняют информацию о взаимодействиях на предыдущих шагах.
После перехода в другое состояние ("цвет")
ячейки не сохраняют информацию о взаимодействиях на предыдущих шагах.
^ бОО -О о
Е 500 Я
Ч
£ «О "
о 300
5
Т 200 -
-■- Кра Сип Го;
СНЫН нй
убой
1-— Г
1 2 3 4 5 б78 9 10 11 12 Номер Шага
Рис. 6а. Среднее число связей одной ячейки от 3-х до 7-ми
Номер Шага
Рис. 6б. Среднее число связей одной ячейки от 3-х до 7-
ми
I 500 га Ч i£
в 400
■ Красный
—синим Голу&ой
V /
3 4 5 6
Номер Шага
9 10 11
Рис. 6в. Среднее число связей одной ячейки от 2-х до 4-х
Красный Синий
Голубой
10 11 12
Номер Шага
Рис. 6г. Среднее число связей одной ячейки от 2-х до 4-х
Таким образом, можно сделать вывод, что 5491.Мт!#роШ). Во избежание путаницы следует
влияние внешнего воздействия (например, посредством средств массовой пропаганды) может в значительной степени быть уменьшено за счет групповои поддержки (членство в определенной группе оказывается сильнее внешнего воздействия).
Если после перехода в другое состояние ("цвет") ячейки не сохраняют информацию о взаимодействиях на предыдущих шагах (например, группа с неустойчивыми связями), то групповое воздействие при взаимодействии ячеек снижается, но, тем не менее, остается доминирующим (см. рис. 6б, 6г и 5).
Заключение
Анализ модели стохастических клеточных автоматов с памятью показывает, что динамика изменения состоянии в таких системах имеет очень сложньш и интересный характер, требующии дальнейшего изучения, а сами подобные объекты можно отнести к новому классу клеточных автоматов.
Модель стохастических клеточных автоматов с памятью может быть применена для описания избирательной кампании Трамп-Клинтон. Учитывая незначительный характер влияния среднего числа связеи, приходящихся на одну ячеику, на процессы переходов при смене состоянии, вызванные взаимодействием ячеек между собои (было рассмотрено ранее), среднее число связеи любои ячейки клеточного автомата на каждом шагу процесса возьмем равным от 3-х до 7-ми. Это примерно соответствует числу обсуждении политических тем в течение одного месяца данным человеком с другими.
На рисунке 7а представлены результаты опроса предпочтении избирателей, проводившегося в США на протяжении 500 днеи, с 1 июля 2015 года по 7 ноября 2016 года во время президентской кампании 2016 года (данные взяты с ресурса: http://www.realclearpolitics.com/epolls/2016/presid ent/us/general election trump vs clinton-
заметить, что представленные на рисунке 6а данные относятся к разным масштабным шкалам. Данные для Клинтон и Трампа следует относить к левои шкале ординат (вертикальная шкала), а данные по неопределившимся избирателям к правои шкале ординат. В данном случае мы не будем обсуждать особенности избирательной системы США, в которой окончательное решение остается за коллегией выборщиков, а победитель в любом из штатов получает в конечном итоге голоса всех выборщиков. Однако заметим, что в абсолютных цифрах Клинтон в целом по США набрала на несколько миллионов голосов больше, чем Трамп.
Представленные на рисунке 6а данные имеют трендовую (нисходящую и восходящую базовые линии) и колебательную составляющие. Для эффективного анализа колебании и определения времен изменения взглядов избирателей необходимо разделить тренд и колебания, без потери существенной информации о процессе. Стандартным методом для этого часто является разложением в ряд Фурье. Однако его эффективное применение ограничено в силу того, что механизм формирования колебании представляет собои суперпозицию гармонических колебании, в то время как реальные нелинейные процессы по механизмам их формирования могут не соответствовать этому условию. Несоответствие исследуемого процесса
гармоническим колебаниям компенсируется в спектральном анализе просто увеличением числа гармонических компонент, что только еще больше затрудняет интерпретацию получаемых результатов. В результате разложение в ряд Фурье может давать значимую систематическую ошибку из-за несоответствия методов обработки свойствам реальных данных.
При анализе социальных процессов использование метода почти-периодических функции является более предпочтительным, чем традиционные методы гармонического анализа,
основанные на Фурье-преобразованиях. Это объясняется целым рядом причин, основной из которых является наличие в социальных процессах человеческого фактора, играющего существенную роль, что приводит к нечеткости, неопределенности и недетерминированности характеристик процессов. Но, с другои стороны, наблюдаемые данные, представленные на рисунке 6а, явно показывают существование колебании в предпочтении избирателей Все это хорошо согласуется с идеями, заложенными в методику использования почти-периодических функции [7].
Поскольку величина почти-периода (которую можно определить по данным, представленным на рис. 7а) в колебаниях настроении избирателей Трампа и неопределившихся составляла 86 днеи, а для избирателей Хиллари Клинтон наблюдалось два почти - периода в 50 и 86 днеи, то глубину памяти избирателей Хиллари Клинтон примем равным одному шагу (величина которого составляет 50 днеи), а избирателей Трампа и неопределившихся двум шагам (т.к. почти-период Клинтон меньше). Длительность одного шага примем равнои 50 днеи, а длительность всеи 500 дневнои избирательной кампании составит 10 шагов моделирования.
Вероятности переходов между состояниями под действием внешних факторов на каждом шаге работы клеточного автомата, которые были приняты для моделирования, представлены в
55
Рис. 7а. Предпочтения избирателей США во время президентской кампании 2016 г (Трамп, Хиллари и неопределившиеся с выбором избиратели)
матрице 2. Начальное число ячеек, отдающих предпочтение за Хиллари Клинтон (обозначим их как "красные") согласно наблюдаемым данным (см. рис. 7а) примем равным 54% от общего количества; за Дональда Трампа 34% (обозначим их как "синие"); не определившихся 12% (обозначим их как "голубые").
Матрица 2. Величины вероятностей переходов за один шаг при действии случайных внешних факторов для избирательной кампании Трамп - Клинтон
Красныйй Синий Голубой
Красный 0,765 0,035 0,200
Синий 0,072 0,768 0,160
Голубой 0,300 0,250 0,450
На рисунке 7б представлены результаты моделирования с приведенным выше набором параметров, матрицей 2 переходов между состояниями и без сохранения ячеикои информации о взаимодействиях с другими ячейками на предыдущих шагах, после перехода в новое состояние.
Результаты моделирования описанного примера (учитывая масштаб рисунков 7а и 7б) показывают, что стохастический клеточныи автомат при соответствующем подборе параметров могут хорошо согласовываться с данными, наблюдаемыми в ходе избирательной кампании данных.
600
О 2DD
5
s т
100
с
12 3 4 56 7«9Ю
Номер Шага
Рис. 7б. Моделирование предпочтений избирателей США
во время президентской кампании 2016 г (Трамп, Хиллари и неопределившиеся с выбором избиратели) с помощью стохастического клеточного автомата
Литература
1. Hay, J., Flynn, D. How external environment and internal structure change the behavior of discrete systems. Complex Systems., 2016, 25 (1), pp. 39-49.
2. Hay, J., Flynn, D. The effect of network structure on individual behavior. Complex Systems., 2014, 23 (4), pp. 295-311.
3. Wang, A., Wu, W., Chen, J. Social network rumors spread model based on cellular automata., 2014, Proceedings - 2014 10th International Conference on Mobile Ad-Hoc and Sensor Networks, MSN 2014.
4. Li, J., Chen, Z., Qin, T. Document Using cellular automata to model evolutionary dynamics of social network. IET Conference Publications, 2013(644 CP), pp. 200-205.
5. Zimbres, R.A., de Oliveira, P.P.B. Dynamics of Quality Perception in a Social Network: A Cellular Automaton Based Model in Aesthetics Services. Electronic Notes in Theoretical Computer Science, 2009, 252, pp. 157-180.
6. Ding, J., Li, Q., Li, Z. Social conformity and price fluctuation in artificial stock market. Proceedings - 2008 Pacific-Asia Workshop on Computational Intelligence and Industrial Application, PACIIA 2008.
7. Б. М. Левитан. Почти - периодические функции., М., 1953.
References
1. Hay, J., Flynn, D. How external environment and internal structure change the behavior of discrete systems. Complex Systems., 2016, 25 (1), pp. 39-49.
2. Hay, J., Flynn, D. The effect of network structure on individual behavior. Complex Systems., 2014, 23 (4), pp. 295-311.
3. Wang, A., Wu, W., Chen, J. Social network rumors spread model based on cellular automata., 2014, Proceedings - 2014 10th International Conference on Mobile Ad-Hoc and Sensor Networks, MSN 2014.
4. Li, J., Chen, Z., Qin, T. Document Using cellular automata to model evolutionary dynamics of social network. IET Conference Publications, 2013(644 CP), pp. 200-205.
5. Zimbres, R.A., de Oliveira, P.P.B. Dynamics of Quality Perception in a Social Network: A Cellular Automaton Based Model in Aesthetics Services. Electronic Notes in Theoretical Computer Science, 2009, 252, pp. 157-180.
6. Ding, J., Li, Q., Li, Z. Social conformity and price fluctuation in artificial stock market. Proceedings - 2008 Pacific-Asia Workshop on Computational Intelligence and Industrial Application, PACIIA 2008.
7. B.M. Levitan, Pochti periodicheckie functhii, M., 1953.
Поступила: 26.06.2017
Сведения об авторах:
Алёшкин Антон Сергеевич, кандидат технических наук, доцент кафедры автоматизированных систем управления института комплексной безопасности и специального приборостроения, Московский технологически университет МИРЭА, antony@ testor . ru: Обухова Анна Гуламовна, аспирант кафедры автоматизированных систем управления института комплексной безопасности и специального приборостроения, Московский технологический университет МИРЭА, [email protected]: Жуков Дмитрий Олегович, доктор технических наук, профессор, заместитель директора по научнои работе института комплексной безопасности и специального приборостроения, Московский технологически университет МИРЭА, [email protected].
Note on the authors:
Alyoshkin Anton S., Candidate of technical sciences, Associate Professor of the Department of Automated Control Systems of the Institute of Comprehensive Security and Special Instrumentation, Moscow Technological University MIREA, [email protected]: Obukhova Anna G., Postgraduate Student of the Department of Automated Control Systems of the Institute of Comprehensive Security and Special Instrumentation, Moscow Technological University MIREA, [email protected]: Zhukov Dmitriy O., doctor of technical sciences, professor, Deputy Director for Research of The Institute of Comprehensive Security and Special Instrumentation, Moscow Technological University MIREA, [email protected].