演算法第5章上機實踐

2022-07-21 19:51:12 字數 837 閱讀 6879

1.實踐題目 :

工作分配問題

2.問題描述

7-2 工作分配問題 (20 分)

設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計乙個演算法,對於給定的工作費用,為每乙個人都分配1 件不同的工作,並使總費用達到最小。

輸入資料的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示工作費用。

將計算出的最小總費用輸出到螢幕。

在這裡給出一組輸入。例如:

3

10 2 3

2 3 4

3 4 5

在這裡給出相應的輸出。例如:

9
3.演算法描述(包括解空間,畫出測試樣例的解空間樹,剪枝(約束函式或限界函式)方法描述)

本道題的解空間為n叉樹

用乙個陣列x【】來儲存每乙個工人選擇的工作,比如x的值表示第乙個工人選擇的工作是哪乙個。

限界函式有 y 和 best,y 表示當前的花費,初始化為0,best 作為最終答案初值為每人按編號幹對應工作的花費,如果出現了y>best,則剪枝。

4、心得體會(對本次實踐收穫及疑惑進行總結)

這道題思路明確,在和隊友合作下,順著我們所想的就把它做了出來。而第一道01揹包問題,因為剪枝函式比較複雜,我們討論了很久,加上看了書,才能做出來。所以對於回溯法,按一般套路去做是會有答案的,但如果要考慮到剪枝函式,就要耗時比較久(不一定能想出來),所以還是對問題的敏感性不夠,在今後會多加努力。

演算法第5章上機實踐報告

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個數,表...

作業系列 演算法第3章上機實踐報告

1.實踐題目 7 3編輯距離問題 2.問題描述 設a和b是2個字串。要用最少的字元操作將字串a轉換為字串b。這裡所說的字元操作包括 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元。將字串a變換為字串b所用的最少字元運算元稱為字串a到 b的編輯距離,記為d a,b 對於給定的字串a和...