装箱问题近似算法概述

  问题描述:一维经典装箱问题可描述如下:S=(S1,S2,..Sn),其中0< Si ≤ 1, 称之为第i个物体的体积(或重量),1≤i≤n,现有n个容积(或载重量)为1 的箱子,要求如何设法将S1,S2,..Sn放入尽可能少的箱中。

  装箱问题是NP问题,即在多项式时间内无法精确求解,一般采用近似算法,即启发式算法,这样可以迅速得到满意解,而不一定是最优解.

  常见的算法:NF(Next Fit)近似算法,FF(First Fit)近似算法,FFD(First Fit Decreasing)近似算法,BF(best Fit),BFD(Best Fit Deceasing)等,

  下次适应算法(NF, Next Fit):NF算法是最简单也是最早研究的一个算法,它的处理方法是始终维持一个当前打开的箱子,对于每一个要装入的物品,检查该物品是否可以放入当前打开的箱子,如果无法装入,则打开一个空箱子,装入该物品,以该箱子作为当前的箱子,由于每个物品在装入时,只有当前打开的箱子和空箱可以选择,这必然造成装箱的效率低下。

  首次适应算法(First Fit):针对下次适应算法的缺陷,首次适应算法FF处理当前物品的时候,检查所有非空箱子,找到第一个能够放下当前物品的箱子并将该物品放入,否则则开启新的箱子。
  
  最佳适应算法(Best Fit):与首次适应算法类似,唯一的区别时当物品装箱时,不是直接装在第一个可装入的箱子中,而是装入在最适合该物体的箱子中,如果没有该箱子,则开启空箱。
  
  首次适应算法和最佳适应算法有一个缺陷,即由于物品没有实现排序,则可能由于先装入小的物品,使大的物品在后来放入时无法装入,只得开启新的箱子,造成了空间的浪费,因此才有了这两种算法的改进算法。

  降序首次适应算法(FFD, First Fit Decreasing):先对物品按降序排序,再按照首次适应算法进行装箱。

  降序最佳适应算法(BFD, Best Fit Decreasing):先对物品按降序排序,再按照最佳适应算法进行装箱。

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值