第五章--回溯法理解

2301_80232444 2024-12-22 22:01:34

一、回溯法分析

1、解空间:本题的解空间就是n(部件数)^ m (可选的供应商)组合空间,包括了所有的可能,其中每个解对应于一组部件的供应商选择。

2、解空间树:对于根节点:表示在还没有选择任何部件时的初始状态。非根节点:当前部件的供应商选择。对于每个部件,它有 m 个可能的供应商选择(即每个部件有 m 个子节点),在树的深度为 n 时,树的叶子节点代表已经为所有部件选择了供应商。叶子节点:表示一种解,所有部件的供应商都已确定。每一层都代表一种部件的选择。

3、节点状态值:nw(表示当前选择方案下,已经选择的部件的总重量) nc(表示当前选择方案下,已经选择的部件的总价格。)who[]数组(对于每个节点,记录当前部件选择的供应商编号,即数组who[i]来表示第 i个部件选择的供应商  bestw(表示当前遍历的过程中已经找到的最小重量。这是用于剪枝和更新最优解的一个标记)

4、限界函数进行剪枝:价格限制:在每个节点选择一个供应商时,检查当前选择后的总价格是否已经超过预算,如果超出预算,则无需继续扩展这个节点的子节点,直接进行剪枝。 重量限制:在每个节点选择供应商时,如果当前的总重量已经大于当前已知的最优解的最小重量,不需要继续。

二、回溯法理解

一种通用的,暴力的解决问题的办法,通过在解空间中进行DFS,并在遇到不符合条件的部分时回退,尝试其他路径。它通过遍历所有可能的解,最终可以得到最优解,同时可能会超时,所以要对其剪枝和限界。回溯法的关键是寻找确定易于搜索的解空间树:首先需要了解问题的输入和所求目标。在构造解空间树时,可以将每个问题的解视为一个逐步构造的过程,每次选择一个决策,将当前的部分解扩展为新的部分解。

典型问题:n后问题、0-1背包、数独问题等

...全文
50 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

434

社区成员

发帖
与我相关
我的任务
社区描述
广东外语外贸大学信息科学与技术学院
算法 高校
社区管理员
  • brisksea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧