|
本帖最后由 kaien 于 2020-7-24 17:42 编辑
该问题的一组解如下:
1=a1
2=a2
3=a3=a1+a2
4=a4=a1+a3
4=a5=a1+a3
8=a6=a4+a5
12=a7=a5+a6
20=a8=a6+a7
32=a9=a7+a8
52=a10=a8+a9
64=a11=a7+a10
116=a12=a10+a11
180=a13=a11+a12
296=a14=a12+a13
476=a15=a13+a14
772=a16=a14+a15
1248=a17=a15+a16
2020=a18=a16+a17
我的求解方法是通过非线性整数优化模型来计算的,非手算方法。简单来说,首先建立如下模型:
设\(a(k), k=1,\ldots,18\)为所需确定的整数变量。设\(x(k,i),k=3,\ldots,18, i=1,\ldots,k-1\)为01布尔型变量,其意义是当\(x(k,i)=1\)时则计算\(a(k)\)时取\(a(i)\)为其中的一个加数。否则,不取\(a(i)\)为其中的一个加数。
设约束条件 \[C= \begin{cases}
\sum_{i=1}^{k-1} x(k,i) = 2, k=3,\ldots,18;\\
a(k)=\sum_{i=1}^{k-1}x(k,i) \times a(i), k=3,\ldots,18;\\
a(1)=1, a(2)=2, a(18)=2020;\\
x(k,i)\in \{0,1\}, a(k)\in \mathbb{Z}_+.
\end{cases} \]
只要满足该条件的任一可行解就是原问题的解。我们可以随意的加一个目标函数如: \(f(a)=\sum_{k=1}^{18}a(k)\).
于是,需要求解的数学优化模型为:
\[ \min \{ f(a): (a,x)\in C \}.\]
这个优化问题中,存在非线性等式约束条件,变量是整数变量,所以该问题是非线性整数规划问题。可以通过相应的优化求解器求解。例如: 我使用Baron在415秒内得到全局最优解。其实上面的可行解应该是在160秒时得到的,剩下的时间是分支定界算法验证和寻找更好的最优解所花费的时间。 |
|