コード例 #1
0
ファイル: website.py プロジェクト: uyabrup/CuttingStockSolver
 def get(self):
     output = []
     inputDict = {}
     stocksize = int(self.get_argument("max-size", default="0",
                                       strip=False))
     for i in range(0, (len(self.request.arguments) / 2)):
         inputDict.update({
             int(
                 self.get_argument("size" + str(i),
                                   default="0",
                                   strip=False)):
             int(self.get_argument("qty" + str(i), default="0",
                                   strip=False))
         })
     a = GeneticSolver(inputDict, stocksize)
     chromo = a.getResult()
     i = 1
     for gene in chromo.genes:
         res = ""
         for key, value in gene.getDict().iteritems():
             if (value > 0):
                 res = res + "," + str(key) + "*" + str(value) + " "
         output.append(res)
         i += 1
     self.render("UI/sol.html", outp=output, req=inputDict)
コード例 #2
0
ファイル: website.py プロジェクト: uyabrup/CuttingStockSolver
 def get(self):
     output=[]
     inputDict = {}
     stocksize=int(self.get_argument("max-size", default="0", strip=False))
     for i in range(0,(len(self.request.arguments)/2)):
         inputDict.update({int(self.get_argument("size"+str(i), default="0", strip=False)):int(self.get_argument("qty"+str(i), default="0", strip=False))})
     a=GeneticSolver(inputDict,stocksize)
     chromo = a.getResult()
     i=1
     for gene in chromo.genes:
         res=""
         for key,value in gene.getDict().iteritems():
             if(value>0):
                 res=res+","+str(key)+"*"+str(value)+" "
         output.append(res)
         i+=1
     self.render("UI/sol.html", outp=output,req=inputDict)
コード例 #3
0
ファイル: website.py プロジェクト: ruiner6/CuttingStockSolver
 def run(self,inputDict,wasteThreshold,stocksize,algo,timestamp,slider):
     waste=0
     self.algo=algo
     self.output=[]
     self.leftoverArray=[]
     currentThreads.update({timestamp:self})
     print "hello"
     print "****",wasteThreshold,inputDict,stocksize,algo,timestamp,"****"
     if(algo=="genetic"):
         print slider,1-slider
         a=GeneticSolver(inputDict,stocksize,wasteThreshold,countParam=slider,reuseParam=1-slider)
         self.solver=a
         chromo = a.getResult()
         i=1
         for gene in chromo.genes:
             res=""
             for key,value in gene.getDict().iteritems():
                 if(value>0):
                     res=res+","+str(key)+"*"+str(value)+" "
             self.output.append(res)
             self.leftoverArray.append(gene.getLeftover(stocksize))
             i+=1
         waste=chromo.waste
     else:
         a=GreedySolver(inputDict,stocksize)
         self.solver=a
         cutPatterns = a.getResult()
         i=1
         realwaste=0
         for combination in cutPatterns:
             leftover=combination.getLeftover(stocksize)
             self.leftoverArray.append(leftover)
             if(leftover<wasteThreshold):
                 realwaste+=leftover
             self.output.append( combination.printCombi())
             i+=1
         print "real waste = ",realwaste
         waste=realwaste
     a.progress=100
     self.solver.waste=waste
コード例 #4
0
 def run(self, inputDict, wasteThreshold, stocksize, algo, timestamp,
         slider):
     waste = 0
     self.algo = algo
     self.output = []
     self.leftoverArray = []
     currentThreads.update({timestamp: self})
     print "hello"
     print "****", wasteThreshold, inputDict, stocksize, algo, timestamp, "****"
     if (algo == "genetic"):
         print slider, 1 - slider
         a = GeneticSolver(inputDict,
                           stocksize,
                           wasteThreshold,
                           countParam=slider,
                           reuseParam=1 - slider)
         self.solver = a
         chromo = a.getResult()
         i = 1
         for gene in chromo.genes:
             res = ""
             for key, value in gene.getDict().iteritems():
                 if (value > 0):
                     res = res + "," + str(key) + "*" + str(value) + " "
             self.output.append(res)
             self.leftoverArray.append(gene.getLeftover(stocksize))
             i += 1
         waste = chromo.waste
     else:
         a = GreedySolver(inputDict, stocksize)
         self.solver = a
         cutPatterns = a.getResult()
         i = 1
         realwaste = 0
         for combination in cutPatterns:
             leftover = combination.getLeftover(stocksize)
             self.leftoverArray.append(leftover)
             if (leftover < wasteThreshold):
                 realwaste += leftover
             self.output.append(combination.printCombi())
             i += 1
         print "real waste = ", realwaste
         waste = realwaste
     a.progress = 100
     self.solver.waste = waste
コード例 #5
0
'''
Created on Dec 16, 2014

@author: Gaurav
'''

from cuttingstock.GeneticSolver import GeneticSolver
if __name__ == '__main__':
    '''
    inputp={1380:22,1520:25,1560:12,1710:14,1820:18,1880:18,1930:20,2000:10,2050:12,2100:14,2140:16,2150:18,2200:20}
    max_size=5600
    max_waste_size=500
    '''
    inputp = {300: 8, 700: 9, 600: 6, 500: 8, 400: 4}
    max_size = 2000
    max_waste_size = 200

    a = GeneticSolver(inputp, max_size, max_waste_size)
    res = a.getResult()

    #cutPatterns = a.getResult()
    #for combination in cutPatterns:
    #    print combination," Waste = ",max_size-combination.getCombinationSize()
コード例 #6
0
'''
Created on Dec 16, 2014

@author: Gaurav
'''

from cuttingstock.GeneticSolver import GeneticSolver
if __name__ == '__main__':
    '''
    inputp={1380:22,1520:25,1560:12,1710:14,1820:18,1880:18,1930:20,2000:10,2050:12,2100:14,2140:16,2150:18,2200:20}
    max_size=5600
    max_waste_size=500
    '''
    inputp={300:8,700:9,600:6,500:8,400:4}
    max_size=2000
    max_waste_size=200

    
    a=GeneticSolver(inputp,max_size,max_waste_size)
    res=a.getResult()

    #cutPatterns = a.getResult()
    #for combination in cutPatterns:
    #    print combination," Waste = ",max_size-combination.getCombinationSize()