以此为启发,2009年剑桥大学杨新社教授和S.戴布提出该算法,为更好进行数学建模,做出以下三条假定:
1.每只布谷鸟只产一个蛋,然后把蛋倒进随机选择的鸟巢中。
2.蛋最好的巢穴将会一代一代保留下来(贪婪原则)。
3.巢穴是固定的,蛋有被发现的几率,那么巢穴的主人要不扔掉蛋,要么就重新找一个新的巢穴。
根据以上原理应用到边坡中可以直译为每个鸟巢就是一个滑动面,一次可以选择n个滑动面,n是固定数,如果这个鸟巢很好,也就是滑动面在此次为最不利的或是局部最不利的将予以保留,再进入下一代,而下一代就是迭代,如果滑动面稳定系数高的那么就扔掉它,继续去寻找一个新的巢穴(也就是滑动面)。该方法还是非常实用而且高效的!
具体对比可以参考我之前发的文章。比指定剪入剪出更为省事的高效高质量方法-布谷鸟搜索法计算边坡稳定性
我做了一个布谷鸟法的解释动图,同时我也将此可视化交互放到我的程序中。

其实算法不是最难,最难的是滑动面的确定,说了是圆弧了,开始的时候椭圆都给我搞出来了,甚至圆弧还是倒置的,所以设定约束条件费了老大的功夫。

那么我们就来看我们这个程序了,dxf导入导出功能保证了建模的便捷性以及获取滑动面的便利性。岩土材料参数同样设置了多元材料库,该材料可以导入导出,输入一次,后续需要直接导入即可,自动计算时候交互可视化强,可以实时看到每个滑动面对应的条块划分情况,并且直接导入模型中生成高清结果图。比如布谷鸟窝为30个,迭代100次,那么滑面就是3000个,掌握这个原理我们可以控制滑动面搜索个数,这里可以智能设置剪入和剪出线,同时也可以自动计算,这里建议结合个人经验设置剪入剪出线,可以避免结果可能失真,不过我们可以两种方法都计算进行对比。

然后就是加固设计,由于加固后最不利滑动面不一定是既有滑动面,因此需要加固后再进行搜索验证,这里我们的算法充分考虑了锚杆的有效加固长度,而不像市面上有些程序对于锚杆施加就认为其锚固力是设计力,实际比如锚杆6m长,滑动面5m,实际锚杆深出滑动面仅1m,这样如果仍考虑原锚固力就太危险了,所以引入有效锚固长度/总锚固长度的折减系数,更贴近实际情况。并且我自己编的程序知道怎么才是更好的产品,锚杆cable图层导入后,自动计算倾角、总长、距离滑动面的距离,方便设计师确定锚固长度与自由段长度,并且设置一键填充功能,同样的锚固力和间距的情况一键所有锚杆相同。同时,计算后会显示有效锚固力。
公式也是锚固力的公式:



该程序与边坡裂隙圆弧法计算程序配套使用,同一样的机器码,因此激活一个,此程序也可直接使用。