예제 #1
0
 def setParameter(self,parametername,parametervalue):
     if not parametername in ['maxdepth','mindepth','randomseed']:
         print __doc__
         raise Exception("Invalid parameter '%s' for gameguidance." % parametername)
     GuidanceBase.setParameter(self,parametername,parametervalue)
     if parametername=='randomseed':
         self._rndchoose=random.Random(parametervalue).choice
예제 #2
0
 def setParameter(self,parametername,parametervalue):
     if not parametername in ['randomseed']:
         print __doc__
         raise Exception("Invalid parameter '%s' for gameguidance." % parametername)
     GuidanceBase.setParameter(self,parametername,parametervalue)
     if parametername=='randomseed':
         self._rndchoose=random.Random(parametervalue).choice
예제 #3
0
 def setParameter(self,parametername,parametervalue):
     if not parametername in ['lookahead','randomseed','rerouteafter']:
         print __doc__
         raise Exception("Invalid parameter '%s' for gameguidance." % parametername)
     GuidanceBase.setParameter(self,parametername,parametervalue)
     if parametername=='randomseed':
         self._rndchoose=random.Random(parametervalue).choice
     elif parametername=='rerouteafter':
         self._steps_to_reroute=self.getParameter(parametername)
예제 #4
0
 def setParameter(self, paramname, paramvalue):
     accepted = ("numtabuactions", "numtabustates", "numtabutransitions")
     if paramname == "numtabuactions":
         self._NUM_TABU_ACTIONS = self._parseSize(paramname, paramvalue)
     elif paramname == "numtabustates":
         self._NUM_TABU_STATES = self._parseSize(paramname, paramvalue)
     elif paramname == "numtabutransitions":
         self._NUM_TABU_TRANSITIONS = self._parseSize(paramname, paramvalue)
     else:
         print __doc__
         raise Exception("Invalid parameter '%s' for tabuguidance. Accepted parameters: %s" % paramname, accepted)
     GuidanceBase.setParameter(self, paramname, paramvalue)
예제 #5
0
 def setParameter(self, paramname, paramvalue):
     accepted = ("numtabuactions", "numtabustates", "numtabutransitions")
     if paramname == 'numtabuactions':
         self._NUM_TABU_ACTIONS = self._parseSize(paramname, paramvalue)
     elif paramname == 'numtabustates':
         self._NUM_TABU_STATES = self._parseSize(paramname, paramvalue)
     elif paramname == 'numtabutransitions':
         self._NUM_TABU_TRANSITIONS = self._parseSize(paramname, paramvalue)
     else:
         print __doc__
         raise Exception(
             "Invalid parameter '%s' for tabuguidance. Accepted parameters: %s"
             % paramname, accepted)
     GuidanceBase.setParameter(self, paramname, paramvalue)
예제 #6
0
 def setParameter(self, name, value):
     accepted = ("transitionweight", "searchorder", "searchdepth",
                 "maxtransitions", "searchconstraint")
     if name == "transitionweight":
         if isinstance(value, str) and value.startswith('kw:'):
             kww = float(value[3:])
             self._transitionweight = \
                 lambda t: kww if 'kw_' in str(t.getAction()) else 0
         else:
             if value < 0:
                 self.log("WARNING! Negative transition weight " +
                          "doesn't make sense!")
             self._transitionweight = lambda t: value
     elif name == "searchorder":
         if value == "bestfirst":
             self._toHeap = lambda p, badness: (badness, len(p), p)
             self._fromHeap = lambda values: (values[2], values[0])
         elif value == "shortestfirst":
             self._toHeap = lambda p, badness: (len(p), badness, p)
             self._fromHeap = lambda values: (values[2], values[1])
         else:
             raise ValueError("Invalid searchorder: '%s'" % (value, ))
     elif name in ("searchdepth", "searchradius"):
         self._searchDepth = value
     elif name == "maxtransitions":
         self._maxTransitions = value
     elif name == "greedy":
         self._greedy = value
     elif name == "searchconstraint":
         if value == "nocrossingpaths":
             self._seco = NO_CROSSING_PATHS
         elif value == "noloops":
             self._seco = NO_LOOPS
         elif value == "noconstraint":
             self._seco = NONE
         else:
             raise ValueError("Invalid searchconstraint '%s'" % value)
     else:
         print __doc__
         raise ValueError("Invalid parameter '%s' for newguidance. " %
                          name +
                          "Accepted parameters: %s" % ",".join(accepted))
     GuidanceBase.setParameter(self, name, value)
예제 #7
0
 def setParameter(self, name, value):
     accepted = ("transitionweight", "searchorder", "searchdepth", "maxtransitions", "searchconstraint")
     if name == "transitionweight":
         if isinstance(value, str) and value.startswith("kw:"):
             kww = float(value[3:])
             self._transitionweight = lambda t: kww if "kw_" in str(t.getAction()) else 0
         else:
             if value < 0:
                 self.log("WARNING! Negative transition weight " + "doesn't make sense!")
             self._transitionweight = lambda t: value
     elif name == "searchorder":
         if value == "bestfirst":
             self._toHeap = lambda p, badness: (badness, len(p), p)
             self._fromHeap = lambda values: (values[2], values[0])
         elif value == "shortestfirst":
             self._toHeap = lambda p, badness: (len(p), badness, p)
             self._fromHeap = lambda values: (values[2], values[1])
         else:
             raise ValueError("Invalid searchorder: '%s'" % (value,))
     elif name in ("searchdepth", "searchradius"):
         self._searchDepth = value
     elif name == "maxtransitions":
         self._maxTransitions = value
     elif name == "greedy":
         self._greedy = value
     elif name == "searchconstraint":
         if value == "nocrossingpaths":
             self._seco = NO_CROSSING_PATHS
         elif value == "noloops":
             self._seco = NO_LOOPS
         elif value == "noconstraint":
             self._seco = NONE
         else:
             raise ValueError("Invalid searchconstraint '%s'" % value)
     else:
         print __doc__
         raise ValueError(
             "Invalid parameter '%s' for newguidance. " % name + "Accepted parameters: %s" % ",".join(accepted)
         )
     GuidanceBase.setParameter(self, name, value)