示例#1
0
 def __init__(self, name, program, mustTrain=False):
     if isinstance(program, str):
         try:
             program = parseTower(program)
         except:
             eprint("Parse failure:")
             eprint(program)
             assert False
         self.original = program
         plan = executeTower(program)
     elif isinstance(program, Program):
         self.original = program
         plan = executeTower(program)
     else:
         plan = program
     self.original = program
     state, self.plan = program.evaluate([])(_empty_tower)(TowerState())
     self.hand = state.hand
     super(SupervisedTower, self).__init__(name,
                                           arrow(ttower, ttower), [],
                                           features=[])
     self.specialTask = ("supervisedTower", {"plan": self.plan})
     self.image = None
     self.handImage = None
     self.mustTrain = mustTrain
示例#2
0
 def logLikelihood(self, e, timeout=None):
     from dreamcoder.domains.tower.tower_common import centerTower
     yh = executeTower(e, timeout)
     if yh is not None and centerTower(yh) == centerTower(self.plan): return 0.
     return NEGATIVEINFINITY