Skip to content

Latest commit

 

History

History
117 lines (88 loc) · 7.22 KB

File metadata and controls

117 lines (88 loc) · 7.22 KB

BuildConstrains.py

BuildConstrains.java

Программа построения всех независимых ограничений для значений потоков в входящих и выходящих вершинах, при которых существовует решение распределительной задачи на двудольном графе.##

Данные исходного графа вводятся в текстовом файле формата csv без заголовков. Результаты выводятся в виде набора неравенств между значениями в вершинах для основного или двойственного графа.

Параметры

  1. Имя входного файла с графом
  2. Режим работы (необязателен)

Описание параметров

  1. Входной файл с графом имеет формат csv без заголовков с разделителем полей символом ',' и описывает двудольный граф (X,Y). В каждой строке 1-е поле: имя вершины из X, остальные поля: набор имен вершин из Y, связанных ребром с вершиной поля 1.
  2. =0: ограничения строятся для основного и двойственного графов - применяется по умолчанию; =1: ограничения строятся только для основного графа; =2: ограничения строятся только для двойственного графа;

Имеются 3 версии программы.

  • Первая версия на процедурах Python3 в ветке main.
  • Вторая версия на классах Python3 в ветке oop.
  • Третья версия на Java-17 в ветке java-full.

Текущая версия на Python3 не выводит список ограничений в виде неравенств.

FullNet.java#

Программа статистического анализа числа всех независимых ограничений для потоков в сети, при которых существует решение распределительной задачи на двудольном графе. Исследуются все сети фиксированного размера

Параметры

  1. Размер X компоненты сети
  2. Размер Y компоненты сети

Результат

Математическое ожидание и среднее отклонение размера сети.

Используется SQLite база TransportNet.s3db.

RandomNets.java

Программа статистического анализа числа всех независимых ограничений для потоков в сети, при которых существует решение распределительной задачи на двудольном графе. Исследуются случайные сети фиксированного размера

Параметры

  1. Размер X компоненты сети
  2. Размер Y компоненты сети
  3. К-во генерируемых сетей
  4. Режим работы (необязателен) =12: расчет добавляется к предыдущему

Результат

Математическое ожидание и среднее отклонение размера сети.

Используется SQLite база TransportNet.s3db.

CheckResource.java

Процедура рассчета всех ограничений для конкретного набора ресурсов

Параметры

  1. Имя входного файла с графом
  2. Имя входного файла с набором ресурсов
  3. Режим работы (необязателен)

Описание параметров

  1. Структура такая же, как и в 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]}}
  2. Значения те же, что и в BuildConstrains

Результат

Набор результатов вычисления каждого ограничения после подстановки в него значений ресурсов + символический вид каждого ограничения.

Используется SQLite база, имя которой формируется из имени входного файла с графом добавлением суффикса .s3db.

Запуск программ

Python программа

Python программа запускалась в среде PyCharm 2024.1.4 (Community Edition) с использованием python 3.12.
Требуемые модули:

  • numpy
  • pip-23.2.1.virtualenv

Java программы

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