跳转到主要内容

Python封装的Hochbaum伪流(HPF)快速s-t最小割/最大流算法

项目描述

HPF的轻量级封装

非参数Hochbaum伪流(HPF)最小割/最大流算法的Python轻量级封装。原始源代码由Bala Chandran和Dorit S. Hochbaum提供,可在此处找到。在此封装中使用的C++代码已由Patrick M. Jensen重构并发布在此处

安装

从存储库安装(需要Cython)

git clone https://github.com/Skielex/thinhpf
cd thinhpf
pip install .

该软件包将在稍后提供在PyPI上。

小型示例

import thinhpf

hpf = thinhpf.hpf()

# Add s and t.
next_node_id = hpf.add_node(2)

def offset(n):
    return 2 + n

s = 0
t = 1

hpf.set_source(0)
hpf.set_sink(1)

# Number of nodes to add.
nodes_to_add = 2

# Add two nodes.
next_node_id = hpf.add_node(nodes_to_add)

# Add edges.
hpf.add_edge(s, offset(0), 5)  # s     --5->   n(0)
hpf.add_edge(offset(0), t, 1)  # n(0)  --1->   t
hpf.add_edge(offset(1), t, 3)  # n(1)  --3->   t
hpf.add_edge(offset(0), offset(1), 2)  # n(0)  --2->   n(1)
hpf.add_edge(offset(1), offset(0), 1)  # n(1)  --1->   n(0)
# Find maxflow/cut hpf.
hpf.mincut()
flow = hpf.compute_maxflow()

for n in range(nodes_to_add):
    segment = hpf.what_label(n)
    print('Node %d has label %d.' % (n, segment))
# Node 0 has label 0.
# Node 1 has label 1.

print('Flow: %s' % flow)
# Maximum flow: 3

相关存储库

许可证

Bala Chandran和Dorit S. Hochbaum的原始C代码以及因此的(之前为pseudo.c)内容是根据学术许可证发布的(见LICENSE文件)。有关更多信息,请参阅原始网站

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

thinhpf-0.1.1.tar.gz (187.1 kB 查看哈希值)

上传时间

构建分发

thinhpf-0.1.1-cp310-cp310-win_amd64.whl (125.0 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

thinhpf-0.1.1-cp310-cp310-macosx_10_15_x86_64.whl (170.5 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.15+ x86-64

thinhpf-0.1.1-cp39-cp39-win_amd64.whl (125.6 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

thinhpf-0.1.1-cp39-cp39-macosx_10_15_x86_64.whl (171.1 kB 查看哈希值)

上传时间 CPython 3.9 macOS 10.15+ x86-64

thinhpf-0.1.1-cp38-cp38-win_amd64.whl (125.8 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

thinhpf-0.1.1-cp38-cp38-macosx_10_14_x86_64.whl (170.6 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.14+ x86-64

thinhpf-0.1.1-cp37-cp37m-win_amd64.whl (126.3 kB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

thinhpf-0.1.1-cp37-cp37m-macosx_10_14_x86_64.whl (170.2 kB 查看哈希值)

上传时间 CPython 3.7m macOS 10.14+ x86-64

支持