我想测试一个猜想,即某个算法的性能取决于c
违反三角形不等式的程度,其中c
是要求解的实例的距离矩阵通过算法。
我的问题是,修改距离矩阵c
的好方法是什么,以便我可以控制它违反三角不等式的程度?
到目前为止,我提出的最佳结果是这样的:对于参数p
和q
,随机选择p
%c
的元素,并且对于每个所选元素,将其乘以1 + u
,其中u
从[0,q
]统一选择。
我怀疑我们可以做得更好。有什么想法吗?
答案 0 :(得分:1)
我会进行一些测试。对于每个测试,我将生成两个矩阵。一个完全随机但对称的。这几乎肯定会违反三角不平等。另一个距离矩阵基于计算n维空间中随机点之间的距离,因此它服从三角不等式。现在使用这两种加权平均值,使用各种不同的权重。用不同的基础矩阵重复。
只是添加一些不在评论中的内容我会注意到,如果你考虑任何三个点,你可以计算出三角形不等式违反该三角形的权重(如果有的话),因为你只是检查了三个不等式其中值是线性加上权重的常数。考虑到所有三元组都不是很好,因为这是点数的O(n ^ 3),但是矩阵有O(n ^ 2)个元素,所以你总是可以声称它只有O(n ^ 1.5)输入数据量。