gpt4 book ai didi

algorithm - 有值(value)的排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:30:16 26 4
gpt4 key购买 nike

问题:有2个平行的正值数组AB尺寸n .

如何找到以下目标函数的最小值:

F(A, B) = A<sub>k</sub> + B<sub>k</sub> * F(A', B')

哪里A' , B'表示数组 AB和他们的 k :删除第一个元素。

我在考虑动态规划方法,但没有成功。

如何应用于此类问题,我们需要在排列上评估给定函数?

最佳答案

最佳解决方案是计算 (B_k - 1)/A_k 并在递归的最外部位置执行那些具有更小(包括更多负数)结果的结果。

这是局部最优的,因为您不能交换一对相邻的选择并进行改进,因此是全局最优的,因为除了 (B_k-1)/A_k 的相等值之外,该算法给出了唯一的解决方案,这没有区别。任何其他不具备此属性的解决方案都不是最优的。

如果我们比较 A_1+B_1*(A_2+B_2*F)A_2+B_2*(A_1+B_1*F) 那么前者会更小(或等于)当且仅当

A_1 + B_1*(A_2 + B_2*F) <= A_2 + B_2*(A_1 + B_1*F)
A_1 + B_1*A_2 + B_1*B_2*F <= A_2 + B_2*A_1 + B_2*B_1*F
B_1*A_2 - A_2 <= B_2*A_1 - A_1
(B_1 - 1)/A_1 <= (B_2 - 1)/A_2

注意 A_k > 0

空的 F(,) 的值并不重要,因为它出现在最后乘以所有 B_k

关于algorithm - 有值(value)的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com