示例#1
0
        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);
        }