第 5 章 用户界面

用户界面基于shiny包开发。核心思想是,把目标函数或者约束在R的脚本中预先定义好,然后调用run_BAS_App(func = ..., constr = ...,theme = ...)函数来人为调节参数,运行以及可视化。

5.1 调用语句

其中:

  • func指的是,需要优化的目标函数

  • constr则是不等式约束,至于上下限约束,可以直接在用户界面里面定义

  • theme也就是界面主题,即皮肤,默认的主题是united。可以使用help(run_BAS_App)语句来看可选的主题样式都有哪些,如superhero,cosmo,paper,journal等主题。这些主题是调用shinythemes而来。

5.2 使用案例

5.2.1 Michalewicz function

先在代码中预定义函数:

然后调用用户界面:

出现了如图5.1的界面:

shiny interface

图 5.1: shiny interface

左边是固定的参数调节栏,最上方有目前的收录的三种算法可供选择,以及本包的作者信息。右侧也有三个选项,分别是优化过程信息优化参数结果以及优化结果可视化

按照你的需要,调节好左边的参数信息(第一个参数,也就是初始值init,默认为空,也可以指定),然后点击左下方的Run BAS键,即可看到如图5.2的内容:

optimization progress栏信息

图 5.2: optimization progress栏信息

由于回合数较大,因此只截取了部分内容显示。

分别点击Optimization ParametersProgress Plot键,可以看到最后的结果,以及可视化信息,分别如图5.35.4所示。

Optimization Parameters栏信息

图 5.3: Optimization Parameters栏信息

可以看到,窗口的$par显示的是参数的优化结果,而$value则是对应的目标函数值。

Progress Plot栏信息

图 5.4: Progress Plot栏信息

BAS与其他两种算法有着不同的可视化结果,其并不是基于反馈来控制步长的。因此,图中的两条曲线,红色的为每一回合的目标函数值,而蓝色的为此前回合中最优的目标函数值。

5.2.2 Pressure Vessel function

这次,我们在BSAS-WPT栏下进行界面使用。先在代码中预定义目标函数和约束:

调用用户界面,注意此时多出了constr,也就是约束函数,$符号在索引列表中的元素时使用:

自行调整参数后,用户界面如图5.5所示:

BSAS-WPT参数调整

图 5.5: BSAS-WPT参数调整

点击Run BAS-WPT之后,选择optimization Parameters栏目,可以看到优化结果如图5.6所示:

BSAS-WPT优化结果

图 5.6: BSAS-WPT优化结果

选择Progress Plot栏目,过程可视化如图5.7所示:

BSAS-WPT优化过程可视化

图 5.7: BSAS-WPT优化过程可视化

5.3 Authors界面

如果并不想执行任何函数优化,则可以不指定函数和约束。在R里面输入以下代码:

可以看到rBAS的用户界面,里面有关于rBAS的作者信息,如图5.8所示。

用户界面作者信息

图 5.8: 用户界面作者信息

如果大家对该项目有兴趣,参与了包的开发,或者BAS算法应用案例的提出。我会在征得当事人同意的情况下,将名字加入该界面:)。