1
$\开始组$

这是原件问题.

问题:有两个正浮点数的并行数组A(A)< 1000)B(B)< 1)大小为n个.

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

F(A,B)=Ak个+B类k个*F(A',B')

哪里A’,B’表示数组A类B类和他们的k个:第个元素已删除。

如何应用于此类问题,我们需要在置换上计算给定的函数?

答案提出了一些启发式方法,但我们需要最佳多项式解。任何人都可以建议这种方法吗?

$\端组$
  • $\开始组$ 假设这是一个递归定义,但您不必给出一个基本情况,例如,当$a$和$B$为空时,$F(a,B)$?而且,似乎右侧依赖于$k$,而左侧不依赖,这非常令人担忧。然后,我不明白你所说的“最小值”是什么意思。你的意思是,在所有可能的$A$和$B$选择中最小的?问题非常不清楚。 $\端组$ 评论 2011年8月4日7:20
  • $\开始组$ @Gerry,我认为很明显,他在寻找一种策略,在递归的每个级别选择$k$。这也解释了标题“有值排列”。 $\端组$ 评论 2011年8月4日7:25
  • $\开始组$ @格里,F({},{})=0因此,在学习完所有术语后,我们得到了并行数组中项目的一些排列。所以我们的目标是评估这个目标函数的最小值。 $\端组$ 评论 2011年8月4日7:36

2个答案2

重置为默认值
1
$\开始组$

我会计算$\frac{B_k-1}{A_k}$,并在递归最外面的位置上得到较小(包括更多负数)的结果。

这是局部最优的,因为您无法交换一对相邻的选项并进行改进,因此是全局最优的,这是因为该算法除了$\frac{B_k-1}{a_k}$的相等值之外,还提供了唯一的解决方案,而这些值没有差别。任何其他不具有此属性的解决方案都不是最优的。

如果我们比较$A_1+B_1次(A_2+B_2\次F)$和$A_2+B2\次(A_1+B1\次F

$$A_1+B_1(A_2+B_2 F)\le A_2+B _2(A_1+B _1 F)$$

$$A_1+B_1 A_2+B_1 B_2 F \le A_2+B_2 A_1+B2 B_1 F$$

$$B_1 A_2-A_2\le B_2 A_1-A_1$$

$$\压裂{B_1-1}{A_1}\le\frac{B_2-1}{A2}$$

注意$A_k>0$。

空的$F(,)$的值无关紧要,因为它最终会乘以所有的$B_k$。

$\端组$
1
  • $\开始组$ 我已经测试了这种方法N个最多20(通过暴力检查结果),它工作正常。谢谢! $\端组$ 评论 2011年8月4日10:46
0
$\开始组$

第二版:看来下面的内容是基于对问题的误解。我认为可以单独排列$A_I$和$B_I$,而实际上它们似乎是要链接的。在这种情况下,我怀疑没有任何算法比测试每个置换更有效,也就是说,没有有效的算法。但这只是一个猜测,我根本无法提供证据。


所以看起来你最终得到的是$$A_1+A_2B_1+A_3B_1B_2+\cdots$$序列$B_1、B_1B_2、B_1B2B_3、\dots$正在减少,所以我想你希望它尽可能缓慢地减少,所以取$B_1\ge B_2\ge B_3\cdots$。然后,为了充分利用$A_i$,取$A_1\geA_2\geA_3\cdots$。

注意,我的下标顺序相反;我的$A_1$是最后的已选择项。

编辑:上述程序最大化,问题是减少所以,回到绘图板。此外,我的行为就像基本情况是1,而实际上是0。不仅如此,我还以为我在颠倒$A_I$的顺序,但我没有。所以,下面是你要做的:

首先,排列$B_n$是$B_i$中最大的,因为它将被乘以零。对另一个$B_i$进行静音处理,使$B_1\le B_2\le \dots\le B_{n-1}$;这将最小化$B_i$的所有产品。然后,您希望最大的$A_i$乘以$B$-产品中最小的,最小的$A_ i$乘以最大的$B$--产品,所以排列$A_i$,使$A_1\le A_2\le A_3\le\dots\le A_n$。

请参阅注释中的示例。

$\端组$
4
  • $\开始组$ 我认为这不可行,例如,对于$A=(3,2,4)$和$B=(0.2,0.3,0.4)$,您的解决方案给出$3+0.2\倍(2+0.3\倍(4+0.4\倍0))=3.64$,而最佳解决方案给出的是$2+0.3倍(3+0.2\次(4+0.4倍0)]=3.14$。 $\端组$
    – 亨利
    评论 2011年8月4日10:20
  • $\开始组$ @亨利,我看到问题了:我忘了进球是为了减少并编写了一个程序最大化。您的示例的最佳解决方案应该是$2+.2(3+.3(4+(.4)(0))=2.84$。我会编辑我的答案。 $\端组$ 评论 2011年8月4日12:47
  • 1
    $\开始组$ 您似乎是独立订购$B_i$和$A_i$,但它们共享一个下标,因此它们的订单并不独立。 $\端组$ 评论 2011年8月4日13:01
  • $\开始组$ @彼得,你完全正确。我没有理解OP所说的“并行数组”是什么意思。正在编辑。 $\端组$ 评论 2011年8月4日22:33

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.