1.你對回溯演算法的理解
回溯演算法是乙個既帶有系統性又帶有跳躍性的搜尋演算法,是利用深度優先的原則對樹型解空間進行探索的演算法設計策略。當用於求問題的所有解時,需要回溯到根,且根結點的的所有子樹都已被搜尋遍才結束。當用於求問題的乙個解時,只要搜尋到問題的乙個解就可結束。回溯法適用的問題有兩種,一是子集樹問題,比如揹包問題;二是排列樹問題,比如求最短路徑。
2.請說明「子集和」問題的解空間結構和約束函式
問題的的解空間至少應包含問題的乙個(最優)解。「子集和」問題比如有n種可選擇物品的0-1揹包問題,解空間由長度為n的0-1向量組成,該解空間包含對變數的所有可能的0-1賦值。
約束函式用於在擴充套件節點處減去不滿足約束的子樹。指的是不滿足問題的約束條件。比如0-1揹包問題中,當物品重量大於揹包容量時,就不會被包含在最優解裡。
3.請說明在本章學習過程中遇到的問題及結對程式設計的情況
回溯法一開始就要明確解空間,然後找出找到最優解的方法。遇到的問題便是如何將回溯法應用到實際問題上。隨著演算法策略學了不止一種,在面對乙個問題時,會猶豫用哪種演算法。這也是在結對程式設計中遇到的問題。
演算法導論 第5章
這一章,說來說去,兩件事情,1.概率分析。2.隨機演算法。先把這個僱傭問題拿出來。問題 有一批參與面試的人,你要乙個個面試 面試每個人都要花費c1 如果當前面試者比自己的助理能力強,則辭掉當前助理的,並把當前面試者提拔為助理 僱傭乙個人要花費c2 一直面試完所有人。這裡考慮的是面試所花的money,...
演算法第5章上機實踐
1.實踐題目 工作分配問題 2.問題描述 7 2 工作分配問題 20 分 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。輸入資料的第一行有1 個正整數n 1 n 20 接下來的n行,每行n...
演算法第5章實踐報告
實踐題目 工作分配問題 問題描述 7 2 工作分配問題 20 分 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。輸入資料的第一行有1 個正整數n 1 n 20 接下來的n行,每行n個數,表...