装箱问题

原创 2011年09月14日 08:29:35

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

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

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

首次适应算法(FF):针对下次适应算法的缺陷,首次适应算法处理当前物品的时候,检查所有非空箱子,找到第一个能够放下当前物品的箱子并将该物品放入,否则则开启新的箱子。

最佳适应算法(BF):与首次适应算法类似,唯一的区别时当物品装箱时,不是直接装在第一个可装入的箱子中,而是装入在最适合该物体的箱子中,如果没有该箱子,则开启空箱。

首次适应算法和最佳适应算法有一个缺陷,即由于物品没有实现排序,则可能由于先装入小的物品,使大的物品在后来放入时无法装入,只得开启新的箱子,造成了空间的浪费,因此才有了这两种算法的改进算法。

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

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

装箱问题(Packing Problem)

装箱问题也叫背包问题,简单来说,就是把小货物往大箱子里装,要如何才能装得多。个人常见的经历就是“装冰箱”,很有趣的现象就是常常感觉冰箱再也装不下了,但是经过一翻折腾之后又神奇的装下了。从企业运作角度来...
  • shenlan211314
  • shenlan211314
  • 2011-03-09 12:03:00
  • 9129

常见内存分配算法:首次适应算法(FirstFit)循环首次适应算法(NextFit)最佳适应算法(BestFit)最坏适应算法(WorstFit)

一、首次适应算法(First Fit):该算法从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按      照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍...
  • liying_1234
  • liying_1234
  • 2016-07-28 10:57:47
  • 10306

First Fit&Worst Fit

#include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f #d...
  • Irish_Moonshine
  • Irish_Moonshine
  • 2017-12-05 19:44:47
  • 64

实例分析首次适应算法、最佳适应算法、最差适应算法

关于首次适应算法、最佳适应算法和最差适应算法,先看一下百度百科的解释,已经说出了三者的最大区别。 首次适应算法(first-fit):从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配...
  • u011070169
  • u011070169
  • 2016-11-15 22:09:07
  • 12375

内存分配算法,包括first-fit,best-fit等

  • 2010年12月28日 19:57
  • 89KB
  • 下载

装箱问题(NP问题)

问题描述有n个物品,体积为 v[i],i = 1..n。 现在有若干同样的箱子,体积为C,C > v[i], i = 1..n。问最少需要多少箱子,才能装下所有的物品。问题求解这类问题是NP问题,即可...
  • nisxiya
  • nisxiya
  • 2015-05-06 11:30:56
  • 3150

操作系统分区分配算法first-fit ,next-fit,worse-fit模拟

  • 2013年10月26日 14:36
  • 42.99MB
  • 下载

装箱问题近似算法概述

问题描述:一维经典装箱问题可描述如下:S=(S1,S2,..Sn),其中0< Si ≤ 1, 称之为第i个物体的体积(或重量),1≤i≤n,现有n个容积(或载重量)为1 的箱子,要求如何设法将S1,S...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2015-07-05 19:52:39
  • 3749

贪心算法之装箱问题

问题描述:     有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中,使占用的箱子数尽量少。 贪心算法中要求每一步的解都是当前步骤中的最优解。原问...
  • Panda_m
  • Panda_m
  • 2014-11-29 20:41:00
  • 6389

最佳适应算法(best fit)

  3) 最佳适应算法(best fit)   所谓“最佳”是指每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。为了加速寻找,该算法要求将所有的空闲分区按其容量...
  • fullhouse8933
  • fullhouse8933
  • 2010-09-25 20:08:00
  • 2743
收藏助手
不良信息举报
您举报文章:装箱问题
举报原因:
原因补充:

(最多只允许输入30个字)