Skip to main content

基于 Elo 适应的差分进化

项目描述

基于 Elo 适应的差异进化

文件状态
文件

概述

差分进化 (DE) 优化算法即使在高维复杂问题上也能令人满意地执行。但是,很难先验地选择最优参数。在这个包中,我们提出了 DElo(基于 Elo 评级系统进行改编的 DE)。Elo 评分最初用于国际象棋,是一种衡量动态适应度的方法。

安装

导航到存储库根文件夹并执行命令

pip install -e .

这将安装开发人员版本 - 对包源中文件的任何更改都将立即生效。无需重新安装。

要安装常规版本,只需不带-e选项执行即可。

例子

import delo

如果一个函数接受一个参数并返回一个值,像这样:

def my_single_argument_function(x):
    return np.sum(x ** 2)

必须像这样包装它:

def my_multi_argument_wrapping(x):
    return np.array([my_single_argument_function(xi) for xi in x])

described_my_function = delo.DescribedFunction(my_multi_argument_wrapping,
                                               dimension=5,
                                               domain_lower_limit=-5,
                                               domain_upper_limit=5)

然后,可以使用 DElo 找到函数的最优值:

algorithm = delo.DElo(100)
solution, best_f_value = algorithm.optimize(described_my_function, max_f_evals=10000)
print(solution, best_f_value)
# [0.0  0.0 -0.0  0.0  0.0], 8.5e-09

或者可以使用 DEloTQI 找到函数的最优值:

algorithm = delo.DElo_ties_and_QI(100)
solution, best_f_value = algorithm.optimize(described_my_function, max_f_evals=10000)
print(solution, best_f_value)
# [0.0 -0.0 -0.0 -0.0  0.0], 1.1e-11

参考:

  1. 阴影
  2. “有关 ES 的更全面介绍,请参阅 Beyer 和 Schwefel (2002)”~ 2021 年的预印本:“超参数优化:基础、算法、最佳实践和开放挑战”
  3. Beyer, H.-G., & Schwefel, H.-P. (2002 年)。进化策略 - 全面介绍。自然计算,1, 3–52。 弹簧链接

国际象棋ELO系统解释:

  1. https://youtu.be/AsYfbmp0To0
  2. https://en.wikipedia.org/wiki/Elo_rating_system

一般的想法是比较两个解决方案/基因组/样本时。如果一个人有更好的分数,不要认为它更好,而是它将是一个更有可能变得更好的人。

它基于其中 S 是 sigmoid 函数,是评分函数,是第 i 个样本。

致谢

在 Michal Okulewicz 博士的监督下,作为 Przemyslaw Adam Chojecki 和 Pawel Morgen 的联合工程师论文的一部分开发。在华沙理工大学。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

delo-0.9.0.tar.gz (31.6 kB 查看哈希)

已上传 source

内置分布

delo-0.9.0-py3-none-any.whl (32.7 kB 查看哈希)

已上传 py3