自动化立体仓库 - WMS系统
#
1
昨天 5b7ddbbd288579ccc54d1977803fcecab38e84aa
src/main/java/com/zy/asrs/utils/OptimizedLockerPacking3Utils.java
@@ -7,6 +7,8 @@
public class OptimizedLockerPacking3Utils {
    private static int signC = 0;
    public static class Item {
        String name;
        double unitSpace;
@@ -445,6 +447,7 @@
                                            double targetUtilization,
                                            List<RemainderItem> current,
                                            List<RemainderItem> bestCombination, double[] bestDiff) {
        signC++;
        // 检查当前组合的有效性
        if (!current.isEmpty()) {
            double diff = Math.abs(currentSpace - targetUtilization);
@@ -468,8 +471,10 @@
        RemainderItem currentItem = items.get(index);
        // 不选择当前物品
        validDfsCombination(items, index + 1, currentSpace, targetUtilization,
                current, bestCombination, bestDiff);
        if(signC<100){
            validDfsCombination(items, index + 1, currentSpace, targetUtilization,
                    current, bestCombination, bestDiff);
        }
        // 选择当前物品
        if (currentItem.quantity > 0) {
@@ -479,8 +484,10 @@
            for (int qty = 1; qty <= maxCanAdd; qty++) {
                current.add(new RemainderItem(currentItem.item, qty));
                validDfsCombination(items, index + 1, currentSpace + qty * currentItem.item.unitSpace,
                        targetUtilization, current, bestCombination, bestDiff);
                if(signC<100){
                    validDfsCombination(items, index + 1, currentSpace + qty * currentItem.item.unitSpace,
                            targetUtilization, current, bestCombination, bestDiff);
                }
                current.remove(current.size() - 1);
            }
        }