二进制二维矩形分区算法

问题描述 投票:2回答:2

我们正在为异构计算做一个调度程序。

任务可以通过其截止日期和数据速率来识别,并且可以被视为二维图。见图:

矩形标识要在GPU上调度的任务,以及要在CPU上调度的外部任务。

问题是我们想要有效地识别用于创建最佳矩形的参数。即包含大多数任务的矩形。可以假设存在确定是否可以将点添加到当前矩形的功能。

最多可以有20.000(点)任务,轴可以任意长

有没有已知的算法/数据结构来解决这个问题?

algorithm partitioning partition-problem
2个回答
0
投票

根据给定的信息,您可以执行以下操作:

首先添加最接近所有点重心的点。

如果已添加n个点,请选择n +第1个点,即最接近当前矩形的点。询问您给定的功能,是否可以添加此点。

如果是这样,请膨胀矩形,使其包含此点。假设所有点都具有唯一的x和y坐标,则始终可以仅向矩形添加一个点。

如果没有,请终止。

如果这不是您想要的,请提供更多信息。


0
投票

如果您指的是层次结构聚类,则可以使用空间索引或空间填充曲线在象限中细分2d图。象限可以代表线程或核心。然后,您需要使用此功能对点进行排序,并检查具有最多点的象限。

© www.soinside.com 2019 - 2024. All rights reserved.