标签:
适用情景:
要求满足某些限制条件下,求得全部解或者最优解。
步骤:
把解集合,划分成树状或图状的空间;每一层的选择对应于解的一部分(如第n层对应于解得第n部分)。
如果某分支上,第n层仍然满足条件,那么继续遍历到第n+1层;否则,回溯到第n-1层,去其他树枝上遍历(这里节省了时间)。这里实际是深度优先遍历!
如果到了最后一层,那么证明这是一个合理的解;至于是否是最佳解,需要比较。
如上图所示,树总共有4层,第0层表示开始,无具体意义,表明解空间有3个可选部分。
第1到第n层,如果支线上数字为1,表示选择解部分s[n];如果为0,表示不选择该解部分s[n]
到第n层(111,110,......,000),表示求得一个解。
例子:
http://blog.csdn.net/jarvischu/article/details/16067319
标签:
原文地址:http://www.cnblogs.com/johnchow/p/5366417.html