从候选位置中逐个选择出生点时,只让新点远离某一个旧点并不够。先看它离所有已选位置中最近的一个有多远,再选择这个最小距离最大的候选,可以明确表达分散布置的局部目标。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
在二维整数地图中,两个固定位置先被占用。每轮给剩余候选计算到所有已占用点的距离平方,取最小值作为分数;选分数最高者,同分取原候选编号较小者,共选五轮。选中后立即加入已占用集合。
两固定点[[0, 0], [14, 15]] 十二候选按编号[[7, 6], [0, 13], [9, 4], [5, 13], [10, 7], [9, 8], [7, 1], [12, 0], [4, 10], [4, 1], [10, 12], [0, 3]]
第1轮剩余候选[编号,最近距离平方]为[[0, 85], [1, 169], [2, 97], [3, 85], [4, 80], [5, 74], [6, 50], [7, 144], [8, 116], [9, 17], [10, 25], [11, 9]],选中1号[0, 13],得分169;更新后的占用点[[0, 0], [14, 15], [0, 13]]。
第2轮剩余候选[编号,最近距离平方]为[[0, 85], [2, 97], [3, 25], [4, 80], [5, 74], [6, 50], [7, 144], [8, 25], [9, 17], [10, 25], [11, 9]],选中7号[12, 0],得分144;更新后的占用点[[0, 0], [14, 15], [0, 13], [12, 0]]。
第3轮剩余候选[编号,最近距离平方]为[[0, 61], [2, 25], [3, 25], [4, 53], [5, 73], [6, 26], [8, 25], [9, 17], [10, 25], [11, 9]],选中5号[9, 8],得分73;更新后的占用点[[0, 0], [14, 15], [0, 13], [12, 0], [9, 8]]。
第4轮剩余候选[编号,最近距离平方]为[[0, 8], [2, 16], [3, 25], [4, 2], [6, 26], [8, 25], [9, 17], [10, 17], [11, 9]],选中6号[7, 1],得分26;更新后的占用点[[0, 0], [14, 15], [0, 13], [12, 0], [9, 8], [7, 1]]。
第5轮剩余候选[编号,最近距离平方]为[[0, 8], [2, 13], [3, 25], [4, 2], [8, 25], [9, 9], [10, 17], [11, 9]],选中3号[5, 13],得分25;更新后的占用点[[0, 0], [14, 15], [0, 13], [12, 0], [9, 8], [7, 1], [5, 13]]。
五轮选中编号[1, 7, 5, 6, 3],每一轮都基于此前实际选择重新比较。
逐个枚举候选与当前占用点的配对距离,找出每个候选最不利的近邻,再比较这些最小值。核对选中点在当轮确实没有更高分的替代,但不要把逐轮局部最优误称为所有点组合的全局最优。
距离平方保持距离的大小次序,本例不需要开方。障碍物、视线、路径长度和队伍平衡都没有包含在这个几何模型中;实际关卡的出生安全性不能只靠这个分数判断。增加新点后,剩余候选必须重新评分。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。