Algorithm n个矩形的相交-正好与k个矩形相交的最大区域数

Algorithm n个矩形的相交-正好与k个矩形相交的最大区域数,algorithm,geometry,complexity-theory,computational-geometry,Algorithm,Geometry,Complexity Theory,Computational Geometry,想象n轴对齐的矩形(由其位置(x,y)、宽度和高度指定)。矩形对齐方式应确保i-th矩形必然与(i+1)-th相交。例如,让n=3,那么1必然与2相交,而2必然与3相交。值得一提的是,这是不可传递的3可以与1相交,但不能保证相交(两个有效对齐示例见图) n=3矩形。右侧子图显示了最坏情况下的对齐。“> 我现在要寻找的是最大可能的区域数,其中恰好k=2,…,n个矩形相互相交(这些区域如图所示)换句话说,我在寻找最坏情况下的n矩形对齐方式,以便k矩形相交的区域数达到最大值。理论上,exacltyk矩

想象
n
轴对齐的矩形(由其位置
(x,y)
、宽度和高度指定)。矩形对齐方式应确保
i
-th矩形必然与
(i+1)
-th相交。例如,让
n=3
,那么
1
必然与
2
相交,而
2
必然与
3
相交。值得一提的是,这是不可传递的
3
可以与
1
相交,但不能保证相交(两个有效对齐示例见图)

n=3矩形。右侧子图显示了最坏情况下的对齐。“>

我现在要寻找的是最大可能的区域数,其中恰好
k=2,…,n个
矩形相互相交(这些区域如图所示)换句话说,我在寻找最坏情况下的
n
矩形对齐方式,以便
k
矩形相交的区域数达到最大值。理论上,exaclty
k
矩形相交的区域数最大可能为
n除以k
(二项式系数)但是,该公式仅对
n<4
有效,因为不可能对齐(并绘制)
n>=4
的矩形,因此在最坏的情况下
n/k
区域正好存在
k
矩形相交的地方


图中的第一个子图显示了
n=3
的最坏对齐情况。有
3/2=3
区域正好有两个矩形相交,还有
3/3=1
区域正好有三个矩形相交。第二个子图也显示了三个矩形的有效对齐,但这不是一个worst案例对齐,例如,没有恰好三个矩形相交的区域。

回答错误;没有删除,只是因为该方法可能有用,也可能不有用

矩形相交的几何数据可以抽象出来:重要的是以下属性:

属性p:如果矩形i和j相交,则意味着i与i+1相交,…,j-1也相交

如果你对问题的描述编码为p,那么从矩形开始就不重要了

现在,我们如何记录哪些矩形相交?一种方法是使用节点为矩形和边相交的图形,但这不是很有用,因为上面的属性p在图形中不明显。更好的方法是设置以下矩阵:

用矩阵a的第i行表示第i个矩形,该矩阵a在条目a(i,i)之前有0s,从a(i,i)到a(i,i+m)有1s,其中i+m是与矩形i相交的最远矩形的索引。也就是说,a有n行,每个原始矩形一行,由0s和1s以及a(i,j)组成对于j>i是1当且仅当矩形i和j相交 现在,我们有一个正k相交矩形的区域是什么意思?我声称上面的矩阵用一列正k 1s表示。为什么?假设你的区域是矩形I+1,…,I+k的交点。看看矩阵条目a(I+k,I+k)。上面的列在1+1到i+k的行中有1s,否则为0s

上面的矩阵看起来表面上类似于杨的歪斜表,因此是注释。但是,是的,相似性是表面的,因为它不是来自分区


现在需要最大化A中正好有k 1s的列数。我认为最好的是每行正好有k 1s的矩阵,这将给出原始问题n的答案。答案显然是错误的,所以我在这里遗漏了一些东西。Aaaaah!

构建一个矩阵,其中单元格
Aij
1
if矩形
i
j
相交或
0
不相交。此矩阵是对称的。 现在请注意,许多靠近对角线的
1
表示相邻对齐矩形之间有更多交点

< P>“最坏”的情况下,“代码>K</代码>,彼此相交的矩形的数量最多,在矩阵中由K连续<代码> 1 ,在两者之间没有<代码> 0 < /代码>。您可以考虑对角线之后的元素。矩形

i
与矩形
j
相交

问题是如何交换行和列以实现此结果。这可能是矩阵带宽减少的问题。 例如,请参见和


您也可以为您的特殊情况生成自己的算法。请注意,这可能是一个NP问题,可能存在多种解决方案。

您能更详细地解释一下输入和预期输出是什么吗?@m69该算法应采用一组
n
矩形,并以某种方式将它们对齐,以便区域
k=2,…,n
矩形重叠达到其最大值。这样的对齐显示在图的第一个子图像中,
n=3
…交点必须连续才能算作一个区域吗?例如,假设我们得到了n=3:前两个四边形重合(0,0)->(5,5),而第三个四边形通过运行穿过它们(-1,2)->(6,3)这显然是一个k=3区域,但它是一个还是两个k=2区域?我也不认为这是一个几何问题:重要的是第I个矩形是否与第j个矩形相交,如果你把这些信息抽象出来,你就会得到一个组合问题。我认为这归结为计算某些杨氏倾斜表,每个表条目(I,j)都在这里表示第i个矩形是否与第j个矩形相交。如果第i个矩形不与第j个矩形相交,则传递性大于第i个re