Skip to content

优化方案(动态元素序列)

上一节中,我们讲解了在保持元素序列不变的情况下,通过改变各个元素的安排来优化方案的方法。本节中,我们将进一步扩大优化的范围,让元素序列也可以在优化过程中变化。

目前,动态元素序列局限于由于字根的有无导致的元素序列的变化,并且仅适用于「默认部件分析器 + 默认复合体分析器」的分析组合。也就是说,若我们认为某个字根可以选用也可以不选用,则我们可以在优化过程中让算法来决定这件事情。(适用于其他分析器,例如「二笔部件分析器」和「二笔复合体分析器」的动态元素序列实现正在开发中。)

要使用动态元素序列,请首先将部件、复合体分析器切换为上面的组合,并且打开「动态分析」选项。

我们首先需要指定哪些字根是可选的。根据这一字根在初始决策中的安排不同,分为两种情况:

以「米十五笔」为例,初始决策中「贝」字根位于 h 键上。要指定它为可选字根,可以点击下方的「添加禁用」,则备选安排中出现「禁用」一项:

以「米十五笔」为例,初始决策中不存在「见」这个字根。要指定它为可选字根,需要在「决策空间」模块中点击「添加备选元素」,并且至少指定一个可行的安排:

拆分前,首先将所有字根划分为必要字根和可选字根。拆分一个部件时,默认部件分析器将给出多个不同的拆分,其中最后一个拆分仅使用必要字根,而前面的拆分则使用了一些可选字根。若给定一个决策,在这多个拆分中,实际使用的是第一个「所有字根都处于选用状态」的拆分。例如,对于上文所说的「贝」,其结果为: 意思是「如果有「贝」字根,就使用这个字根;如果没有,就拆分为「冂」和「人」」。

在拆分完部件后,默认复合体分析器将根据部件的多个拆分结果组合出复合体的多个拆分结果,最后再由组装器给出多个元素序列。

如果对这多个拆分结果不满意,需要自定义多个拆分结果,则需要点击「自定义组」来输入。自定义组的含义和旁边的「自定义」基本相同,其区别仅仅在于是在动态分析语境下完整指定了多个不同的拆分所构成的列表。如果一个部件有自定义但没有自定义组,则视为指定了一个具有一种拆分的自定义组。

如果输入了一些自定义动态分析组,则有可能由于输入错误导致它不满足「列表中的最后一个拆分仅使用必要字根」的性质。这会导致优化算法在运行时当采取特定决策时无法找到合法拆分的问题。因此,在自定义完之后建议点击「检查自定义组」来保证这一性质总是满足。

在开启「动态分析」的情况下,在网页端运行优化时默认采用的是根据动态拆分得出的动态元素序列表。您也可以在「编码」页面点击「导出动态元素序列表」,然后结合命令行程序使用。 ​