An open API service indexing awesome lists of open source software.

https://github.com/gilbert00/transportnet

Constraction all independent linear constraints for transport net on bipartite graph
https://github.com/gilbert00/transportnet

graph-algorithms java-17 python python-3 transport-network

Last synced: 3 months ago
JSON representation

Constraction all independent linear constraints for transport net on bipartite graph

Awesome Lists containing this project

README

        

# 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
2.
* Входной файл с набором ресурсов имеет формат 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]}}
3. Значения те же, что и в 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