algorithm - 绘制图形的遗传算法?职位分配问题

标签 algorithm graph genetic-algorithm

我手头有一个分配问题,想知道应用局部搜索技术来达到理想的解决方案有多合适(搜索空间非常大)。

我有一个有向图(流程图),我想在二维平面上以一种非常清晰、易于理解且易于人眼阅读的方式进行可视化。所以;我将为每个顶点分配 (x,y) 位置。我正在考虑使用模拟退火、遗传算法或您可以建议的任何此类方法来解决这个问题

输入:图 G = (V,E)
输出:一组分配,{(xi, yi) for each vi in V in}。换句话说,每个顶点将被分配一个位置(x,y),其中坐标都是整数且 >= 0。

这些是我用来判断解决方案的标准(我欢迎任何建议):

  • 相交边的数量应该最少,
  • 所有边沿一个方向流动(即从左到右),
  • 高角度分辨率(两条边形成的最小角度 发生在同一个顶点),
  • 小区域 - 最不重要。

此外;我有一个初始配置(将位置分配给顶点),是手工制作的。它非常困惑,这就是我尝试自动化该过程的原因。

我的问题是,

  • 采用本地搜索技术有多明智?可能性有多大 它会产生预期的结果吗?

  • 我应该从什么开始?模拟退火、遗传算法 还是别的?

  • 我应该在开始时随机播种还是使用初始的 配置开始?

  • 或者,如果您已经知道类似的实现/伪代码/东西,请指出我。

任何帮助将不胜感激。谢谢。

编辑:它不需要很快——不需要实时。此外; |V|=~200,每个顶点平均有大约 1.5 条出边。该图没有断开连接的组件。它确实涉及循环。

最佳答案

我建议查看 http://www.graphviz.org/Theory.php因为 graphviz 是领先的开源图形可视化工具之一。

根据任务的不同,也许完全使用 graphviz 进行可视化是有意义的。

关于algorithm - 绘制图形的遗传算法?职位分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6664078/

相关文章:

algorithm - 计算两个数组元素之间的距离

python - Pandas - 其他每个值的列的最小值

c++ - 在有向循环图中找到所有可能的路径

java - 遗传算法的适应度拒绝让步

algorithm - 如何快速获得树上所有叶子的所有 parent ?

algorithm - 找到最多使用 k 条特殊弧的最短路径

algorithm - BFS与拓扑排序的关系

java - Java 中二叉树/图的深度优先搜索

classification - 分类的遗传算法

neural-network - 如何利用遗传算法优化神经网络?