当前位置: 首页 > 面试题库 >

最小化加权和

方夜洛
2023-03-14
问题内容

我是最近才遇到这个问题的。假设在x轴上有n个点,x [0],x [1] .. x [n-1]。令与这些点中的每一个关联的权重为w [0],w [1] ..
w [n-1]。从0到n-1之间的任意点开始,目标是覆盖所有点,以使w [i] * d [i]之和最小,其中d [i]是从第一个点到第i个点的距离起点。

示例:
假设点是:1 5 10 20 40
假设权重是:1 2 10 50 13
如果我选择从点10开始并选择移至点20,然后移至5,然后移至40,最后移至1,则加权总和将变为10 * 0 + 50 (10)+ 2 (10 +
15)+ 13 (10 + 15 + 35)+ 1 (10 + 15 + 35 + 39)。

我尝试使用贪婪方法解决该问题,方法是从具有最大关联权重的点开始,然后移至第二最大权重点,依此类推。但是该算法不起作用。有人可以给我指出解决该问题必须采取的方法吗?


问题答案:

有一个非常重要的事实导致多项式时间算法:

由于点位于一些轴线,它们产生路径图,这意味着,每3个顶点v1,v2,v3中,如果v2是间v1v3,然后之间的距离v1v3等于之间的距离v1v2加之间的距离v2v3。因此,例如v1,如果我们从obj
开始。首先到达v2然后到达的路径的函数值v3将始终小于首先到达v3然后返回的路径的值,v2因为:

value of the first path = w[2]*D(v1,v2)+W[3]*(D(v1,v2)+D(v2,v3))

value of the second path = w[3]*D(v1,v3)+W[2]*((v1,v3)+D(v3,v2)) = w[3]*D(v1,v2)+w[3]*D(v2,v3)+w[2]*(D(v1,v2)+2*D(v3,v2))

如果我们从第二个值中减去第一个路径值,那么w[2]*2*D(v3,v2)除非您考虑负权重,否则将等于或大于0。

所有这些意味着,如果我们位于某个点上,则始终应该只考虑两个选项:转到左侧的最接近未访问点或右侧的最接近未访问点。

这非常重要,因为它为我们提供了2^n可能的路径,而不是n!可能的路径(例如在“旅行推销员问题”中)。

可以使用动态编程在多项式时间内解决路径图上的TSP /最小权哈密顿路径,您应该应用完全相同的方法,但要修改计算目标函数的方式。

由于您不知道起始顶点,因此必须运行此算法n时间,每次都从不同的顶点开始,这意味着运行时间将乘以n



 类似资料:
  • 1 原理   迭代再加权最小二乘(IRLS)用于解决特定的最优化问题,这个最优化问题的目标函数如下所示: arg min{\beta} \sum{i=1}^{n}|y{i} - f{i}(\beta)|^{p}   这个目标函数可以通过迭代的方法求解。在每次迭代中,解决一个带权最小二乘问题,形式如下: \beta ^{t+1} = argmin{\beta} \sum{i=1}^{n} w{i}(

  • 1 原理   给定n个带权的观察样本$(w_i,a_i,b_i)$: $w_i$表示第i个观察样本的权重; $a_i$表示第i个观察样本的特征向量; $b_i$表示第i个观察样本的标签。   每个观察样本的特征数是m。我们使用下面的带权最小二乘公式作为目标函数: minimize{x}\frac{1}{2} \sum{i=1}^n \frac{wi(a_i^T x -b_i)^2}{\sum{k=

  • 给定一个正整数的矩阵(非正方形),其中同一行上的所有元素都是可置换的,问题是最小化列的最大和和最小和之间的差异。 例如 答案是2。 我试着天真地对它进行分类(合并)

  • 1.2.2. 最小权限 我过去有一辆汽车有一个佣人钥匙。这个钥匙只能用来点火,所以它不能打开车门、控制台、后备箱,它只能用来启动汽车。我可以把它给泊车员(或把它留在点火器上),我确认这个钥匙不能用于其它目的。 把一个不能打开控制台或后备箱的钥匙给泊车员是有道理的,毕竟,你可能想在这些地方保存贵重物品。但我觉得没有道理的是为什么它不能开车门。当然,这是因为我的观点是在于权限的收回。我是在想为什么泊车

  • 问题内容: 是否可以在JDialog中添加最大化/最小化按钮?如果不是,那么我们可以将这些按钮添加到JPanel吗? 我有一个JPanel,并且在该面板内部有一个JDialog。我想添加一个最小化/最大化按钮,以便当单击该按钮时,JDialog会根据JPanel调整JDialog下的组件。就像当我单击最大化时,jpanel应该被放大,并且该面板(JDialog)中的组件也被放大,反之亦然,以最小化

  • 如果它一定是一棵树,你能解释一下连通性和极小性之间的矛盾吗。但是如果你认为它可能是其他的子图,那么你能给我一个例子,一个连通图可能不是树,它的权重更低。

  • 我在这个问题上使用了公认的答案:JavaFX最小化未装饰阶段,以适当地最小化我的应用程序。 然而,不幸的是,默认窗口最小化了 我知道可以在未装饰的窗口中显示动画,因为我有一个应用程序具有这种行为(PotPlayer)。 如何使用JNA制作动画? 编辑:这是一个可以正常最小化JavaFX窗口的Kotlin代码段,还添加了bounty。

  • 本文向大家介绍用js实现最大化和最小化窗口相关面试题,主要包含被问及用js实现最大化和最小化窗口时的应答技巧和注意事项,需要的朋友参考一下 https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API