This commit is contained in:
krahets
2023-07-26 08:59:03 +08:00
parent fd34c845bc
commit 974fea7de4
48 changed files with 299 additions and 299 deletions
@@ -4757,9 +4757,9 @@
</ul>
<p>请注意,对于许多组合优化问题,回溯都不是最优解决方案,例如:</p>
<ul>
<li>0-1 背包问题通常使用动态规划解决,以达到更高的时间效率</li>
<li>旅行商是一个著名的 NP-Hard 问题,常用解法有遗传算法和蚁群算法等</li>
<li>最大团问题是图论中的一个经典问题,可用贪心等启发式算法来解决</li>
<li>0-1 背包问题通常使用动态规划解决,以达到更高的时间效率</li>
<li>旅行商是一个著名的 NP-Hard 问题,常用解法有遗传算法和蚁群算法等</li>
<li>最大团问题是图论中的一个经典问题,可用贪心等启发式算法来解决</li>
</ul>
@@ -3733,8 +3733,8 @@
</ol>
<p>分支越靠右,需要排除的分支也越多,例如:</p>
<ol>
<li>前两轮选择 <span class="arithmatex">\(3\)</span> , <span class="arithmatex">\(5\)</span> ,生成子集 <span class="arithmatex">\([3, 5, \cdots]\)</span> </li>
<li>前两轮选择 <span class="arithmatex">\(4\)</span> , <span class="arithmatex">\(5\)</span> ,生成子集 <span class="arithmatex">\([4, 5, \cdots]\)</span> </li>
<li>前两轮选择 <span class="arithmatex">\(3\)</span> , <span class="arithmatex">\(5\)</span> ,生成子集 <span class="arithmatex">\([3, 5, \cdots]\)</span> </li>
<li>前两轮选择 <span class="arithmatex">\(4\)</span> , <span class="arithmatex">\(5\)</span> ,生成子集 <span class="arithmatex">\([4, 5, \cdots]\)</span> </li>
<li>若第一轮选择 <span class="arithmatex">\(5\)</span> <strong>则第二轮应该跳过 <span class="arithmatex">\(3\)</span><span class="arithmatex">\(4\)</span></strong> ,因为子集 <span class="arithmatex">\([5, 3, \cdots]\)</span> 和子集 <span class="arithmatex">\([5, 4, \cdots]\)</span><code>1.</code> , <code>2.</code> 中生成的子集完全重复。</li>
</ol>
<p><img alt="不同选择顺序导致的重复子集" src="../subset_sum_problem.assets/subset_sum_i_pruning.png" /></p>