标签归档:粒子群优化求解

粒子群优化求解算法 (Particle Swarm Optimization) 在LibreOffice中的应用

粒子群算法实例-求解函数极值》一文列举了如何在python中使用numpy库实现粒子群优化求解算法,以求解函数 f(x)=x+10sin5x+7cos4x 的最大值。LibreOffice的求解器功能中,有一项粒子群优化非线性求解的算法实现。本文讲解如何在LibreOffice进行该函数最大值的计算:

单元格B2: x; C2: -10;
单元格B3: f(x); C3: =C2+10*SIN(5*C2)+7*COS(4*C2)

打开点击菜单“工具-求解器“。
在打开的对话框中,“目标单元格”点选$C$3,“优化结果为”选择“最大”,“依照该单元格的变动”点选$C$2,下方的“限制条件”:$C$2<=10, $C$2=>-10;
单击下方的“选项“,求解器引擎选择“群非线性求解“,对“群算法”单击“编辑”,输入1(表示粒子群优化求解算法)并确定,然后单击“求解”按钮。

约10秒之内,会得到求解结果:
x: 7.8567441372
f(x): 24.8553628690
与《粒子群算法实例-求解函数极值》一文中的结果很接近。

图:

粒子群优化求解算法

粒子群优化求解算法示例