算法设计与分析第五章作业

一、 请用回溯法的方法分析“最小重量机器设计问题”


题目内容:设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设wij​是从供应商j 处购得的部件i的重量,cij​是相应的价格。
试设计一个算法,给出总价格不超过d的最小重量机器设计。

 


1.1 说明“最小重量机器设计问题"的解空间
在样例n=3,m=3时,解空间为

(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3)
(2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3)
(3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 3, 1), (3, 3, 2), (3, 3, 3)

1.2 说明 “最小重量机器设计问题"的解空间树

1.3 在遍历解空间树的过程中,每个结点的状态值是什么

广度优先遍历

1.4 如何利用限界函数进行剪枝
 

void Backtrack(int t)
{
    if (t > n)                     //搜索到叶子结点,一个搜索结束,所有零件已经找完
    {
        bestw = cw;                //当前最小重量
        for (int j = 1; j <= n; j++)
            bestx[j] = x[j];
    }
    else
    {
        for (int j = 1; j <= m; j++)
        {
            x[t] = j;
            cp=cp+c[t][j];
            cw=cw+w[t][j];
            if (cp <= d && cw < bestw)      //剪枝 
                Backtrack(t + 1);
            cp=cp-c[t][j];                  //回溯 
            cw=cw-w[t][j];
        }
    }
}
2. 你对回溯算法的理解

回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值