在启发式算法的上下文中,启发式将是执行小的修改的一种方法,或一系列的修改,对给定解或部分解的修正,为了得到不同的解或部分解决方案。实际的修改这些工作将涉及到邻居搜索。按照一定的设计策略,一个启发式算法将包括迭代地应用一个或多个启发式。
1,柯克曼女生散步问题(Kirkman Schoolgirl)
柯克曼女生散步问题是世界上最难的一百道数学题之一,许多人对它充满兴趣,有些数学爱好者甚至花费几年时间来钻研它。这道题题意是这样的:“15个女生每天分组散步1次, 3人1组,规定1个星期内任意2人都有1次(且仅1次)编在同组。要求排出1个星期的分组方案。
这个问题的充分必要条件是,人数满足6k+3就可以分出满足要求的方案。
启发式算法过程:假设一个初始解,这个解可以不满足要求,例如7天的分组都是一样的,对于每一个出现的点对T(i,j),当降到0时,就找到了解,降得过程就是随机交换分组中的元素,使得求和在不断下降,直到0。例如可以使用