It is not difficult to think of applications that can be modelled as graph problems in which placing some facility or commodity at a vertex has some positive or negative effect on the values of all the vertices out to some distance, and we want to be able to calculate quickly the cumulative effect on any vertex's value at any time or the list of the most beneficial or most detrimential effects on a vertex. In this paper we show how, given an edge-weighted graph with constant-size separators, we can support the following operations on it in time polylogarithmic in the number of vertices and the number of facilities placed on the vertices, where distances between vertices are measured with respect to the edge weights: Add (v, f, w, d) places a facility of weight w and with effect radius d onto vertex v. Remove (v, f) removes a facility f previously placed on v using Add from v. Sum (v) or Sum (v, d) returns the total weight of all facilities affecting v or, with a distance parameter d, the total weight of all facilities whose effect region intersects the ``circle'' with radius d around v. Top (v, k) or Top (v, k, d) returns the k facilities of greatest weight that affect v or, with a distance parameter d, whose effect region intersects the ``circle'' with radius d around v. The weights of the facilities and the operation that Sum uses to ``sum'' them must form a semigroup. For Top queries, the weights must be drawn from a total order.
翻译:不难想到,许多应用可建模为图问题:在某个顶点放置设施或商品会对一定距离内所有顶点的值产生正面或负面影响,而我们需要能够快速计算任意时刻任意顶点值的累积效应,或列出对某个顶点最有利或最不利的效应列表。本文证明,给定一个具有常数大小分离器的边加权图,我们可以在顶点数和放置于顶点上的设施数的对数多项式时间内支持以下操作(顶点间距离通过边权衡量):Add (v, f, w, d) 将权重为w、影响半径为d的设施f放置到顶点v上。Remove (v, f) 移除之前通过Add放置在v上的设施f。Sum (v) 或 Sum (v, d) 返回影响v的所有设施总权重,或给定距离参数d时,返回其影响区域与以v为中心、半径为d的“圆”相交的所有设施总权重。Top (v, k) 或 Top (v, k, d) 返回影响v的权重最大的k个设施,或给定距离参数d时,返回其影响区域与以v为中心、半径为d的“圆”相交的权重最大的k个设施。设施的权重及Sum运算所用的“求和”操作需构成半群。对于Top查询,权重需来自全序集。