def genPrm()

in 1_synthetic-qa-generation/reasoningplaning/evolve.py [0:0]


    def genPrm(self, question: str, answer: str) -> List:
        self.resetPrmState()

        logger.info(f"Running genPrm for question: '{question}'\n")
        # Initialization
        initial_node = Nde(solution_prefix=question, parent=None)
        self.expected_answer = answer
        self.mct.root = initial_node
        self.mct.addNode(initial_node)
        self.numSrched = 0

        # Monte Carlo Estimation for initial_node
        self.monteCarloEstimation(initial_node)

        # Main loop
        while self.numSrched < self.maxSrch and self.numOfTtlBranches < self.maxBranches and not self.candidatePool.is_empty():
            # Selection Phase
            selected_node, selected_branch = self.selectionPhase()
            if selected_node is None or selected_branch is None:
                # logger.info("No more candidates to explore. Terminating search.\n")
                break

            self.expansionPhaseBinSrch(selected_node, selected_branch)

            # Maintenance Phase
            self.maintenancePhase(selected_node)

            # Increment search count
            self.numSrched += 1

        if self.saveAsTree:
            data = self.collectTreeStructure()
        else:
            data = self.collectSolutionPrefixes()
        return data