Python 中的匈牙利算法

发布于 2024-09-29 21:00:03 字数 30 浏览 2 评论 0原文

标准Python库中有匈牙利算法的良好实现吗?

Is there good implementation of Hungarian algorithm in standard python libraries?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

听风念你 2024-10-06 21:00:03

我刚刚尝试过:


pip install munkres

并且成功了。 在这里您可以找到有关如何使用它的简短说明。

我尝试安装“匈牙利语”时出错。

I just tried:


pip install munkres

and it worked. Here you can find a short explanation on how to use it.

I got an error trying to install "hungarian".

溇涏 2024-10-06 21:00:03

有多个选项:

pip install munkres

此处的文档

pip install hungarian

此处的文档

pip install scipy
scipy.optimize.linear_sum_assignment

此处的文档

There are multiple Options:

pip install munkres

Documentation here

pip install hungarian

Documentation here

pip install scipy
scipy.optimize.linear_sum_assignment

Documentation here

爺獨霸怡葒院 2024-10-06 21:00:03

检查这个munkres

Check this munkres out

永不分离 2024-10-06 21:00:03

Munkres 是 Python 中的匈牙利算法。

  1. 如何安装:

    pip install munkres
    
  2. 如何使用:

    来自 munkres 导入 Munkres
    mnkrs = 蒙克雷斯()
    矩阵=[]
    
    对于 i,枚举(data1)中的 val1:
        对于 j,枚举(data2)中的 val2:        
           如果 len(矩阵) <我+1:
              矩阵.append([])
           如果 len(矩阵[i]) < j+1:
              矩阵[i].append([])
           matrix[i][j] = val2 - val1 # 或任何你想比较的值
    
    如果矩阵:
        best_idxs = mnkrs.compute(矩阵)
        对于 best_idxs 中的 (k, l):
           打印(数据1 [k],数据2 [l])
    

Munkres is the Hungarian algorithm in Python.

  1. How to install it:

    pip install munkres
    
  2. How to use it:

    from munkres import Munkres
    mnkrs = Munkres()
    matrix = []
    
    for i, val1 in enumerate(data1):
        for j, val2 in enumerate(data2):        
           if len(matrix) < i+1:
              matrix.append([])
           if len(matrix[i]) < j+1:
              matrix[i].append([])
           matrix[i][j] = val2 - val1 # or whatever you want to compare
    
    if matrix:
        best_idxs = mnkrs.compute(matrix)
        for (k, l) in best_idxs:
           print(data1[k], data2[l])
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文