Graph 图划分优化 问题

Graph 图划分优化 问题,graph,graph-algorithm,nearest-neighbor,Graph,Graph Algorithm,Nearest Neighbor,我在平面上有一组位置(实际上它们是KML文件中的管脚),我想把这个图划分成子图。连通性非常好-就像所有现实世界的道路网络一样-所以我假设如果两个位置很近,它们就有某种连接。生成的子图集应遵守以下约束: 每个节点都必须被一个子图覆盖 每个节点应正好位于1个子图中 子图中的每个节点都应该彼此靠近(L2范数距离) 每个子图应至少包含5个位置 子图的数量应该是最小的 现在位置的数量不超过100个,所以我考虑过各种可能的暴力,但这显然不能很好地扩展 我考虑过使用一些k-最近邻算法(例如使用),但我不知

我在平面上有一组位置(实际上它们是KML文件中的管脚),我想把这个图划分成子图。连通性非常好-就像所有现实世界的道路网络一样-所以我假设如果两个位置很近,它们就有某种连接。生成的子图集应遵守以下约束:

  • 每个节点都必须被一个子图覆盖
  • 每个节点应正好位于1个子图中
  • 子图中的每个节点都应该彼此靠近(L2范数距离)
  • 每个子图应至少包含5个位置
  • 子图的数量应该是最小的
现在位置的数量不超过100个,所以我考虑过各种可能的暴力,但这显然不能很好地扩展

我考虑过使用一些k-最近邻算法(例如使用),但我不知道从哪里开始,以及如何扩展/缩小子图。也许可以将这个问题映射到另一个可以用一些数值程序轻松解决的问题(例如

也许有人在这类优化问题上有经验并且愿意帮助我找到解决方案?我没有Mathematica/Matlab之类的工具。。。但是有足够的.NET编程技能和hmm Excel:-)


非常感谢

一旦有多个标准需要同时以尽可能好的方式满足,通常就会变得困难

一个数字解决方案可以如下所示:你可以定义一个效用函数,将你的位置划分映射到正实值,通过给分区分配一个“评级”(好的可能高,“坏的”可能接近零)来描述分区的“好”程度

一旦你有了这样一个函数,根据“值”分配分区,你只需要对它进行优化,如果你合理地定义了你的效用函数,你就有望得到一个好的解决方案。进化算法擅长于这项任务,因为效用函数在分析上可能过于复杂,由于其离散性而无法求解

然后问题只在于如何通过这个实用程序函数将“值”分配给分区。这就是你的任务。例如,可以通过用一个因子对每个标准进行加权并将结果相加,或者通过更复杂的函数(最小二乘法等)来实现。在效用函数的定义中使用的因素是调整参数,可以改变,直到结果看起来很好


一些CA软件在测试方面会有很大的帮助,如果你能得到一个,我想要获得一个用于分区问题的黑盒解算器,你需要使用自己选择的语言来实现完整的过程。

谢谢你的建议,这种方法似乎是合理的——我认为评级函数有点复杂:——)它就像你想要的那样复杂。不过,这可能非常简单,例如,简单地总结每个标准的评级并对其进行优化。在我的论文中,我对一个多准则优化问题使用了类似的方法,效果很好。