【发布时间】:2011-09-23 18:32:39
【问题描述】:
因此,我正在寻找一种确定物品放置位置的算法,但是,我很难将我的测量形式化为一个位置的“好坏”。
问题出在:我有一组k 想要沿一条线放置的项目。每个项目都有一个宽度,没有两个项目可以重叠。每个项目也有一个对应的区间——所有区间都是固定的、不重叠的,并且形成了线段的一个分区。
我想放置每个项目,使其在其间隔中居中,但我不能保证间隔比项目宽。
因此,作为妥协,我愿意将项目部分(或全部)移出它们的间隔。但是,我不愿意更改项目的顺序(它们必须保持间隔的顺序)。
是否有一个很好的算法可以根据我的(松散定义的)度量找到沿线的项目“最佳”位置?
【问题讨论】:
-
考虑两个项目,(a=0-10) 和 (b=1-2),应该先出现哪个?
-
只是对问题的观察:由于间隔不重叠,并且您愿意将项目移出间隔,因此间隔似乎并不重要,只有它们的中心才重要。您可以只为每个项目提供一个“理想位置”的问题,说您希望保留订单等。
-
@ShreevatsaR:你是对的;我怀疑 OP 的约束条件比他们提到的要多。要么这样,要么这是旨在确定他们是否能抓住你的准确观点的家庭作业。
-
@ShreevatsaR:+1 有效点。我的意思是说,将项目保持在它们的间隔中比不更可取(因此一旦完全超出间隔,善度会随着距离而更快地下降)但忘记提及了。
-
您可以尝试使用KKT conditions 来最小化从对象中心到其相应间隔中心的距离总和。您可以使用不等式(即距离大于半径之和)对非重叠条件进行建模
标签: algorithm language-agnostic