Программа построения всех независимых ограничений для значений потоков в входящих и выходящих вершинах, при которых существовует решение распределительной задачи на двудольном графе.##
Данные исходного графа вводятся в текстовом файле формата csv без заголовков. Результаты выводятся в виде набора неравенств между значениями в вершинах для основного или двойственного графа.
- Имя входного файла с графом
- Режим работы (необязателен)
- Входной файл с графом имеет формат csv без заголовков с разделителем полей символом ',' и описывает двудольный граф (X,Y). В каждой строке 1-е поле: имя вершины из X, остальные поля: набор имен вершин из Y, связанных ребром с вершиной поля 1.
- =0: ограничения строятся для основного и двойственного графов - применяется по умолчанию; =1: ограничения строятся только для основного графа; =2: ограничения строятся только для двойственного графа;
- Первая версия на процедурах Python3 в ветке main.
- Вторая версия на классах Python3 в ветке oop.
- Третья версия на Java-17 в ветке java-full.
Текущая версия на Python3 не выводит список ограничений в виде неравенств.
Программа статистического анализа числа всех независимых ограничений для потоков в сети, при которых существует решение распределительной задачи на двудольном графе. Исследуются все сети фиксированного размера
- Размер X компоненты сети
- Размер Y компоненты сети
Математическое ожидание и среднее отклонение размера сети.
Используется SQLite база TransportNet.s3db.
Программа статистического анализа числа всех независимых ограничений для потоков в сети, при которых существует решение распределительной задачи на двудольном графе. Исследуются случайные сети фиксированного размера
- Размер X компоненты сети
- Размер Y компоненты сети
- К-во генерируемых сетей
- Режим работы (необязателен) =12: расчет добавляется к предыдущему
Математическое ожидание и среднее отклонение размера сети.
Используется SQLite база TransportNet.s3db.
- Имя входного файла с графом
- Имя входного файла с набором ресурсов
- Режим работы (необязателен)
- Структура такая же, как и в BuildConstrains
-
- Входной файл с набором ресурсов имеет формат csv без заголовков с разделителем полей символом ',' и состоит из 2 строк. 1 строка - величина входящего ресурса по каждому источнику, 2 строка - величина выходящего ресурса по каждому потребителю. Порядок величин в каждой строке соответствует порядку вершин в графе. В каждом ресурсе для разделения целой и дробной части используется символ '.'.
- Входной файл с набором ресурсов имеет формат json. Ключ "X" описывает источники, ключ "Y" описывает потребителей в исходном графе. Эти объеты имеют одинаковую структуру списка объектов "node" и "value". Объект "node" - массив имен вершин, объект "value" - соответствующий числовой массив значений ресурсов.
- Пример: {"X":{"node":["1", "2", "3"],"value":[1.0, 2.0, 3.0]},"Y":{"node":["0", "1", "2", "3"],"value":[1.0, 2.0, 3.0, 4.0]}}
- Значения те же, что и в BuildConstrains
Набор результатов вычисления каждого ограничения после подстановки в него значений ресурсов + символический вид каждого ограничения.
Используется SQLite база, имя которой формируется из имени входного файла с графом добавлением суффикса .s3db.
Python программа запускалась в среде PyCharm 2024.1.4 (Community Edition) с использованием python 3.12.
Требуемые модули:
- numpy
- pip-23.2.1.virtualenv
Java программы запускались в среде Apache NetBeans 22 с использованием Java 17.
Требуемые модули:
- gson-2.10.1.jar
- gson-parent-2.10.1.pom
- slf4j-api-1.7.36.jar
- slf4j-nop-1.7.36.jar
- sqlite.jdbc-3.46.0.1.jar
- Main class: buildconstrains.BuildConstrains
- Arguments: graph304.csv 1 0
- Working Directory: D:\Develop0\TestTeX\TransportNet
Или - bc.cmd
- Main class: buildconstrains.FullNet
- Arguments: 3 4
- Working Directory: D:\Develop0\TestTeX\TransportNet
- Main class: buildconstrains.RandomNets
- Arguments: 4 10
- Working Directory: D:\Develop0\TestTeX\TransportNet
- Main class: buildconstrains.CheckResource
- Arguments: graph300.csv rsrc00.json 0
- Working Directory: D:\Develop0\TestTeX\TransportNet