给定矩阵包含许多聚类。群集由1&#39组成。
例如:
0 1 1 1 0
1 1 1 0 0
0 0 0 1 1
1 1 0 0 1
在此示例中,有3个群集(水平或垂直连接1'
现在假设矩阵大小非常大,并且它包含太多的簇。
现在我的问题是,我想知道所有集群的边界。
例如给定矩阵:
0 0 1 1 0
0 1 1 1 1
0 0 1 1 0
0 0 0 1 0
现在输出应该是粗体位置的坐标:
0 0 1 1 0
0 1 1 1 1
0 0 1 1 0
0 0 0 1 0
考虑到许多此类聚类的矩阵是巨大的,建议找到所有聚类边界的优化方法。
答案 0 :(得分:0)
只有当1作为其直接邻居之一或者它在矩阵的轮廓上时,A 1才在某个簇的边界上,所以朴素方法将输出1&#的坐标39; s在轮廓上,然后遍历所有其他矩阵单元格并输出满足上述条件的1的坐标。
但是,看起来没有办法优化此算法。
假设我们有一个巨大的矩阵,里面只有一个随机1。没有经过每个单元格就无法找到它。
也没有办法按照它的轮廓跳过同一个群集中的1个 考虑这个例子:
0 0 0 1 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 1
0 1 1 1 1 1 0 1 0 1
0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 1 1 1 1
一个群集可以很容易地放在另一个群集中,因此无法选择大纲。