最小重量機器設計問題(回溯)

2021-08-11 11:19:19 字數 618 閱讀 7209

問題描述:

設某一機器由n個部件組成,每一種部件都可以從m個不同的**商處購得。設 w

ij是從**商j 處購得的部件i的重量,c

ij是相應的**。

試設計乙個回溯演算法,

對於給定的機器部件重量和機器部件**,計算總**不超過c的最小重量機器設計。

演算法思想:

n層m叉子集樹問題。

部件有n個,**商有m個,分別用w[i][j]和c[i][j]儲存從**商j 處購得的部件i的重量和相應**,cost為總**的上限。利用tempc+c[t][i]<=cost進行剪枝,若是到最後一層時,tempw小於之前得到的minw,則對minw和各部件**商best[n]進行更新。

參考**如下:

#include#define n 100

int w[n][n];

int c[n][n];

int best[n],x[n];

int n,m;

int cost;

int tempw=0,tempc=0,minw=10000;

void traceback(int t)

} for(int i=1;i<=m;i++){

if(tempw+w[t][i]

最小重量機器設計問題 回溯

題目內容 設某一機器由n個部件組成,部件編號為1n,每一種部件都可以從m個不同的 商處購得,商編號為1m。設wij是從 商j處購得的部件i的重量,cij是相應的 對於給定的機器部件重量和機器部件 計算總 不超過d的最小重量機器設計。輸入格式 第1行輸入3個正整數n,m和d。接下來n行輸入wij 每行...

最小重量機器設計問題 回溯法)

include include using namespace std define maxn 1000 int n 部件個數 int m 供貨商個數 int max c 最大 int w maxn maxn int c maxn maxn 費用 int cc 當前 int cw 當前重量 int ...

回溯法求解最小機器重量設計問題

題目 設某一機器由n個部件組成,部件編號為1n,每一種部件都可以從m個不同的 商處購得,商編號為1m。設wij是從 商j處購得的部件i的重量,cij是相應的 對於給定的機器部件重量和機器部件 計算總 不超過d的最小重量機器設計。注意 輸出結果中第一行最後沒有空格。比如下面的輸出樣例中1 3 1後面沒...