示例#1
0
    def GetSolution(self, remove=True):
        solution = None
        if (len(self.__queue) == 0):
            return solution
        solution = self.__solutionBase
        if (remove):
            solTuple = self.__queue.pop(0)
        else:
            solTuple = self.__queue[0]
        #split to get each idx:val
        parameters = solTuple[0].split(',')
        params = []
        #iterate through the elements in the list
        for p in parameters:
            param = Parameter()
            param.set_index(p.split(':')[0])
            param.set_type("double")
            param.set_value(p.split(':')[1])
            params.append(param)
        solution.setParameters(params)

        return solution
示例#2
0
 def initialize(self, filepath):
     try:
         if (not os.path.exists(filepath)):
             filepath = "../" + filepath
         xmldoc = minidom.parse(filepath)
         pNode = xmldoc.childNodes[0]
         for node in pNode.childNodes:
             if node.nodeType == node.ELEMENT_NODE:
                 c = Parameter()
                 for node_param in node.childNodes:
                     if (node_param.nodeType == node_param.ELEMENT_NODE):
                         if (node_param.localName == "type"):
                             c.set_type(node_param.firstChild.data)
                         if (node_param.localName == "value"):
                             c.set_value(node_param.firstChild.data)
                         if (node_param.localName == "min_value"):
                             c.set_min_value(node_param.firstChild.data)
                         if (node_param.localName == "max_value"):
                             c.set_max_value(node_param.firstChild.data)
                         if (node_param.localName == "index"):
                             c.set_index(node_param.firstChild.data)
                         if (node_param.localName == "name"):
                             c.set_name(node_param.firstChild.data)
                         if (node_param.localName == "gap"):
                             c.set_gap(node_param.firstChild.data)
                 try:
                     self.assign_parameter(c)
                     self.__numParams += 1
                     values = 1 + int(round((c.get_max_value() -
                             c.get_min_value()) / c.get_gap()))
                     self.__maxRange = max(values, self.__maxRange)
                 except Exception, e:
                     traceback.print_tb(sys.exc_info()[2])
                     u.logger.warning("Problem calculating max range: " +
                                      str(e))
                     pass
         u.logger.debug("Number of parameters " +
                        str(self.__numParams) + "(" +
                        str(len(self.__params)) + ")")