空间填充曲线的一些组合应用

空间填充曲线表示一组点的启发式巡视

图1:旅行推销员问题的启发式解决方案是按照与Sierpinski空间填充曲线相同的顺序访问点。

空间填充曲线是从低维空间到高维空间的连续映射。一条著名的空间填充曲线是由于Sierpinski造成的,它是通过反复复制和收缩一个简单的模式而形成的(图1中的复杂路线)。

空间填充曲线的一个有用特性是,一旦它进入一个区域,它就会访问该区域中的所有点。因此,在平面中靠近的点将倾向于在沿着曲线的外观上靠近。

这构成了L.Platzman和我发明的启发式的基础,以产生一个相当短的n个给定位置(所谓的旅行推销员之旅):只需按照空间填充曲线的相同顺序访问它们。例如,绿色线条表示对标记为“read”的点的短巡视,这些线条以与它们在空间填充曲线上的外观相同的顺序连接这些点。

如果你愿意接受比最优解长25%左右的解(对于随机点集来说,这是意料之中的),那么填充曲线启发式算法(SFC)有很多优点。这些优点包括:

空间填充曲线启发式已在许多应用中使用,包括:

通过空间填充曲线进行路由的思想随后被纳入ARC/Info地理信息系统、Baan Systems的CAPS后勤工具包以及其他管理二维数据的商业系统。

在我的课堂笔记中可以找到这些想法的摘要,不包括技术细节,但有指向技术文献的指针基于空间填充曲线的布线系统[pdf格式,22页]。伴随着这是一个桌子Sierpinski对100 x 100网格点的索引[pdf格式,22页],您可以在一个下午用它设置自己的路由系统。关于算法性能的技术细节,以及相关工作的引用,可以在L.K.Platzman的“填充曲线和平面旅行推销员问题”中找到,计算机协会杂志 36(4):719-737 (1989).

访问德国15112个城市问题的空间填充曲线解决方案

图2:德国15112个城市的TSP之旅。这次旅行是由Sierpinski空间填充曲线在不到一秒钟的时间内引起的,并且是尽可能短的大约三分之一。

将这种轻量级启发式与重型优化包(例如由D.Applegate、R.Bixby、V.Chvatal和W.Cook他们的TSP包是一种数学优化技术的旅游力,已用于解决德国15112个城市的旅行推销员问题。这是最大的非平凡问题,已经为其生成了可证明的最优解。Applegate等人描述了使用的计算资源:“计算是在莱斯大学和普林斯顿大学的110个处理器组成的网络上进行的。计算中使用的总计算机时间为22.6年,按比例调整为Compaq EV6 Alpha处理器,运行频率为500 MHz。TSPLIB中使用的单位中,最佳行程长度为1573084;这意味着大约要经过66000公里的德国。”

相比之下,保罗·戈德曼(Paul Goldsman)使用空间填充曲线启发式解决了相同的问题。我们的解决方案大约延长了34%(图2)。如果每天悠闲地行驶600公里,这意味着总驾驶时间约为147天,而不是110天。但我们用廉价的笔记本电脑计算不到一秒钟。因此,这是一个折衷:使用我们的启发式方法,您可以立即获得路线,但您必须额外旅行一个月。或者,配置一个由110个处理器组成的网络,花两个月计算最短路径,以节省一个月的驾驶时间。

三角网一种三角形不规则网络,其中三角形已按顺序排列形成一条路径

图3:通过寻找三角形的哈密顿路径或回路,并用合适的定向空间填充曲线填充每个点,可以连续索引三角化不规则网络的所有点。

Bill Nulty、Paul Goldsman和我已经将其中的一些想法扩展到了几个方向: