如何解决这个线性编程问题?

时间:2011-04-01 02:12:18

标签: algorithm caching tree matrix

我不太擅长线性编程,所以我在这里发布这个问题。 希望有人可以指出我正确的方向。 这不是作业问题,所以不要误解。

我有一个矩阵5x5 (25个节点)。每个节点与其相邻节点(或邻居节点)之间的距离 1个单元。节点可以是以下两种情况之一:缓存访问。如果节点'i'是缓存节点,则 Dij x Aij (访问成本)。 Dij是节点i和j之间的曼哈顿距离。 Aij是从节点i到j的访问频率。

为了成为缓存节点i,它需要从现有缓存节点k缓存,其成本为 Dik x C ,其中C是整数常量。 (缓存成本)。 C称为缓存频率。

A提供为25x25矩阵,包含显示任意节点i和j之间的访问频率的所有整数。 D被提供为25x25矩阵,其包含任何节点i和j之间的所有曼哈顿距离。

假设矩阵中有1个缓存节点,找出其他缓存节点和访问节点的集合,以便最小化总成本。 总费用=总缓存费用+总访问费用

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

解决方案是一个集合,因此这不是线性编程问题。它是连接设施位置的特殊情况。 Bardossy和Raghavan的启发式看起来很有希望:http://terpconnect.umd.edu/~raghavan/preprints/confl.pdf

答案 2 :(得分:0)

是螺旋缓存类比解决方案吗? http://strumpen.net/ibm-rc24767.pdf