第五章上机实验报告

1.     实践题目及问题描述

工作分配问题;n件工作分配给n个人,为每一个人都分配1 件不同的工作,工作i分配给第j个人所需的费用为cij,设计一个算法,使总费用最小。

2.     算法描述

(1)     解空间

{<x11,x12…x1n>,<x21,x22…x2n>……<xn1,xn2…xnn>}

其中 <x11,x12…x1n>!=<x21,x22…x2n>!=…!= <xn1,xn2…xnn>

(2)     解空间树(n=3为例)

 

(3)     剪枝方法描述

限界函数:当给所有人分配完工作后就返回

if(t == n+1){

          if(cost < best){

                 best = cost;

                 return;

          }

      }

约束函数:当前总费用大于记录的最少费用时回溯,不再往下遍历

if(cost < best){

                 distribution(t+1);

          }

swap(x[t],x[i]);

cost -=c[t][x[i]];

3.     心得体会

觉得这章的回溯法代码比较难理解,不怎么会打,但通过上机课多打对回溯法有了进一步的了解。然而还是存在疑惑,有些代码不知道是怎么回溯的,可能是之前学的调用方法还没学透。有待多练习。

 

转载于:https://www.cnblogs.com/lyt823/p/10162293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值