Python的QPBO包装器
项目描述
QPBO的轻量级包装器
对Vladimir Kolmogorov的二次伪布尔优化(QPBO)算法修改版的Python轻量级包装器。Vladimir Kolmogorov的原始源代码可在http://pub.ist.ac.at/~vnk/software.html找到。此包装器使用支持更大图和略微降低内存使用的修改版。有关更多详细信息,请参阅子模块存储库。
QPBO与Maxflow的比较
虽然QPBO算法执行类似于Maxflow的s-t图切,但它允许使用非亚模量能量项,而Maxflow则不允许。在众多其他方面中,这允许QPBO解决带有排除项的优化问题,这可能非常有用。由QPBO实现构建的图的大小是等效问题的Maxflow图的两倍。因此,QPBO比Maxflow使用更多的内存,速度略慢。
安装
使用pip install thinqpbo
安装软件包或克隆此存储库(包括子模块)。构建软件包需要Cython。
图类型
目前,有三种不同的图类型:QPBOInt
、QPBOFloat
和QPBODouble
。唯一的不同之处在于图中边容量使用的底层数据类型。为了稳定性,建议使用QPBOInt
进行整数容量,使用QPBODouble
进行浮点容量。然而,在某些情况下,使用QPBOFloat
以减少内存消耗可能更有利。
高级功能(QPBO-P和QPBO-I)
QPBO实现有几个称为QPBO-P和QPBO-I的高级扩展。目前,并非所有高级功能都已封装。如果您需要使用thinqpbo未封装的QPBO C++库功能,请通过在GitHub上创建问题来告知我。
小型示例
import thinqpbo as tq
# Create graph object.
graph = tq.QPBOInt()
# Number of nodes to add.
nodes_to_add = 2
# Add two nodes.
first_node_id = graph.add_node(nodes_to_add)
# Add edges.
graph.add_unary_term(0, 0, 5) # E1(0) = 5, s --5-> n(0)
graph.add_unary_term(0, 1, 0) # E0(0) = 1, n(0) --1-> t
graph.add_unary_term(1, 5, 0) # E0(1) = 5, n(1) --5-> t
graph.add_pairwise_term(0, 1, 0, 7, 0, 4) # E01(0,1) = 7, n(0) --7-> n(1)
# E11(0,1) = 4, Not possible with standard Maxflow
# Find maxflow/cut graph.
graph.solve()
graph.compute_weak_persistencies()
twice_energy = graph.compute_twice_energy()
for n in range(nodes_to_add):
segment = graph.get_label(n)
print('Node %d has label %d.' % (n, segment))
# Node 0 has label 0.
# Node 1 has label 0.
print('Twice energy/flow: %s' % twice_energy)
# Twice energy/flow: 12
许可证
由于QPBO实现是在GPLv3许可证下分发的,因此本包也是如此。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
thinqpbo-0.1.4.tar.gz (112.9 kB 查看哈希值)
构建分发
thinqpbo-0.1.4-cp39-cp39-win_amd64.whl (75.4 kB 查看哈希值)
thinqpbo-0.1.4-cp38-cp38-win_amd64.whl (75.4 kB 查看哈希值)
thinqpbo-0.1.4-cp37-cp37m-win_amd64.whl (74.9 kB 查看哈希值)
thinqpbo-0.1.4-cp36-cp36m-win_amd64.whl (75.0 kB 查看哈希值)
关闭
thinqpbo-0.1.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc0475bb93fa37e0af64efbd3a8c487941b5aa671e668028d144e28453887846 |
|
MD5 | fdbdbff71077a8e8ceacfc8c2911c97e |
|
BLAKE2b-256 | e982f80001cb54d3d6d7203943565a766c2e85b67b75084c458d8568b555c92d |
关闭
thinqpbo-0.1.4-cp39-cp39-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a41b30458f98e84c7c451a3564abddf6bed655f3bb0751ace89f56bd7996f664 |
|
MD5 | 8cb9fa61e786988b396fc330105163ff |
|
BLAKE2b-256 | c4870c28ace1026fd099b6267299ab5c940f18be30763d52cdc03fbafc37101d |
关闭
thinqpbo-0.1.4-cp39-cp39-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 85590bbdd4dfbe5d09008278a0aa9423639576c81e84fb074b50e6eff6bbcb8f |
|
MD5 | ad36113702d1145310bb8dad1639f250 |
|
BLAKE2b-256 | c2931b456df8218e9e014e321927d38b1f43fb5d594937ff219e7a03443c8e8e |
关闭
thinqpbo-0.1.4-cp38-cp38-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 16c28700cfbed7211555886e8fac4a3b56774361312fcb4b7df4898d023ad0f0 |
|
MD5 | bff4d63e80f9f424b0b016b2e194ac10 |
|
BLAKE2b-256 | 0ee13816237ed1a7468b8f1204e11c5eff9b12de8146c1a053c028fccd1bd76c |
关闭
thinqpbo-0.1.4-cp38-cp38-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 19ec9e7e1378037445846c7c97de92c319b691ae2695fda45f821d7ed97016cf |
|
MD5 | 5ee217e51530e1b290226e272b4bb351 |
|
BLAKE2b-256 | 15f4c851497da906f53d85c10e9be192fecb2001896cd7d1ea937df46d0c3dad |
关闭
thinqpbo-0.1.4-cp37-cp37m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e7a9b217022e934a26260acd85a23e351911fbe2bfd823b78e030dcb5776fe3 |
|
MD5 | d3033288d1deba757f469641cdd22f67 |
|
BLAKE2b-256 | ab99965714525cbbfb1b64fe327fb30d11557220cfc58170315770d8693c6bfb |
关闭
thinqpbo-0.1.4-cp37-cp37m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c415922b4c3eddd6ce2422cf8538057428dc0cf0fc3e1d20fa201e8a4078f84e |
|
MD5 | 8c334e37a34fba328ef96c159f830862 |
|
BLAKE2b-256 | a0a0b63183c603c7ded17efc345dd8fad6aa3dc23b89b6cd09ddd481707e65d3 |
关闭
thinqpbo-0.1.4-cp36-cp36m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 700c82f78b5a1b88fec2e226e1c19529ef95224fec060b86a2af5a38d72c9142 |
|
MD5 | 5b6da3e38eb436cfcdcd3b746534091e |
|
BLAKE2b-256 | 0eff88430eab91ef38e20934f38fb21126698bf34b7718f1b639eca77253ffc8 |
关闭
thinqpbo-0.1.4-cp36-cp36m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 64f679fa873fa05bb9e9f81bc15376be8baedf49df32de7846afb6cf11753c8f |
|
MD5 | 6ef0c82831c73af5d089b22e9bde701a |
|
BLAKE2b-256 | 07750d181bcefe03b70fea3cd42d0247c4032bfc2f3f636535ed86dfdc5090a4 |
关闭
thinqpbo-0.1.4-cp27-cp27m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 41f3ba1cc4b27a95fdd8a60f56ad874f112d4e124c44e82114b0b34dd95c43fd |
|
MD5 | 4654685bee74f225e43a364f211bf4dc |
|
BLAKE2b-256 | b475c5d18931f6633f3b633912764e4ccabbbc3a90ed491afb00011c689f87bb |