硕士论文的研究主题就是动态规划在现代化物流中的研究方向,考虑该研究论文,实际是从现实环境中出发,本人所在的企业是O2O模式的IT企业,现有的Online基本已有很完善的解决方案,但是在Offline的物流方向却是比较让人纠结,在这里我提出几个关键性的问题,我相信在现实的以O2O模型为主导的企业也会遇到的。
1.车载负重最大20t,如何优化能够尽可能的装多物品呢?
2.在一个3000平的物流基地,如何能够减轻物流员,能够迅速地找到物件,最短路径呢?
3.并不是每家企业都有亚马逊那般的机器人,以我们公司为例,人力成本是非常大,基本上是以单元化的区块的员工负责分配到流水线,假设物品有同一个规格,在一个长86cm、宽62cm、高45cm的中转箱中如何能够找最优化的存储物品件数呢?
4.如何更好分类物品存放区域呢?
......
提出上述问题,完全站在论文角度看问题,望大家能够理解,其实O2O产业链对于技术的挑战很大。那么关于这些问题提出,也是经过我在现有公司发现的,我也想通过技术的手段进行优化,那么我如何进行去考虑的呢?
本科时期,学习态度不够认真,不过幸亏数学功底依旧在,上述的问题让我想起数学建模比赛(完全闲着蛋疼去参加)使用Dynamic Programming的算法设计,重新拿起清华大学的运筹学课本,我竟然看不懂!!!
不过既然为了优化物流线的一丁点的问题,还是硬啃去翻阅了书籍,开篇从最简单的问题,譬如
我们从考虑最大字段和的问题,例子:0, -2, -11, -4, 6, 15, -21,那么最大字段和就是6、15
设 bi=,
public static int getMaxSum(int[] a, int n) {
int sum = 0;
int[] b = new int[n + 1];
b[0] = 0;
int start = 0;
int end = 0;
int t = 0;
for (int i = 1; i <= n; i++) {
if (b[i - 1] > 0) {
b[i] = b[i - 1] + a[i];
} else {
b[i] = a[i];
t = i;
}
if (b[i] > sum) {
sum = b[i];
start = t;
end = i;
}
}
System.out.println("start:" + start + " & end:" + end);
return sum;
}
我相信我刚才的求解并不能解决实际物流线上的问题,这只是作为刚开始进入论文论证阶段,还是先从简单开始,接下来我将描述下背包01问题。