Моделирование процессов в сетевых структурах

ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ

В программной реализации каждому узлу сопоставляется зона его входных сигналов. Выбор значения выходного сигнала узла определяется нелинейной дискретной функцией M. Сетевая структура описывается в виде таблицы связей, каждый столбец которой состоит из элементов следующих массивов: Ln - номер узла в сетевой структуре; La- номер узла, связанного со входом узла Ln; Lb - номер узла, связанного с выходом узла Ln; Lt - тип узла Ln. Таким образом, каждый столбец описывает одну связь в сетевой структуре. Максимальное число, стоящее в таблице связей, за исключением строки Lt, соответствует количеству узлов в сетевой структуре. Сигналы, проходящие в сетевой структуре отображаются как значения элементов массивов La, Ln, Lb, т. е. узлов из таблицы связей.

Каждый столбец таблицы связей сетевой структуры автоматически дополняется элементом f, представляющим собой значение логической функции F, которая описывает логику работы сетевой структуры. Значение элемента f определяется логическими уравнениями, в которых переменным соответствуют биты значений элементов La, Ln, Lb, Lt соответствующего столбца таблицы связей. Каждое уравнение представляет собой определение значения одного бита элемента f. Внешний вид логических функций определяется синтаксисом языка C++. Сама программа, реализующая логические уравнения представляет собой DLL модуль, который можно отсоединить от основной программы, перекомпилировать в DLL модуль с измененным исходным кодом и снова соединить с основной программой.

Результатом моделирования являются значения всех элементов f массива логических функций F при остановке итерационного процесса, которая имеет место при равенстве значений элементов массива F предыдущей итерации с соответствующими элементами массива F текущей итерации. Перед запуском моделирования необходимо ввести значение переменной Hmax, которая определяет максимальное количество итераций, после которых, в случае несходимости процесса, будет происходить сброс значений нестационарных элементов f в неопределенное состояние "X" с сохранением стационарных параметров сигнала. Этим действием мы не решаем, а откладываем для последующего анализа проблему сходимости итерационного метода для конкретной сети. Сложность проблемы сходимости итераций при дискретных значениях сигналов даже для простых динамических систем показана Фейгенбаумом для логического уравнения в [5]. Размерность массивов, описывающих сетевые структуры рассчитывается из неравенства 15Nc + 2Ny<V, где V - объем ОЗУ в байтах, Nc - количество описаний связей и Ny - количество узлов. Для объёма ОЗУ, равного 16 MB, мы имеем Nc=900 000, Ny=500 000.

В заключение укажем, что экспериментальные расчеты показали универсальность и гибкость описанного представления моделирования как итерационного процесса определения значений дискретных сигналов с заданной адекватностью и практической возможности построения "физической" дискретной модели наблюдаемого процесса, которую мы рассматриваем и как программу, и как дискретную схему [7].