void Hungarian::doHungarian() { int x, y; for (x = 0; x < k; x++) { //khởi tạo điểm bắt đầu và kết thúc của 1 đường mở //finish = -1 nghĩa là chưa tìm thấy đường mở start = x; finish = -1; do { FindAugmentingPath(); // tìm đường mở if (finish == -1) // nếu ko tìm được đường mở thì xoay các trọng số cạnh SubX_AddY(); } while (finish == -1); Enlarge();//tăng cặp dựa trên đường mở tìm được } }
时间: 2023-06-16 09:06:11 浏览: 200
Hungarian:匈牙利算法java实现
这是一个匈牙利算法的实现代码,用于解决二分图最大匹配问题。其大致思路是按顺序遍历二分图的左侧节点,对每个节点进行增广路径查找,如果找到增广路径则进行匹配,否则进行边权重调整,直到所有节点都被匹配为止。其中的函数包括:
- FindAugmentingPath():查找增广路径。
- SubX_AddY():调整边权重。
- Enlarge():根据找到的增广路径进行匹配。
如果您需要更详细的解释,请让我知道。
阅读全文