Проблемы, связанные с теорией потоков в контексте беспроводных сетей, занимают важное место в области исследований операций, информатики и техники. Благодаря своей универсальности, эта теория находит широкое применение при решении практических задач [1, 2].
В рамках теории потоков выделяют ряд задач, которые можно разделить на несколько категорий. К ним относятся задачи транспортного характера, такие как транспортная задача, определение кратчайшего маршрута, обнаружение циклов с отрицательным весом (неэффективные перевозки) и другие. Также сюда входят задачи проверки возможности существования потока, включая задачу о максимальном потоке и ее дополнение – задачу поиска минимального разреза. Кроме того, рассматривается задача поиска обобщённого потока, допускающего потери и увеличение объёма.
При анализе беспроводной сети, представленной в виде матрицы пропускных возможностей связей, возникает необходимость определения наибольшего объема данных, который может быть передан от отправителя к получателю [3, 4]. Эта проблема сводится к задаче поиска максимального потока, требующей выявления оптимального набора потоков по соединениям таким образом, чтобы общий поток был максимально возможным и не превосходил допустимые значения пропускных способностей каждого соединения. Для решения этой задачи была создана программа на C#, которая взаимодействует с пользователем и имеет модульную структуру. Она предназначена для широкого круга задач, где требуется анализ потоков в различных сетевых структурах. В программе зафиксировано ограничение на количество узлов беспроводной сети – до 25 (nm = 25).
При разработке алгоритмов применяются специализированные структуры данных:
matr – квадратный массив целых чисел размером nm на nm;
mas – линейный массив целых чисел длиной nm;
gpoint – запись, представляющая узел сети, содержащая:
x, y – координаты вершины (целые числа).
rebro – набор ребер, состоящий из множества идентификаторов узлов типа versh.
versh – множество элементов, принимающих значения от 1 до 100.
Конкретная организация программы определяется задачами программиста и выбранным подходом к проектированию и может быть представлена как монолитная, модульная последовательная, модульная иерархическая или модульная хаотичная.
Монолитно–модульная структура характеризуется наличием крупного модуля, отвечающего за реализацию ключевых функциональных возможностей программы [5].
В данной секции наблюдается ограниченное взаимодействие с другими компонентами кода. Однако такая реализация унаследовала типичные проблемы неструктурированных, единых программ: трудность восприятия, тестирования и поддержки.
Последовательно-модульная организация. Данный подход предполагает наличие множества блоков, которые поочередно передают контроль выполнения друг другу. Концепция ясна и понятна, но эффективна лишь при решении несложных проблем.
Иерархически-модульная архитектура. Программа организована в виде отдельных компонентов, расположенных в иерархической системе уровней. Верхние уровни контролируют работу нижних, передавая им управление и получая обратно после завершения работы. Эта структура обладает достаточной простотой и способностью решать комплексные задачи.
В программе реализована модульно-хаотичная организация, где отдельные программные компоненты взаимодействуют друг с другом не формируя четкой структуры. Подобные решения затрудняют отладку и поддержку кода, поэтому их следует избегать. Исключение составляют системы реального времени с критическими требованиями к скорости работы, когда альтернативные подходы оказываются неэффективными.
В частности, данная программа организована по модульно-иерархическому принципу. Взаимодействие между модулями происходит посредством передачи данных как аргументов функций и использования общего блока памяти. При этом передача данных через параметры функции подразумевает, что модуль получает и выдаёт информацию исключительно в виде простых переменных.
Аветисян Т.В., Львович Я.Е., Преображенский А.П., Преображенский Ю.П. Моделирование и оптимизация модулей и информационных массивов в киберфизической системе // Известия Кабардино-Балкарского научного центра РАН. 2023. № 6 (116). С. 116-124.
Марсон Н.В., Мазетов Д.С., Преображенский Ю.П. О возможностях применения информационных систем на производстве // В сборнике: Актуальные проблемы инновационных систем информатизации и безопасности. Материалы международной научно-практической конференции. Воронеж, 2025. С. 149-152.
Аветисян Т.В., Львович Я.Е., Преображенский А.П., Преображенский Ю.П. Исследование возможностей оптимизации процессов управления киберфизическими системами // Информационные технологии и вычислительные системы. 2023. № 2. С. 96-105.
Львович Я.Е., Преображенский А.П., Преображенский Ю.П. Анализ некоторых проблем оптимального управления в сложных системах // Вестник Воронежского института высоких технологий. 2022. № 2 (41). С. 93-95.
Аветисян Т.В., Минаев К.А., Преображенский А.П., Преображенский Ю.П. Моделирование и оптимизация размещения передающих устройств в беспроводной системе связи // Моделирование, оптимизация и информационные технологии. 2024. Т. 12. № 1 (44). С. 26.