如何在网格中放置 2 种或更多种具有不同(重复)距离的元素时实施遗传算法?

How do I implement genetic algorithm on placing 2 or more kinds of element with different (repeating)distances in a grid?

如果我没有在标题中解释清楚我的问题,请原谅我。 这里我可以给你看两张图片作为例子:

我的问题描述如下:我有2个或多个不同的objects(图片中,两个objects:圆圈和十字),每一个都以固定的方式重复放置row/column距离(图中圆圈距离4,十字距离2)成网格。

第一张图中的两个object都是正确重复的,没有任何中断(这里的中断是指一个object可能占据了另一个的位置),但是第一张图中的排列分布不均匀;相反,在第二张图中,两个object可能有中断(圆object占据交叉object的位置)但画面是均匀分布的。

我的目标是尽可能统一放置(object仍然以固定距离放置,但可能允许一些占用)。这个问题有潜在的算法吗?或者有没有类似的问题?

我对这个问题有一些不成熟的想法:1.职业可能与最小公倍数有关; 2.如何从数学上定义“均匀分布”?也许没有遗传解决方案,但是否有针对某些特殊情况的解决方案? (例如,3 objects 距离是 2 的倍数,还是 3 的倍数?)

均匀性可以用平方反比距离(或平衡距离的距离)的总和来衡量。因为它有平方关系,任何接近其他的单片都会在系统中有很大的适应度惩罚,这样系统就不会容忍太近的片而更喜欢更好的分布。

如果您不使用平方(或更高阶)距离而是使用简单距离,那么系统甚至会开始容忍重叠部分。

如果要手动计算均匀性,请计算距离的标准差。你会说它完美与 1 距离和 0 偏差但足够小的偏差也可以接受。

我只在一个问题上测试了这个问题,即在一个正方形中放置 106 个圆圈,该正方形是圆圈大小的 10 倍。