src/HOL/Tools/Sledgehammer/MaSh/src/server.py
changeset 53557 5d3ec1198a64
parent 53555 12251bc889f1
child 53789 8d9f4e89d8c8
equal deleted inserted replaced
53556:347f743e8336 53557:5d3ec1198a64
    13 from parameters import init_parser
    13 from parameters import init_parser
    14 from sparseNaiveBayes import sparseNBClassifier
    14 from sparseNaiveBayes import sparseNBClassifier
    15 from KNN import KNN,euclidean
    15 from KNN import KNN,euclidean
    16 from KNNs import KNNAdaptPointFeatures,KNNUrban
    16 from KNNs import KNNAdaptPointFeatures,KNNUrban
    17 from predefined import Predefined
    17 from predefined import Predefined
    18 from ExpandFeatures import ExpandFeatures
    18 #from ExpandFeatures import ExpandFeatures
    19 from stats import Statistics
    19 from stats import Statistics
    20 
    20 
    21 
    21 
    22 class ThreadingTCPServer(SocketServer.ThreadingTCPServer): 
    22 class ThreadingTCPServer(SocketServer.ThreadingTCPServer): 
    23     def __init__(self, *args, **kwargs):
    23     def __init__(self, *args, **kwargs):
    62             self.server.model = KNNAdaptPointFeatures(self.server.dicts)
    62             self.server.model = KNNAdaptPointFeatures(self.server.dicts)
    63         elif self.server.args.algorithm == 'predef':
    63         elif self.server.args.algorithm == 'predef':
    64             self.server.model = Predefined(self.server.args.predef)
    64             self.server.model = Predefined(self.server.args.predef)
    65         else: # Default case
    65         else: # Default case
    66             self.server.model = sparseNBClassifier(self.server.args.NBDefaultPriorWeight,self.server.args.NBPosWeight,self.server.args.NBDefVal)
    66             self.server.model = sparseNBClassifier(self.server.args.NBDefaultPriorWeight,self.server.args.NBPosWeight,self.server.args.NBDefVal)
    67         if self.server.args.expandFeatures:
    67 #        if self.server.args.expandFeatures:
    68             self.server.expandFeatures = ExpandFeatures(self.server.dicts)
    68 #            self.server.expandFeatures = ExpandFeatures(self.server.dicts)
    69             self.server.expandFeatures.initialize(self.server.dicts)
    69 #            self.server.expandFeatures.initialize(self.server.dicts)
    70         # Create Model
    70         # Create Model
    71         if os.path.isfile(self.server.args.modelFile):
    71         if os.path.isfile(self.server.args.modelFile):
    72             self.server.model.load(self.server.args.modelFile)          
    72             self.server.model.load(self.server.args.modelFile)          
    73         elif self.server.args.init:
    73         elif self.server.args.init:
    74             trainData = self.server.dicts.featureDict.keys()
    74             trainData = self.server.dicts.featureDict.keys()
   102             if not self.server.stats.badPreds == []:
   102             if not self.server.stats.badPreds == []:
   103                 bp = string.join([str(self.server.dicts.idNameDict[x]) for x in self.server.stats.badPreds], ',')
   103                 bp = string.join([str(self.server.dicts.idNameDict[x]) for x in self.server.stats.badPreds], ',')
   104                 self.server.logger.debug('Poor predictions: %s',bp)
   104                 self.server.logger.debug('Poor predictions: %s',bp)
   105             self.server.statementCounter += 1
   105             self.server.statementCounter += 1
   106 
   106 
   107         if self.server.args.expandFeatures:
   107 #        if self.server.args.expandFeatures:
   108             self.server.expandFeatures.update(self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId])
   108 #            self.server.expandFeatures.update(self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId])
   109         # Update Dependencies, p proves p
   109         # Update Dependencies, p proves p
   110         self.server.dicts.dependenciesDict[problemId] = [problemId]+self.server.dicts.dependenciesDict[problemId]
   110         self.server.dicts.dependenciesDict[problemId] = [problemId]+self.server.dicts.dependenciesDict[problemId]
   111         self.server.model.update(problemId,self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId])
   111         self.server.model.update(problemId,self.server.dicts.featureDict[problemId],self.server.dicts.dependenciesDict[problemId])
   112 
   112 
   113     def overwrite(self):
   113     def overwrite(self):
   124         name,features,accessibles,hints,numberOfPredictions = self.server.dicts.parse_problem(self.data)
   124         name,features,accessibles,hints,numberOfPredictions = self.server.dicts.parse_problem(self.data)
   125         if numberOfPredictions == None:
   125         if numberOfPredictions == None:
   126             numberOfPredictions = self.server.args.numberOfPredictions
   126             numberOfPredictions = self.server.args.numberOfPredictions
   127         if not hints == []:
   127         if not hints == []:
   128             self.server.model.update('hints',features,hints)
   128             self.server.model.update('hints',features,hints)
   129         if self.server.args.expandFeatures:
   129 #        if self.server.args.expandFeatures:
   130             features = self.server.expandFeatures.expand(features)
   130 #            features = self.server.expandFeatures.expand(features)
   131         # Create predictions
   131         # Create predictions
   132         self.server.logger.debug('Starting computation for line %s',self.server.callCounter)
   132         self.server.logger.debug('Starting computation for line %s',self.server.callCounter)
   133                 
   133                 
   134         self.server.predictions,predictionValues = self.server.model.predict(features,accessibles,self.server.dicts)
   134         self.server.predictions,predictionValues = self.server.model.predict(features,accessibles,self.server.dicts)
   135         assert len(self.server.predictions) == len(predictionValues)
   135         assert len(self.server.predictions) == len(predictionValues)