最优装载
有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。
改问题可形式化描述为
其中变量xi=0表示不装入集装箱i,xi=1表示装入集装箱i。
最优装载问题可用贪心算法求解。采用重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解。具体算法描述如下:
▪ template ▪ void Loading(int x[], Type w[], Type c, int n) ▪ { ▪ int *t = new int [n+1]; ▪ Sort(w, t, n);
▪ for (int i = 1; i <= n; i++) x[i] = 0; ▪ for (int i = 1; i <= n && w[t[i]] <= c; i++) {x[t[i]] = 1; c -= w[t[i]];} ▪ }
因篇幅问题不能全部显示,请点此查看更多更全内容