Skip to main content

Flow Network Python Library

Project description

Flow Network

网络流的工业级应用

Release Drafter Upload Python Package

使用 Dinic 和朴素费用流,算法来自 DuckKnowNothing - 网络流

支持平台

在尝试了各种方法之后,GitHub Actions 在 Windows 平台下始终无法正确编译 C++,所以放弃支持 Windows 平台

  • Linux
  • macOS

安装

pip install flow-network

样例代码

from flow_network import MaximumFlow, MinimumCostFlow

mf = MaximumFlow(2)  # 创建一个包含 2 个点的网络流对象,下标从 0 开始
mf.add_edge(0, 1, 3)  # 添加一条从 0 指向 1 的边,容量为 3
result = mf.run(0, 1)  # 指定源点为 0,汇点为 1,跑最大流 & 最小割
print(result)  # 3

for edge in mf.edges:  # 遍历每条边
    print(edge.u, edge.v, edge.flow, edge.capacity)  # 边的起点、终点、流过的流量、最大容量

mcf = MinimumCostFlow(2)  # 创建一个包含 2 个点的费用流对象,下标从 0 开始
mcf.add_edge(0, 1, 3, 2)  # 添加一条从 0 指向 1 的边,容量为 3,单位流量的费用为 2
flow, cost = mcf.run(0, 1)  # 指定源点为 0,汇点为 1,跑最大流 & 最小费
print(flow, cost)  # 3 6

for edge in mcf.edges:
    print(edge.u, edge.v, edge.flow, edge.capacity, edge.cost)  # 边的起点、终点、流过的流量、最大容量、单位流量的费用

测试代码

tests.py

Reference

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flow-network-0.1.13.tar.gz (63.4 kB view hashes)

Uploaded Source

Built Distributions

flow_network-0.1.13-cp39-cp39-manylinux2010_x86_64.whl (640.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

flow_network-0.1.13-cp39-cp39-manylinux1_x86_64.whl (640.4 kB view hashes)

Uploaded CPython 3.9

flow_network-0.1.13-cp38-cp38-win_amd64.whl (100.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

flow_network-0.1.13-cp38-cp38-manylinux2010_x86_64.whl (635.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

flow_network-0.1.13-cp38-cp38-manylinux1_x86_64.whl (635.1 kB view hashes)

Uploaded CPython 3.8

flow_network-0.1.13-cp38-cp38-macosx_10_9_x86_64.whl (97.5 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

flow_network-0.1.13-cp37-cp37m-manylinux2010_x86_64.whl (637.0 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

flow_network-0.1.13-cp37-cp37m-manylinux1_x86_64.whl (637.0 kB view hashes)

Uploaded CPython 3.7m

flow_network-0.1.13-cp36-cp36m-manylinux2010_x86_64.whl (636.0 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

flow_network-0.1.13-cp36-cp36m-manylinux1_x86_64.whl (636.0 kB view hashes)

Uploaded CPython 3.6m

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page