Генерация и исследование коммуникационных протоколов с помощью nk-автоматов и …

Дата подачи статьи: 01.01.1970 Статья опубликована в выпуске журнала № 4 за 2025 год.Аннотация:Abstract: Авторы: Кольчугина Е.А. (kea@pnzgu.ru) — Пензенский государственный университет (профессор кафедры математического обеспечения и применения ЭВМ), г. Пенза, Россия, доктор технических наук, Стежка В.А. () — Количество просмотров: 7 Генерация и исследование коммуникационных протоколов с помощью nk-автоматов и их модификаций DOI: 10.15827/0236-235X.152. Статья опубликована в выпуске журнала № 4 за 2025 год. Аннотация Авторы Кольчугина Е.А. (kea@pnzgu.ru) — Пензенский государственный университет (профессор кафедры математического обеспечения и применения ЭВМ), г. Пенза, Россия, доктор технических наук, Стежка В.А. () — Размер шрифта: Шрифт: Ссылка скопирована! Введение. Повсеместное внедрение интеллектуальных вычислительных устройств, разви- тие сетевых технологий и, в частности, концепции Интернета вещей актуализирует проблемы и задачи, связанные с обеспечением слаженного взаимодействия или, в минимальном вари- анте, бесконфликтного сосуществования множества устройств различной сложности и степени интеллектуальности, созданных разными производителями в разные годы и в соответствии с отличными стандартами. Подразумевается, что современные интеллектуальные устройства должны оснащаться сенсорами и средствами коммуникации, что позволяет им функционировать не изолированно, а в составе некой экосистемы, включающей в себя и другие подобные им устройства,  с которыми необходимо взаимодействовать. То есть упомянутые устройства изначально ориентированы на общение как с реальным внешним миром, так и с виртуальным, при этом их языки общения различаются. Для обеспечения слаженной безопасной работы интеллектуальных устройств необходимо наделить их спо- собностями к взаимодействию и согласованию своих действий, что подразумевает способность договариваться. Данное свойство важно для обеспечения обратной совместимости ус- тройств и продления срока их службы: развитие языков и протоколов общения не должно исключать из работы уже функционирующие устройства, использующие более старые языки и протоколы. В современной науке эта проблематика соответствует направлению M2M (Machine-to-Ma- chine Communications) [1, 2] как ответвлению ИИ. Одним из наиболее известных решений  в этой области является использование протокола MQTT [3, 4], предполагающего организацию взаимодействия устройств с помощью брокеров. Такая концепция имеет следующие недостатки: – возрастание сложности алгоритмов брокера в связи с увеличением количества и разнообразия устройств, при этом придется учитывать все большее количество возможных ситуаций и частных случаев, поэтому для реализации брокеров потребуются высокопроизводитель- ные вычислительные системы, хранилища данных существенного объема и средства связи  с высокой пропускной способностью; – уязвимость к отказам – недостатком любых систем с централизованным управлением и логикой является наличие уязвимой точки  в виде центра управления. Другим, диаметрально противоположным подходом к решению указанной проблемы обеспечения взаимодействия множества коммуницирующих интеллектуальных устройств может стать отказ от централизации и наделение устройств способностью обучаться путем ос- воения языков и протоколов других устройств. Способность к обучению как к генерации новых логических структур прямо связана с самоорганизацией. Наиболее популярными примерами самоорганизующихся систем в информатике служат нейронные сети и мультиагентные системы. В случае последних самоорганизация осуществляется через постепенную подстройку параметров, регулирующих поведение роботов-агентов, как правило, реализованных программно. Вследствие чего формируется слаженное коллективное (социальное) поведение аген- тов вплоть до формирования и использования агентами эмпатии [5]. Подробный обзор и анализ имеющихся платформ для мультиагентных систем приведен в [6]. Нейронные сети также демонстрируют формирование слаженных вычислительных структур, которые все шире используются для решения практически важных задач благодаря сонастройке весовых коэффициентов [7–9]. Однако перечень моделей самоорганизующихся систем не ограничивается только моделями нейросетей и коллективного поведения агентов. Существуют и другие, которые демонстрируют способность к самоорганизации и, в частности, к образованию вычислительных структур с упорядоченным поведением. Эти модели менее сложные, а потому более подходящие для реализации в составе ПО небольших вычислительных устройств, поскольку не перегружают их функционально.  К таким моделям можно отнести модель NK-автоматов Кауффмана [10] и ее модификации. В данной работе ставится цель разработки модификации NK-автомата, которая позволяет одной из сторон клиент-серверного взаимодействия обучаться, анализируя сообщения, генерируемые противоположной стороной. Таким образом, фактически происходит обучение новому протоколу. В качестве примера для демон- страции возможностей NK-автоматной модели был взят широко известный протокол TCP с не- сложной логической и процедурной характеристиками. Возможности, которые предоставляет предлагаемый в настоящей работе метод обучения на базе модификации NK-автоматной модели, можно охарактеризовать как способности к генерации и выполнению обратного инжиниринга протоколов. Предыдущие исследования в области  NK-автоматов и их модификаций Модель NK-автомата была предложена  С.А. Кауффманом [10] с целью исследования генной экспрессии и взаимовлияния генов друг на друга. Она включает в себя N элементов, каждый из которых соединен в среднем с другими K элементами. Возможное среднее число связей определяется как 1 £ K £ N. Каждый из элементов реализует какую-либо несложную булеву функцию, таким образом, значений у каж- дой функции может быть только два: 0 или 1. NK-автомат рассматривается как динамическая система (или модель динамической системы), чьи состояния изменяются во времени. Его состояние описывается перечислением значений его выходов; время рассматривается как дискретное; N и K являются двумя параметрами, которые полностью определяют харак- тер поведения автомата в пространстве состояний, вне зависимости от того, какие именно функции реализуются элементами. Поскольку входы и выходы NK-автомата замкнуты друг на друга, его состояния со временем начиняют повторяться. Последовательности состояний, начинающиеся и завершающиеся повторяющимися состояниями, представляют собой циклы. Если циклы повторения состояний устойчивы, это можно рассматривать как выход на аттрактор. Особыми, критическими значениями с точки зрения смены характера поведения NK-авто- мата являются значения K = 1, 2, 5, N. Для случая K = 1 характерно большое количество циклов малой длины, поведение автомата характеризуется как упорядоченное. При K = N длина циклов будет настолько большой, что поведение автомата можно рассматривать как максимально неупорядоченное, хаотическое, при этом возможное количество циклов будет небольшим. В случае K = 5 (N £ K £ 5) поведение автомата также близко к стохастическому,  и чем большим становится значение K, тем больше длины циклов и меньше их самих. Наиболее интересным является поведение при K = 2, которое можно определить как пове- дение на границе порядка и хаоса, сопровождающееся выходом на аттрактор. При K = 2 медиа- на длины цикла и количество циклов определяются как . Это поведение рассматривается как фазовый переход от хаоса к порядку или как самоорганизация поведения автомата. Известно, что NK-автоматы представляют собой несложные по построению модели, демонстрирующие самоорганизацию. Их исследования нашли свое продолжение и в виде многочисленных модификаций исходного NK-ав- томата, например, [11, 12]. С обзором таких  модификаций можно ознакомиться в [13]. Ос- тановимся на двух модификациях, введенных  в [14–16], так как они предназначены для использования именно в компьютерных науках. Изначально NK-автоматы были предложе- ны как инструмент для исследований в области генетики с целью моделирования эпистаза  и регуляции экспрессии генов. Однако сейчас эти модели применяются и в компьютерных науках, например, в области искусственной жиз- ни. Работа [14] также относится к этой сфере, но по существу затрагивает исследование, доказательство и проектирование свойств ПО. В работе [14] была предложена модификация NK-автомата, получившая название NK-подобного. Этот автомат моделирует структуру самоорганизующегося программного агента – цифрового организма – и отличается от классического следующими свойствами: – основное множество элементов автомата разбивается на два непересекающихся подмножества, одно из которых моделирует множество семантически целостных фрагментов програм- много кода, а другое – глобальные переменные, входящие в состав программы, модифицируемые в ходе выполнения фрагментов кода; – в структуре автомата выделяется также управляющий элемент, задающий программу работы автомата (порядок активации элементов). Было показано, что такой автомат соответству- ет классическому NK-автомату с K = 2,33(3) [14], то есть он функционирует на границе порядка и хаоса. Это моделирует самоорганизацию поведения, то есть формирование алгоритма поведе- ния программного агента (цифрового организма). В работах [15, 16] предложена и исследована модификация NK-автомата Кауффмана, предназначенная для исследования поведения мультиагентной системы (в свою очередь имитирующей систему управления) в аспектах перехода к хаосу и функционирования в его усло- виях. Отличительным свойством такой моди- фикации является наличие параметра U, который определяет процент сходства состояний, позволяющий рассматривать их как неразличимые (идентичные). Обе модификации NK-автомата из [14–16] ориентированы на моделирование активно действующих сущностей: отдельных програм- мных агентов или мультиагентных сообществ. В отличие от этих модификаций в предлагаемом исследовании с помощью NK-автоматов моделируются пассивные сущности: структуры данных, представляющие пакеты TCP. В настоящей работе продолжено развитие идей, изложенных в [17]. Метод исследования Будем полагать, что имеется два абстрактных независимых устройства A и B, взаимодействующих посредством Интернета. Устройство A может взаимодействовать по протоколу TCP, но не способно к обучению и изменению алгоритма взаимодействия. Устройство B, на- против, изначально не может взаимодействовать по протоколу TCP, но способно к обучению как освоению нового протокола. Цель исследования состоит в том, чтобы предложить механизм, позволяющий устройству B освоить протокол взаимодействия TCP. При этом в качестве материала и критерия обучения выступают TCP-пакеты, генерируемые устройством A в ответ на транзакции устройства B. Протокол TCP был выбран за свою простоту, элегантность и эффективность используемых им решений. Аналогичные рассуждения могли быть выполнены и для других протоколов. Любой сетевой протокол включает в себя две составляющие: логическую и процедурную характеристики. Логическая характеристика пред- ставляет собой набор форматов структур данных (кадров, пакетов, сообщений, команд и т.п.), распознаваемых и генерируемых протоколом. Процедурная характеристика задает алгоритмическую, поведенческую составляющую как алгоритм реакции на входящие структуры данных и генерации собственных в ответ. Если проводить аналогии с естественными языками, то логическая характеристика определяет словарный состав языка и его синтаксис, а процедурная – речевой этикет и семантику. Логическая и процедурная характеристики проявляются во взаимной связи: алгоритм, реализуемый процедурной характеристикой, опре- деляет генерируемые исходящие структуры данных, в то же время входящие структуры дан- ных инициируют переход алгоритма на следующий шаг или этап. Таким образом, воздействуя на формат и содержимое передаваемых пакетов на одной стороне TCP-соединения, можно управлять выпол- нением алгоритма TCP-сеанса на другой. Большую роль в управлении ходом TCP-сеанса  играют управляющие биты, входящие в состав TCP-пакета. Их комбинации позволяют подтверждать получение данных, инициировать начало нового сеанса, анонсировать разъединение. Краеугольный стандарт протокола TCP,  а именно RFC-793 (https://datatracker.ietf.org/ doc/html/rfc793), определяет в составе пакета TCP шесть управляющих битов (RST, FIN, SYN, PSH, ACK, URG). В настоящее время их уже девять (с течением времени были добавлены еще три: CWR, ECE, NS). Значения уп- равляющих битов определяют как интерпретацию пакета, так и текущую фазу сеанса TCP: установление соединения, обмен данными (прием и передача данных), закрытие соединения. Таким образом, управление ходом сеанса TCP может быть реализовано через манипулирование значениями управляющих битов. Поскольку каждый бит имеет только два значения, его можно рассматривать как выход логического элемента или результат вычисления логической функции. Это может быть одна из следующих случайно выбираемых таблично заданных функций: И, ИЛИ, исключающее ИЛИ, И-НЕ, ИЛИ-НЕ, НЕ-ИЛИ. Значения управляющих битов в TCP задаются не произвольно, а во взаимосвязи со значениями других логических битов, образуя совместно с ними семантически значимую последовательность, характеризующую фазу и текущее состояние сеанса TCP. Стратегия соединения логических элементов такова: каждый элемент сопрягается с K случайными элементами, кроме самого себя. Так мы получаем систему из N логических элемен- тов, связанных друг с другом в среднем K свя- зями, то есть NK-автомат. Его текущее состояние будет представлять собой значимый фрагмент пакета TCP, который должен быть адекватен  по отношению к текущему состоянию сеанса  и восприниматься таковым противоположной стороной TCP-взаимодействия. Следовательно, обучение устройства B протоколу, реализуемому устройством A, сводится к формированию одного или нескольких NK-автоматов, способных генерировать структуры данных или TCP-пакеты, образующие адекватные семантически значимые последо- вательности, распознаваемые в качестве таковых устройством A. Сами структуры данных или их значимые фрагменты кодируются битовыми последовательностями, представляющими собой текущие состояния NK-автомата или набора таких автоматов. На рисунке 1 приведена структура пакета TCP как битовой последовательности. В незакрашенных ячейках размещены биты, представ- ленные в составе формирующегося NK-авто- мата, серым цветом выделены поля, значения которых должны быть однозначно определены, в противном случае пакет не будет принят противоположной стороной. Каждый пакет TCP включает следующее: – заголовок, содержащий набор полей определяемых протоколом, в зависимости от которых происходит смена состояния сеанса TCP (установка соединения, передача данных, завер- шение соединения); – опции, которые являются необязательной частью пакета и служат для расширения возможностей протокола, например, чтобы определить максимальный размер пакета или масшта- бирование размера окна до величины, большей чем 216; – данные, содержащие полезную передаваемую информацию (для передачи данных соединение должно быть уже установлено). Для целей исследования блок опций не представляет интереса и будет игнорироваться. Блок с данными может содержать контрольную фразу, которая в случае успешной передачи будет возвращена TCP-эхо-сервером, что будет являться маркером осуществления информационного обмена. Блок с заголовком представляет наибольший интерес, именно он и будет генерироваться. А наличие блока с данными в сегменте TCP будет определяться управляющим флагом PSH. В заголовке TCP-пакета содержатся поля, значения которых на протяжении всего сеанса могут принимать лишь единственное верное значение, жестко задаваемое или вычисляемое по строго определенному алгоритму. Это порт назначения, длина заголовка, а также контрольная сумма, вычисляемая как 16-битное дополнение к сумме всех 16-битных слов заголовка. Остальные поля – порт источника, порядковый номер, номер подтверждения, набор флагов, размер окна, указатель важности и резерв – зависят от состояния сеанса TCP (от значений управляющих флагов), поэтому их будет генерировать NK-автомат. Особую важность имеет комбинация значений управляющих фла- гов, определяющая фазу сеанса и порядок взаимодействия клиента и сервера. Минимальный размер заголовка TCP-пакета составляет 160 бит (20 байт), размер полей,  которые не будут генерироваться с помощью NK-автомата, составляет 36 бит. Таким образом, NK-автомат будет генерировать 124 бита, из которых сформируется пакет TCP. Однако если будет установлен флаг PSH, к сформированному с помощью автомата заголовку будут добавлены и контрольные данные. Формирование NK-автомата, способного генерировать пакеты TCP в требуемой последовательности, будет происходить эволюционным путем. При этом при выходе траектории смены состояний автомата на аттрактор случайным образом будет изменяться функция произвольно выбранного узла, как это было предложено в [15, 16]. В дальнейшем будем обозначать NK-автомат, генерирующий пакеты TCP и воспроизводящий логику TCP-сеанса, как TCP-NK-автомат. Описание экспериментов В процессе экспериментальной проверки предложенного метода исследования разработана программа protogen (генератор протоколов). Это клиентская программа на языке С++, автоматически генерирующая TCP-пакеты с по- мощью TCP-NK-автомата с целью передачи данных на сервер. В роли сервера, в паре с которым должна функционировать программа protogen, использовался tcpbin.com – публичный эхо-сервер TCP, подходящий для целей тестирования. Таким образом, программа protogen моделирует работу устройства B, в то время как сервер tcpbin.com моделирует работу ус- тройства A. Задача программы protogen состояла в том, чтобы экспериментально, через формирование подходящего TCP-NK-автомата, построить пра- вильную с точки зрения протокола TCP последовательность пакетов, необходимую для передачи полезных данных с получением под- тверждения от сервера. Трудность этой задачи заключается в том, что для TCP требуется предварительная установка соединения, так называемая процедура тройного рукопожатия: сначала отправляется пакет с управляющим флагом SYN, а потом пакет с флагом ACK, после чего сеанс переходит в режим установленного соединения, и открывается возможность передавать данные пользователя. Отправляя очередной пакет в адрес сервера, утилита protogen в течение 10 секунд ждет  ответа от сервера. При его получении отправленный пакет TCP рассматривается как правильный и добавляется в цепочку пакетов.  В дальнейшем при добавлении в цепочку нового TCP-пакета только предшествующие ему в цепочке правильные пакеты будут предварительно отправляться в адрес сервера. Все построенные цепочки хранятся в виде ориентированных графов, описывающих последовательности логически связанных пакетов. Будем называть их графами последовательностей. Каждый такой граф представляет структуру, хранящую сгенерированные автоматами 124-битные блоки данных, на основе которых могут быть построены уже полные варианты пакетов. В начале каждого эксперимента граф пуст, в дальнейшем каждый найденный правильный пакет помещается в структуру, представляющую граф, в качестве его вершины. Постепенно граф последовательностей накапливает цепочки пакетов в целях формирования адекватной последовательности заголовков, позволяющей установить соединение и передать данные. В соответствии с процедурной составляющей протокола TCP, для успешной передачи полезных данных необходимо передать как минимум два пакета. В одном из них должен содержаться установленный бит SYN,  а в другом – PSH и ACK. Таким образом, граф последовательностей накапливает цепочки заголовков пакетов, стремясь найти их правильную комбинацию. Фактически он представляет собой дерево, каждый узел которого может иметь любое неограниченно большое количество потомков. Примеры графов последовательностей приведены на рисунке 2, где для каждой вершины каждого графа представлены только значе- ния управляющих флагов, так как они имеют наибольшее влияние на результат. Вершины  с усиленным контуром соответствуют пакетам, на которые приходили ответы от сервера. В исходном состоянии каждый граф последовательностей содержит только один корневой элемент. С помощью усиления контура и заливки выделен один из графов последовательностей, описывающий корректное начало TCP-сеанса, которое продолжается фазой передачи данных. Алгоритм работы программы protogen состоит из следующих шагов. Шаг 1: выбор цепочки пакетов. Случайным образом выбирается узел из графа последовательностей. Если граф пуст, шаг пропускается. Шаг 2: генерация блока данных. На каждом шаге своей работы TCP-NK-автомат генерирует 124 бита данных, из которых может быть сформирован заголовок TCP-пакета. Обязатель- ное условие для завершения этого шага состоит в уникальности полученного варианта заполнения заголовка. Если такой вариант уже имеется в графе последовательностей, текущий шаг повторяется. Если происходит достижение аттрак- тора, то есть присутствует цикл повтора пакетов, выполняется мутация автомата. Шаг 3: обмен пакетами с сервером. Из выбранной цепочки графа последовательностей отправляются все правильные пакеты, уже присутствовавшие в нем ранее, а в завершение отправляется пакет, сгенерированный на пре- дыдущем шаге. Шаг 4: обработка ответа. Для каждого отправленного пакета производится ожидание ответа. Если ответ от сервера приходит, то пакет помечается как правильный, и в граф последовательностей добавляется соответствующий ему узел. Дополнительно в составе ответа проверяется наличие полезных данных и выполняется их анализ. Если данные соответствуют контрольным данным, которые требовалось передать на сервер, это означает, что решение найдено, цель достигнута: TCP-NK-автомат смог воспроизвести фазы установки соединения и обмена данными протокола TCP. В этом случае выполнение алгоритма завершается.  Во всех других случаях переходим к шагу 1. После того как последовательность пакетов информационного обмена выявлена, обучившаяся программа получает возможность выполнять передачу другой полезной информации. Результаты исследований  и их обсуждение Реализованный алгоритм был задействован при проведении серии экспериментов с использованием программы protogen и сервера tcpbin.com. Каждый эксперимент в серии продолжался в течение 24 часов. При этом утилита protogen искала правильные последовательности TCP-пакетов для передачи данных на сервер при различных значениях K = 1, 2, 3, 4, 5, 6, 7, 10, 25, 50, 75, 100, 110, 123. Если в ходе экспериментов за 30 минут не удавалось найти решение, то есть подобрать корректную последовательность пакетов, граф последователь- ностей очищался, генерировался новый TCP- NK-автомат, и поиск начинался заново. Итоги экспериментов сведены в таблицу, в скобках указано количество найденных успешных решений. На основе таблицы был построен график (рис. 3), который иллюстрирует зависимость количества найденных успешных решений от значения величины K. К результатам экспериментов также относится и множество построенных графов последовательностей, приведенных на рисунке 2,  в том числе и случай графа, описывающего кор- ректный TCP-сеанс. Анализ приведенных результатов позволяет утверждать следующее: – динамическая эволюционная генерация TCP-NK-автоматов, обеспечивающих генерацию цепочек пакетов, корректных с точки зрения протокола TCP, действительно происходит, то есть исходное предположение, выдвинутое в данной статье, подтвердилось, и обучение устройств новым протоколам с нуля возможно при использовании NK-автоматов и их модификаций; – наибольший процент успеха наблюдается в случае, когда K = 6, хотя, как отмечалось выше, для классических NK-автоматов значе- ние K = 5 является одним из критических, при нем поведение автоматов начинает соответствовать хаотическому. Второй вывод наводит на размышления  о причине наблюдаемого эффекта. Изначально NK-автоматы использовались именно для иссле- дования переходов от порядка к хаосу и явлений на границе между ними. В случае крити- ческого значения K = 2 поведение системы, очевидно, более тяготеет к упорядоченному, но это ограничивает способность автомата к генерации новых структур. С другой стороны, при K ≥ 5 поведение автомата тяготеет к полностью стохастическому и неупорядоченному, но новые структуры генерируются чаще. Отметим также, что согласно таблице при K = 5 на поиск решения затрачивается наименьшее время. Вероятно, что именно на границе полностью хаотического поведения при K = 6 способность TCP-NK-автоматов к генерации новых структур оказывается ярко выражена, но при этом еще сохраняется возможность получения упорядоченных, семантически значимых решений. Возможно также, что при K = 6 удается выйти из ловушки локального оптимума и достичь глобального максимума, чего не происходит при K = 5 и меньших значениях. Эти предположения требуют дальнейших исследований и обоснований. Выводы и направление  дальнейших исследований В настоящей работе было показано, что для обеспечения слаженной работы интеллектуальных устройств, взаимодействующих друг  с другом в составе некоторой единой системы, не обязательно использовать централизован- ный подход. Следовательно, появляется альтернатива применению брокеров и становится возможным избежать недостатков, связанных  с их использованием: все возрастающей сложности, ресурсоемкости, уязвимости в отношении отказов. Слаженность работы может достигаться  и при децентрализованном подходе при условии, что устройства, входящие в состав системы, способны взаимодействовать друг с другом  и приспосабливаться друг к другу. Такая сонастройка возможна в случае взаимного обучения, когда устройства способны обучаться протоколам взаимодействия друг с другом. При этом в ходе процессов самоорганизации дол- жны формироваться поведенческие (алгоритми- ческие) структуры, обеспечивающие требуемое поведение обучающихся устройств. Вопрос  о выявлении семантики, стоящей за данными алгоритмическими структурами, остается открытым, и не обсуждался в данном исследовании: принято достаточным, что выявленные структуры рассматриваются устройством A как адекватные и семантически значимые. В данном исследовании показано, что для обеспечения такого обучения несложных интеллектуальных устройств необязательно опираться на нейросети. Для этого можно использовать другие модели, также обеспечивающие самоорганизацию, а именно NK-автоматы и их модификации. Этот подход проще нейросетей, так как не требует специального подбора типа взаимодействующих элементов и топологии связывающей их сети: и то и другое в случае NK-автоматов универсально и может динамически перенастраиваться в процессе функционирования автоматов. В работе в качестве среды взаимодействия использовался Интернет, а в роли моделируемого протокола – TCP. Однако это могут быть и другие среды и протоколы и, соответственно, среды и языки взаимодействия устройств. Например, различные прикладные протоколы Интернета, в частности почтовые, или протоколы сетей, отличные от TCP/IP. Применение полученных результатов позволит легко интегрировать устройства в состав различных коммуникационных сред, так как устройства смогут осваивать новые протоколы. По этой же причине может быть снижена острота проблемы версионной совместимости устройств, выпущенных в разные годы различными производителями. Наконец появляется возможность выполнять обратный инжиниринг протоколов взаимодействия даже в тех слу- чаях, когда исследуемый протокол взаимодействия заранее полностью неизвестен. То есть спектр применения полученных результатов на практике достаточно широк: их можно использовать для валидации, исследования и генерации сетевых протоколов в различных областях. Дальнейшие исследования будут направлены на определение влияния величины K  и эпистатичности на скорость и эффективность обучения, то есть на процент удачных решений и длину последовательности состояний перед выходом на аттрактор. Заслуживают исследования и случаи, когда требуемое количество генерируемых бит, то есть количество элементов в модификации NK-автомата, заранее неизвестно и должно быть выявлено в процессе функционирования самого автомата. Список литературы 1. Song L., Niyato D., Han Z., Hossain E. Machine-to-machine (M2M) communications. In: Wireless Device-to- Device Communications and Networks. Cambridge University Press, Cambridge, 2015, pp. 338–368. doi: 10.1017/ CBO9781107478732.012. 2. Oluwatosin A.A., Mohamed O. Machine-to-machine communication: An overview of opportunities. Comput. Networks, 2018, vol. 145, pp. 255–276. doi: 10.1016/j.comnet.2018.09.001. 3. Longo E., Redondi A.E.C. Design and implementation of an advanced MQTT broker for distributed pub/sub scenarios. Comput. Networks, 2023, vol. 224, art. 109601. doi: 10.1016/j.comnet.2023.109601. 4. Patti G., Leonardi L., Testa G., Lo Bello L. PrioMQTT: A prioritized version of the MQTT protocol. Comput. Communications, 2024, vol. 220, pp. 43–51. doi: 10.1016/j.comcom.2024.03.018. 5. Matsumura T., Esaki K., Yang S. et al. Active inference with empathy mechanism for socially behaved artificial agents in diverse situations. Artificial Life, 2024, vol. 30, no. 2, pp. 277–297. doi: 10.1162/artl_a_00416. 6. Wrona Z., Buchwald W., Ganzha M. et al. Overview of software agent platforms available in 2023. Information, 2023, vol. 14, no. 6, art. 348. doi: 10.3390/info14060348. 7. Maragatharajan M., Sureshkumar A., Dhanaraj R.K. et al. Hybrid feed forward neural networks and particle swarm optimization for intelligent Self-Organization in the industrial communication networks. IEEE Open J. Communications Society, 2025, vol. 6, pp. 3816–3833. doi: 10.1109/OJCOMS.2025.3559172. 8. Zhang Y., Soydaner D., Behrad F. et al. Finding closure: A closer look at the gestalt law of closure in convolutional neural networks. Computational Brain & Behavior, 2025, vol. 8. doi: 10.1007/s42113-025-00251-x. 9. Zhang M., Luo X., Wu J. et al. Toward building human-like sequential memory using brain-inspired spiking neural models. IEEE Transactions on Neural Networks and Learning Syst., 2025, vol. 36, no. 6, pp. 10143–10155. doi: 10.1109/ TNNLS.2025.3543673. 10. Kauffman S.A. The Origin of Order: Self-Organization and Selection in Evolution. Oxford University Press, 1993, 710 p. doi: 10.1142/9789814415743_0003. 11. Bull L. Nonbinary representations in the NK and NKCS models. Complex Systems, 2022, vol. 31, no. 1, pp. 87–101. doi: 10.25088/ComplexSystems.31.1.87. 12. Bull L. Evolving multi-valued regulatory networks on tunable fitness landscapes. Complex Syst., 2023, vol. 32,  no. 3, pp. 289–307. doi: 10.25088/ComplexSystems.32.3.289. 13. Кольчугина Е.А., Стежка В.А. Классификация NK-подобных автоматов // Вестн. ПензГУ. 2024. № 4. С. 70‒74. 14. Кольчугина Е.А. Исследование свойств цифровых организмов с помощью NK-подобных автоматов // Вестн. компьютерных и информационных технологий. 2011. № 11. С. 20‒24. 15. Бабич М.Ю., Бабич А.М. Аппарат моделирования особого периода функционирования многоагентных специализированных систем // Изв. высших учебных заведений. Поволжский регион. Технич. науки. 2018. № 4. С. 17–27. doi: 10.21685/2072-3059-2018-4-2. 16. Бабич М.Ю., Бабич А.М. Возможности модифицированного NK-автомата Кауфмана при имитации особого периода функционирования систем // XXI век: итоги прошлого и проблемы настоящего плюс. 2018. Т. 7. № 4.  С. 110–114. 17. Стежка В.А. Валидация протокола TCP с использованием NK-подобного автомата // Вестн. ПензГУ. 2024. № 4. С. 126‒130. Постоянный адрес статьи:http://swsys.ru/index.php?page=article&id=5204&lang= Статья опубликована в выпуске журнала № 4 за 2025 год. Статья опубликована в выпуске журнала № 4 за 2025 год. Назад, к списку статей Сетевое издание Website of the research and practice journal "Software & Systems" – www.swsys.ru / Сайт научно-практического журнала «Программные продукты и системы» — www.swsys.ru зарегистрирован в Роскомнадзоре, свидетельство о регистрации СМИ Эл № ФС77-59517 от 03.10.2014 г. Журнал «Программные продукты и системы» включен в Перечень ВАК Минобрнауки , в Ядро коллекции РИНЦ , размещенное на платформе Web of Science в виде базы данных RSCI . Продолжая использовать наш сайт, вы даете Согласие на обработку персональных данных в соответствии с Правилами обработки персональных данных . © Все права на авторские материалы охраняются в соответствии с законодательством РФ. При цитировании материалов обязательна ссылка на журнал «Программные продукты и системы» (для проектов онлайн обязательна гиперссылка). Сетевое издание Website of the research and practice journal "Software & Systems" – www.swsys.ru / Сайт научно-практического журнала «Программные продукты и системы» — www.swsys.ru зарегистрирован в Роскомнадзоре, свидетельство о регистрации СМИ Эл № ФС77-59517 от 03.10.2014 г. ISSN 0236-235X (P) Source: https://swsys.ru/index.php?page=article&id=5204&lang=