- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作 HopcroftKarpBipartiteMatching,但没有演示,或者我找不到其他任何东西来帮助我使用该库。我无法从文档中弄清楚实例化 HopcroftKarpBipartiteMatching 类的方式和需要什么?我有一组代表顶点的字符串。它是来自顶点的每条路径的列表。举个例子:
Array{(V1,V7), (V1,V8), (V1,V6)]
Array{(V2,V8), (V2,V5), (V2, V6)]
Array{(V3, V4),(V3, V8)}
使用 JApplet 的可能解决方案
public class GraphDemo extends JApplet{
private static final long serialVersionUID = 2202072534703043194L;
private static final Dimension DEFAULT_SIZE = new Dimension(530, 320);
private JGraphXAdapter<String, DefaultEdge> jgxAdapter;
public static void main(String[] args) {
JGraphAdapterDemo applet = new JGraphAdapterDemo();
applet.init();
JFrame frame = new JFrame();
frame.getContentPane().add(applet);
frame.setTitle("JGraphT Adapter to JGraph Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public void init()
{
UndirectedGraph<String, DefaultEdge> g =
new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
jgxAdapter = new JGraphXAdapter<String, DefaultEdge>(g);
getContentPane().add(new mxGraphComponent(jgxAdapter));
resize(DEFAULT_SIZE);
String x1 = "x1";
String x2 = "x2";
String x3 = "x3";
String y1 = "y1";
String y2 = "y2";
String y3 = "y3";
String y4 = "y5";
g.addVertex(x1);
g.addVertex(x2);
g.addVertex(x3);
g.addVertex(y1);
g.addVertex(y2);
g.addVertex(y3);
g.addVertex(y4);
g.addEdge(x1, y1);
g.addEdge(x1, y2);
g.addEdge(x2, y1);
g.addEdge(x2, y4);
g.addEdge(x3, y2);
g.addEdge(x3, y3);
Set<String> p1 = new HashSet<String>(Arrays.asList(x1, x2, x3));
Set<String> p2 = new HashSet<String>(Arrays.asList(y1, y2, y3, y4));
HopcroftKarpBipartiteMatching<String, DefaultEdge> alg =
new HopcroftKarpBipartiteMatching<String, DefaultEdge>(g, p1, p2);
Set<DefaultEdge> match = alg.getMatching();
mxCircleLayout layout = new mxCircleLayout(jgxAdapter);
layout.execute(jgxAdapter.getDefaultParent());
System.out.println(g.toString());
System.out.println(match);
}
}
最佳答案
HopcroftKarpBipartiteMatching构造函数需要一个图和两个分区集,即:
UndirectedGraph<String, DefaultEdge> g = ...
Set<String> part1 = ...
Set<String> part2 = ...
new HopcroftKarpBipartiteMatching<String, DefaultEdge>(g, part1, part2);
这是一个简单的例子:
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.jgrapht.UndirectedGraph;
import org.jgrapht.alg.HopcroftKarpBipartiteMatching;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;
public class GraphDemo {
public static void main(String[] args) {
UndirectedGraph<String, DefaultEdge> g =
new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
String x1 = "x1";
String x2 = "x2";
String x3 = "x3";
String y1 = "y1";
String y2 = "y2";
String y3 = "y3";
String y4 = "y5";
g.addVertex(x1);
g.addVertex(x2);
g.addVertex(x3);
g.addVertex(y1);
g.addVertex(y2);
g.addVertex(y3);
g.addVertex(y4);
g.addEdge(x1, y1);
g.addEdge(x1, y2);
g.addEdge(x2, y1);
g.addEdge(x2, y4);
g.addEdge(x3, y2);
g.addEdge(x3, y3);
Set<String> p1 = new HashSet<String>(Arrays.asList(x1, x2, x3));
Set<String> p2 = new HashSet<String>(Arrays.asList(y1, y2, y3, y4));
HopcroftKarpBipartiteMatching<String, DefaultEdge> alg =
new HopcroftKarpBipartiteMatching<String, DefaultEdge>(g, p1, p2);
Set<DefaultEdge> match = alg.getMatching();
System.out.println(g.toString());
System.out.println(match);
}
}
关于JAVA Jgrapht Hopcroft Karp 二分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702994/
Hopcroft–Karp 算法求二部图中最大基数匹配的论文最后两段: https://dl.dropboxusercontent.com/u/64823035/04569670.pdf The ex
我目前正在进行一个项目,以图形方式解释 Hopcroft-Karp 算法。 我正在使用 Wikipedia article 中的伪代码. 我还在 Stack Overflow 上看到了这个算法的实现
我正在尝试制作 HopcroftKarpBipartiteMatching,但没有演示,或者我找不到其他任何东西来帮助我使用该库。我无法从文档中弄清楚实例化 HopcroftKarpBipartite
我正在研究图算法理论(我是数学家,对计算机科学一无所知),并且我确实有一些与 self 匹配的问题,出于严重的原因我使用 Hopcroft-Karp ( Hopcroft–Karp algorithm
在最大二分匹配的Hopcroft-Karp算法中,为什么广度优先搜索总是寻找最短增广路径?是因为广度优先搜索总是找到最短路径吗?我只是很困惑为什么增广路径最短很重要。 最佳答案 仅找到一个增广路径已经
我正在解决一个算法问题,这需要我学习最大匹配算法。在花了一天时间从各种来源学习和实现后,我理解了算法。 但是,我无法为当前场景应用该算法(构建图表)。 事情是这样的:我有“n”个男孩和“m”个女孩。他
我想实现 Hopcroft 的算法来最小化 DFA WIKIPEDIA .到目前为止,我可以删除无法访问的状态。问题是我不明白这个算法。我不知道如何实现它。有人可以解释一下吗?或者可以扩展算法,使其更
我正在尝试实现 Hopcroft Karp algorithm在 Python 中使用 networkx 作为图形表示。 目前我是这样的: #Algorithms for bipartite grap
我是一名优秀的程序员,十分优秀!