proshm 发表于 2014-7-4 13:33:32

如何尽可能不连续地遍历数组

一个图像处理方面的应用问题,需要一种尽可能不连续地遍历多维数组。其中,遍历是指按照某种顺序访问数组的所有元素,每个元素只被访问1次;连续性需要用相邻两次访问的元素的所在位置的距离来度量。
举个例子,假设一个包含5个元素的1维数组,元素依次标记为a0、a1、a2、a3、a4,一个遍历为a0, a3, a1, a4, a2 则这个的最小距离为min(|3-0|, |1-3|, |4-1|, |2-4|)=2,累计距离为|3-0|+|1-3|+|4-1|+ |2-4| = 10。一个完整遍历的连续性可以用最小距离、累计距离或某一种平均距离(例如算数平均、几何平均、调和平均)来度量,距离可以是曼哈顿距离、欧式距离或其它距离。
我查找过图论、矩阵分析、矩阵论和计算方法教材,没有找到解决这个问题的方法。

cn8888 发表于 2014-7-4 14:44:51

既然想找出来,又不完全遍历,你觉得有可能吗?????????

proshm 发表于 2014-7-4 14:52:12

要完全遍历啊,只是要尽量不连续

mathe 发表于 2014-7-5 08:25:29

不同距离准则方法会不同,比如要最小距离最大,一维问题非常简单,二维问题也不会太难,但是看成一般图论问题就不会太简单。至于其它距离会更难。我倾向于没有好的最优算法,所以这时应该找个可以产生比较好的结果的算法

百步神掌 发表于 2014-12-18 08:46:42

本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此精彩绝伦的帖子http://www.91xs.cc/book/1/
页: [1]
查看完整版本: 如何尽可能不连续地遍历数组