#遗传算法 #优化 #调度 #适应性 #数字 #调度器 #长度

ga-scheduler

适用于调度和相关任务的遗传算法优化器

2个版本

0.1.1 2022年9月15日
0.1.0 2022年9月13日

#1615 in 算法

Apache-2.0

175KB
3K SLoC

CI crates-io api-docs

遗传算法调度器

(此README是从 文档 中提取的,该文档更权威且更全面)。

这是一个基于多维度遗传算法的优化器,用Rust编写并支持多线程。

此优化器是为调度系统设计的,将最好地适用于具有相似特征的问题。您不必将其用于班次调度,它应该适用于满足以下特征的所有内容

  • 存在大量适应性函数,而不是单个数字甚至少数几个要优化的数字。这是此实现与其他许多实现的区别之一。在我们的情况下,如何使调度符合每个员工的每个偏好被视为一个适应性函数。鉴于员工可以指定每个班次的适用性,这意味着适应性函数的数量是染色体长度的倍数。

  • 变量是离散的而不是连续的。在我们的情况下,每个班次可以预订的小员工数量是有限的。

  • “染色体”具有固定的长度。

  • 染色体中的位置(即座位)很重要。(在某些其他问题域中,座位不太重要,而基因的顺序更重要)。

  • 适应性函数的计算相对便宜。并行性在种群级别而不是游戏级别。

这些特征中的一些比其他特征更硬编码。例如,您可以通过调整[FitnessFunction]、[交叉]和[突变]函数来使基因组关系更显著。

依赖关系

~0.5–1.1MB
~24K SLoC