def GetThingAvailablePre(self): dThingAvailable = {}; for precondition in self.lPreconditions: tIncrease = precondition.GetThingAvailable(bGreaterThan = True); if tIncrease != None: dThingAvailable[tIncrease[0]]= tIncrease[1]; data.print_obj(dThingAvailable);
def _get_config (_sConfig): global map_Config sValue = map_Config.get (_sConfig, None) if None == sValue: print "Dict:"; data.print_obj(map_Config); print "[ERROR] '" + _sConfig + "' not found in config." data.print_obj(map_Config); assert False, "[ERROR] '" + _sConfig + "' not found in config." #return '' return sValue
def CheckConnections(self): if self.iIndex in [6281]: return; for conn in self.lConnections: if self.deptree.dIndexToWord[conn.iTo] != conn.sTo: print "Index:", self.iIndex; print "Dep:" data.print_obj(self.deptree.dIndexToWord); print "Conn:"; data.print_obj(conn); assert(self.deptree.dIndexToWord[conn.iFrom] == conn.sFrom); assert(self.deptree.dIndexToWord[conn.iTo] == conn.sTo);
def GenTrainingSamples(sAugmentedGoldSubgoalsFile, sTrainingFile): lGold = data.file_to_obj(sAugmentedGoldSubgoalsFile); iSubgoalIndex = 0; lSamples = []; for iIndex, dGold in enumerate(lGold[:min(len(lGold), MAXNUMPROBLEMS)]): # skip the ones without the right answer print "Running on:", dGold['file'], iIndex, "out of", len(lGold); data.print_obj(dGold['subgoals']); if ('success' in dGold) and (not dGold['success']): continue; if len(dGold['subgoals']) < 2: print "Skipping:", dGold['file'], 'because no subgoals'; # if there's no read "sub"-goals, then just skip this one continue; GenSamplesOneProblem(dGold, lSamples); return lSamples;
def GetSubgoalsForAll(bValidate, bRebuildObjectives): sDomainFile = '../subgoal_learning/data/domain-no-stone-iron-tools-simple-furnace.v120.pddl'; sProblemPath = '../subgoal_learning/data/problems/no-stone-iron-tools-and-extra-resources-rand2/' sFFPath = '/home/nkushman/hierarchical_planning/ff/metric-ff-recompiled-2011-11-24-2'; sMainPath = '/home/nkushman/hierarchical_planning/model/subgoal_learning/lhla_v4 /home/nkushman/hierarchical_planning/model/subgoal_learning/run_compute_end_state.cfg'; sNumSubgoalsFile = 'thing-available_max5.gold_num_subgoals'; dDeps = data.file_to_obj_with_comments('dep.json'); if bRebuildObjectives: GetAllObjectives(sDomainFile, sProblemPath); lObjectives = data.file_to_obj('objectives.json'); setObjectives = set(); lOutput = []; for iIndex, tObjective in enumerate(lObjectives): dCurOutput = {'file':tObjective[0], 'thing':tObjective[1], 'num':tObjective[2]} if iIndex < 0: print "Skipping:", iIndex, tObjective; continue; sys.stdout.flush(); print "****Objective:", iIndex, tObjective; lSubgoals = GenSubgoals(dDeps, tObjective[1], tObjective[2]); lSubgoalsToValidate = TransformToValidateFormat(lSubgoals); print "Plan:"; data.print_obj(lSubgoalsToValidate); sTempProblemPath = 'tmp-no-shovel/test.' + tObjective[0] + '.subgoals'; if bValidate: bSuccess = SubgoalValidator.TestSubgoals(sDomainFile, sProblemPath + tObjective[0], lSubgoalsToValidate, sFFPath, sMainPath, sTempProblemPath, bOptimize = False); dCurOutput['success'] = bSuccess; print "Success:", bSuccess; # include them all for dSubgoal in lSubgoals: setObjectives.add(FormatSubgoal(dSubgoal)); dCurOutput['subgoals'] = lSubgoals; dCurOutput['subgoals-formatted'] = lSubgoalsToValidate; dCurOutput['index'] = iIndex; lOutput.append(dCurOutput); #data.print_obj(lSubgoals); data.obj_to_file(lOutput, 'subgoals_gold.json'); dIndexToPred, dPredToIndex = GenerateIndexesFromPredDict('pred_gold.txt', setObjectives); WriteConnectionsFile(dDeps, dPredToIndex, dIndexToPred, 'pred_gold_connections.txt'); WriteNumSubgoalsFile(lOutput, sNumSubgoalsFile);
def Run3(): dDeps = data.file_to_obj_with_comments('dep.json'); lSubgoals = GenSubgoals(dDeps, "fish", 1); data.print_obj(lSubgoals);