Advertisement

深度优先搜索和广度优先搜索

阅读量:

一 DFS深度优先遍历

有n个物体存在系统中,每个物体的质量是w_i,其重要性系数为c_i.为了实现系统的稳定运行,必须选择一组物体投入系统核心区域,以确保这组物体的质量之和不超过系统的承载能力,并使该组物体的重要程度指标之和达到最优.

因为每一个物品都有选择或放弃两种可能性, 这就是路口. 当所选物品的重量总和超过V时, 则陷入困境, 并需回头到最近的路口.

在深度优先搜索过程中每次都需要选择一个待处理的物品以决定下一步的操作为此DFS算法需要传递以下几个关键信息:一是当前处理的具体对象即待选物品编号(记为index);二是算法运行至当前阶段所累积的选择效果这包括已选中各项目的重量总和(记为sumW)和价值总量(记为sumC)。这些信息共同构成了确保算法正确运行的基础依据

复制代码
    void DFS(int index,int sumW,int sumC)

若跳过第i个物品(其中i代表index),则sumW与sumC的值将保持不变;随后处理第i+1个物品时的具体选择路径将在后文详细说明。

复制代码
    void DFS(index+1,sumW,sumC)

当决定放置到index号位置时,在计算总重量时会累加w[index]的值,在计算总价值时会累加c[index]的值。随后处理下一个位置。

复制代码
    void DFS(i

全部评论 (0)

还没有任何评论哟~