假设我有一个分配问题,需要将骑手分配到座位上。我需要强制执行的约束条件是,每个座位最多只能分配一个骑手,每个骑手必须分配一个座位。
线性规划提供了表达这些约束条件的方法;然而,由于目标函数是非线性的,启发式算法(例如遗传算法)可能是一个合适的优化模型选择。
如果有25个座位可用,我需要一种在初始化基因时无需重复抽样这些座位的机制。此外,我需要突变和交叉来满足这个约束条件。
线性规划提供了表达这些约束条件的方法;然而,由于目标函数是非线性的,启发式算法(例如遗传算法)可能是一个合适的优化模型选择。
如果有25个座位可用,我需要一种在初始化基因时无需重复抽样这些座位的机制。此外,我需要突变和交叉来满足这个约束条件。
gene_space = [
{"low": 1, "high": 25, "step": 25},
]
我的问题是:
- PyGAD是否支持无重复采样的功能?
- 如果不支持,是否有可用的算法可以自适应地随机采样整数并强制执行此约束条件?
关于第2个问题,部分解决方案可能包括使用累积分布函数,给出带替换的随机抽样整数,并以某种方式使用CDF从可用座位中检索无重复样本。(这种方法可能效率较低,可能会阻碍使用PyGAD的一些优点。)