首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 近似装箱问题(三种联机算法实现)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
近似装箱问题(三种联机算法实现)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2016-8-18 16:46
|
只看该作者
近似装箱问题(三种联机算法实现)
源代码
,
箱子
【0】README
0.1)
本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解
“近似装箱问题(三种联机算法实现)”
的idea 并用源代码加以实现;
0.2) 近似装箱问题的三种联机算法 分别是:
下项适合算法 + 首次适合算法 + 最佳适合算法 , 我们将依次给出源代码实现+算法描述;
0.2)联机问题+脱机问题
version1)联机装箱问题:
在这种问题中, 必须将每一件物品放入一个箱子后才处理下一件物品;(英语口语考试, 做完上一题,才能进入下一题作答)
version2)脱机装箱问题:
在一个脱机装箱算法中, 我们做任何事情 都需要等到所有的输入数据全被读入后才进行;(一般的考试,你只需要在规定的时间做完题目即可,做题顺序不是我们所关心的)
【1】近似装箱问题
1.1)问题描述:
给定N 项物品, 大小为 s1, s2, ..., sN, 所有的大小都满足 0 < si < = 1 ;问题是要把这些物品装到最小数目的箱子中去, 已知每个箱子的容量是1个单位;下图显示的是 对N项物品的最优装箱方法;
1.2)有两种版本的装箱问题:
version1)联机装箱问题:
在这种问题中, 必须将每一件物品放入一个箱子后才处理下一件物品;(英语口语考试, 做完上一题,才能进入下一题作答)
version2)脱机装箱问题:
在一个脱机装箱算法中, 我们做任何事情 都需要等到所有的输入数据全被读入后才进行;(一般的考试,你只需要在规定的时间做完题目即可,做题顺序不是我们所关心的)
1.3)联机算法
1.3.1)要考虑的第一个问题是:
一个联机算法即使在允许无限计算的情况下是否实际上总能给出最优的解答;我们知道, 即使允许无限计算, 联机算法也必须先放入一项物品然后才能处理下一件物品并且不能改变决定
1.3.2)我们可以证明:
联机算法不总能够给出最优解;
【2】下项适合算法
2.1)算法描述:
当处理任一物品时, 我们检查看他是否还能装进刚刚装进物品的同一个箱子中去。 如果能够装进去, 那么就把它装入该箱子中, 否则,就开辟一个新箱子;
2.2)看个荔枝:
2.3)source code + printing results
2.3.1)download source code:
https://github.com/pacosonTang/dataStructure-algorithmAnalysis/tree/master/chapter10/p271_nextFit
2.3.2)source code at a glance:(for complete code , please click the given link above)
void nextfix(double key, int* index){ int i; ElementTypePtr box; ElementTypePtr temp; box = buildSingleElement(); box->key = key; // build single box with key over i = *index; for(; i<size; i++) { if(surplus
< key) continue; temp = boxes
; while(temp->next) temp = temp->next; temp->next = box; surplus
-= key; break; } *index = i;}
2.3.3)printing results:
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议