public static BarSets calKnapsack(double stockLen, BarSets orders) { List <BarSet> bsOrders = orders.getBarSets(); double[] orderNumVec = new double[bsOrders.Count + 1]; double[] orderLenVec = new double[bsOrders.Count + 1]; orderNumVec[0] = bsOrders.Count; orderLenVec[0] = bsOrders.Count; for (int i = 0; i < bsOrders.Count; i++) { orderNumVec[i + 1] = bsOrders[i].num; orderLenVec[i + 1] = bsOrders[i].len; } double[][] rstMap = calKnapsackWithLpSolve(stockLen, orderNumVec, orderLenVec); double[] patternVec = rstMap[1]; return(filterEmptyBarInPattern(bsOrders, patternVec)); }
public bool compareEqualWith(BarSets comparedBarSets) { List <BarSet> bs1 = new BarSets(barSets).sortAsc().getBarSets(); List <BarSet> bs2 = new BarSets(comparedBarSets.getBarSets()).sortAsc().getBarSets(); if (bs1.Count != bs2.Count) { return(false); } for (int i = 0; i < bs1.Count; i++) { if (bs1[i].len != bs2[i].len || bs1[i].num != bs2[i].num) { return(false); } } return(true); }