求一算法 高分求助,在线恭候, 解决立即结贴

Justin1818 2004-06-19 07:03:26

求一个高效的算法 (求最优拼柜算法)
解释: 拼柜是将所有的零散的货物按体积 合并(Consolidate )在一个集装箱中组成一个柜子出货)

现在在数据库中有一个表为 [WMSCFS_TAB] 用来存放所有的散货 订单资料
用以下字段
ID SO(文件号) PO_NO(订单号) CBM(体积) KGS(重量) DESTINATION(目的港) STATUS(状态) Container_No(柜号) Container_type (柜型)
1 012345 8124433 5.95 710 SAV NEW
2 .... ..... .... ..... SSB .....
3 .... ..... .... ..... LGB .....
4 .... ..... .... ..... ...... .....
5 .... ..... .... ..... ...... .....

分析需求:
56 CBM <= 40 平柜的容量为 <=61 CBM
65 CBM <= 40 高柜的容量为 <=71 CBM
75 CBM <= 45 高柜的容量为 <=81 CBM
52 CBM <= 40 干冻柜的容量为 <=60 CBM

条件 1 去同一个DESTINATION(目的港) 的货拼在一起 生成相同的Container_No(柜号) ,
并将所有满足条件的 STATUS(状态) 改为Done, 注明柜型
条件 2 按上面的容量范围来拼成相应的柜子
条件 3 最先拼符合 40 平柜的容量, 和40 高柜的容量的记录

条件 4 最后 对于CBM大于相应容量的PO_NO分拆成多次与其它的PO_NO组合拼装
条件 5 最后 没有拼完的保持为NEW的STATUS(状态) 下次再拼


如果用sql来操作是否有有效的SQL语句

...全文
232 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin1818 2004-07-05
  • 打赏
  • 举报
回复
to:
netying(鹰击长空);
而且感觉你这不能只根据体积来,那形状不是也很重要吗?

xjdawu(I lost myself)
只考虑体积肯定不行,实际情况肯定还得考虑形状特征,除非货物都像面团一样软

ptpa(古月西西)
还得考虑是不是怕压,形状特征如果不考虑空间利用率的话,要考虑最大面积,还有
重量问题肯定不能只一个体积决定的了的

---------------------不考虑形状,怕压 因为在拼柜前仓库已经做好了相关工作

to : cunheise(lurker)
你是不是做单证的啊,单证是不需要考虑这个的
-----------No

cat_hsfz
只考虑体积,不考虑长宽高怎么行?如果你这只是一个算法问题,不需要实用——
到算法版问;如果你需要这个程序真正能够高效为你提供有效解决方案——还是到算
法版问。
另外这也不是SQL能解决的问题,用算法解决,给你的多数是C/C++代码,要把所有同
一目的地的数据全部读入内存然后组合装箱。
-------------------------------
是的,只是一个算法问题 ,但是对于算法担心处理的速度, 故设想SQL是否有有效的
SQL语句来操作



xjdawu 2004-07-05
  • 打赏
  • 举报
回复
学习
Justin1818 2004-07-04
  • 打赏
  • 举报
回复
看来CSDN 是没有回答我的问题了

板主何在, 为什么这个问题无人问津, 太简单也要说出一个理由呀
还是太复杂, 没有人会呀
luoluonozuoluo 2004-07-04
  • 打赏
  • 举报
回复
现在还不知道自己能不能想出来先回去研究一下。
cat_hsfz 2004-07-04
  • 打赏
  • 举报
回复
只考虑体积,不考虑长宽高怎么行?如果你这只是一个算法问题,不需要实用——到算法版问;如果你需要这个程序真正能够高效为你提供有效解决方案——还是到算法版问。

另外这也不是SQL能解决的问题,用算法解决,给你的多数是C/C++代码,要把所有同一目的地的数据全部读入内存然后组合装箱。
ptpa 2004-07-04
  • 打赏
  • 举报
回复
还得考虑是不是怕压,形状特征如果不考虑空间利用率的话,要考虑最大面积,还有重量问题
肯定不能只一个体积决定的了的
xjdawu 2004-07-04
  • 打赏
  • 举报
回复
只考虑体积肯定不行,实际情况肯定还得考虑形状特征,除非货物都像面团一样软
cunheise 2004-07-04
  • 打赏
  • 举报
回复
你是不是做单证的啊,单证是不需要考虑这个的
fashchina 2004-07-04
  • 打赏
  • 举报
回复
up
netying 2004-07-04
  • 打赏
  • 举报
回复
而且感觉你这不能只根据体积来,那形状不是也很重要吗?
netying 2004-07-04
  • 打赏
  • 举报
回复
比较难。
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
继续描述该问题 ====================================== 拼柜: 是将所有的零散的货物按体积 合并(Consolidate )在一个集装箱中组成一个柜子出货) 零散的货物 简称 “散货”: 大多情况是指这批货体积不能装满一个整柜, 或者是尽管这批货 物的体积能装满一个整柜甚至还有多,但是客户要求以散货的形式交给仓库并委托给 仓库来拼装 ) 为了优化仓库的存货空间,为了优化的存货空间,出现了我以下的问题 怎样将这些散货拼装才能最大限度的节省空间和存本呢? 假如[WMSCFS_TAB]用来存放这些记录,其结构如下表 ===============================用来存放所有的散货资料 字段名 说明 ---------------------------- ID (AutoNumber) SO (文件号) 用来存放文件号码 该号码与PO_NO一一对应 PO_NO (订单号) CBM (体积) KGS (重量) DESTINATION (目的港) STATUS (状态) (没有拼柜之前状态为 NEW ) Container_No (柜号) (在拼柜之前柜号是不存在的) Container_type (柜型) 集装箱类型的容量 区间如下: 最小体积 集装箱类型 最大体积 ------------------------------------------------------ ( "<=" 大于或等于 56 CBM <= 40尺平柜集装箱的容量为 <=61 CBM 65 CBM <= 40尺高柜集装箱的容量为 <=71 CBM 75 CBM <= 45尺高柜集装箱的容量为 <=81 CBM 52 CBM <= 40尺干冻柜集装箱的容量为 <=60 CBM ----------------------------------------------------------------------- 假如数据实例如下: ID SO PO_NO CBM KGS DESTINATION STATUS Container_No Container_type 1 SO1 PO1 5.36 750 US NFK TRIM NEW 2 SO2 PO2 5.33 710 US NFK TRIM NEW 3 SO3 PO3 55.32 710 US NFK TRIM NEW 4 SO4 PO4 5.36 750 GM HAM TRIM NEW 5 SO5 PO5 45.33 700 GM HAM TRIM NEW 6 SO6 PO6 75.32 310 GM HAM TRIM NEW 以上有6批货(第条记录表示一批散货) 有3批散货 是去 美国 洛杉矶 另有3批散货 是去 德国 汉堡 要求将所有去美国 洛杉矶的散货按以上的集装箱容量拼装 要求将所有去德国 汉堡的散货按以上的集装箱容量拼装 注意: 1 最先拼满足 40尺平柜的容量, 和40尺高柜的容量的散货 这是优化的原则 2 只有去往同一个(目的港)的散货才能拼装在一个柜子里 运往同一个目的地 3 对于体积超过以上容量的散货,就拆开成多条记录(每条记录就是一批散货) 4 最后拼完后剩下的货物纳入到一次拼柜操作中继续拼装 如果拼出来的结果是PO1,PO2 PO3 是装在一个40尺高柜中就生成一个相同的柜号, (在拼柜之前柜号是不存在的),将状态更新为 "DONE", Container_type (柜型)中update 所拼装的集装类型. 如果用sql来操作是否有有效的SQL语句来操作该表 <当然拼柜还有其它条件,但这其它条件不是本问题的主要困难所在> =========================================================================== 如果有朋友对这个问题有兴趣可以与我一起讨论,大家相互交流经验, 特别是有物流开发(或仓储开发) 相关经验的朋友 如果对我的问题还有疑问您也可以与我在MSN上讨论 MSN: ekuan_1818@sina.com 欢迎参与 谢谢 !! 分不够再加. 希望大家来参与
Justin1818 2004-06-20
  • 打赏
  • 举报
回复
继续描述该问题
======================================
拼柜:
是将所有的零散的货物按体积 合并(Consolidate )在一个集装箱中组成一个柜子出货)

零散的货物 简称 “散货”:
大多情况是指这批货体积不能装满一个整柜, 或者是尽管这批货
物的体积能装满一个整柜甚至还有多,但是客户要求以散货的形式交给仓库并委托给
仓库来拼装 )

为了优化仓库的存货空间,为了优化的存货空间,出现了我以下的问题
怎样将这些散货拼装才能最大限度的节省空间和存本呢?


假如[WMSCFS_TAB]用来存放这些记录,其结构如下表
===============================用来存放所有的散货资料
字段名 说明
----------------------------
ID (AutoNumber)
SO (文件号) 用来存放文件号码 该号码与PO_NO一一对应
PO_NO (订单号)
CBM (体积)
KGS (重量)
DESTINATION (目的港)
STATUS (状态) (没有拼柜之前状态为 NEW )
Container_No (柜号) (在拼柜之前柜号是不存在的)
Container_type (柜型)

集装箱类型的容量 区间如下:
最小体积 集装箱类型 最大体积
------------------------------------------------------ ( "<=" 大于或等于
56 CBM <= 40尺平柜集装箱的容量为 <=61 CBM
65 CBM <= 40尺高柜集装箱的容量为 <=71 CBM
75 CBM <= 45尺高柜集装箱的容量为 <=81 CBM
52 CBM <= 40尺干冻柜集装箱的容量为 <=60 CBM
-----------------------------------------------------------------------
假如数据实例如下:
ID SO PO_NO CBM KGS DESTINATION STATUS Container_No Container_type
1 SO1 PO1 5.36 750 US NFK TRIM NEW
2 SO2 PO2 5.33 710 US NFK TRIM NEW
3 SO3 PO3 55.32 710 US NFK TRIM NEW
4 SO4 PO4 5.36 750 GM HAM TRIM NEW
5 SO5 PO5 45.33 700 GM HAM TRIM NEW
6 SO6 PO6 75.32 310 GM HAM TRIM NEW

以上有6批货(第条记录表示一批散货)
有3批散货 是去 美国 洛杉矶
另有3批散货 是去 德国 汉堡

要求将所有去美国 洛杉矶的散货按以上的集装箱容量拼装
要求将所有去德国 汉堡的散货按以上的集装箱容量拼装
注意:
1 最先拼满足 40尺平柜的容量, 和40尺高柜的容量的散货 这是优化的原则
2 只有去往同一个(目的港)的散货才能拼装在一个柜子里 运往同一个目的地
3 对于体积超过以上容量的散货,就拆开成多条记录(每条记录就是一批散货)
4 最后拼完后剩下的货物纳入到一次拼柜操作中继续拼装

如果拼出来的结果是PO1,PO2 PO3 是装在一个40尺高柜中就生成一个相同的柜号,
(在拼柜之前柜号是不存在的),将状态更新为 "DONE", Container_type (柜型)中update
所拼装的集装类型.

如果用sql来操作是否有有效的SQL语句来操作该表
<当然拼柜还有其它条件,但这其它条件不是本问题的主要困难所在>

===========================================================================

如果有朋友对这个问题有兴趣可以与我一起讨论,大家相互交流经验,

特别是有物流开发(或仓储开发) 相关经验的朋友

如果对我的问题还有疑问您也可以与我在MSN上讨论
MSN: ekuan_1818@sina.com
欢迎参与
谢谢 !!

分不够再加. 希望大家来参与




pizixt 2004-06-20
  • 打赏
  • 举报
回复
意思是明白,写SQL困难。。。
zhanhuanjing 2004-06-20
  • 打赏
  • 举报
回复
看不懂问题

说明白点好吗?
Justin1818 2004-06-20
  • 打赏
  • 举报
回复
如果能解决以上问题 ,
只要在以下连接下再回复一次, 将得到100分,


http://community.csdn.net/Expert/topic/3107/3107907.xml?temp=.8910028
多谢大家过来帮忙顶!!
Justin1818 2004-06-20
  • 打赏
  • 举报
回复
有没有朋友能解决上面的问题

急呀

Justin1818 2004-06-20
  • 打赏
  • 举报
回复
to : tjficcbw(津津)
指四种集装箱的容量

每种集装箱最大能装多少体积的货物,和最少应该装多少体积的货物



tjficcbw 2004-06-19
  • 打赏
  • 举报
回复
56 CBM <= 40 平柜的容量为 <=61 CBM
65 CBM <= 40 高柜的容量为 <=71 CBM
75 CBM <= 45 高柜的容量为 <=81 CBM
52 CBM <= 40 干冻柜的容量为 <=60 CBM
不懂,这是什么意思

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧