From a7c11c69d69513f038fa85e69e8f5a22b18b01cc Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Mon, 17 Jul 2023 11:39:25 +0300 Subject: [PATCH 1/8] Change name simulation_control to simulation_scenario --- app/app.py | 2 +- app/app_graph_new.py | 2 +- app/app_new.py | 2 +- app/app_new_multiobject.py | 2 +- app/report.py | 2 +- app/top_graphs_visualisation.py | 2 +- .../trajectory_optimizer/control_optimizer.py | 26 +++++++++---------- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/app.py b/app/app.py index 40797cb7..ac246ecc 100644 --- a/app/app.py +++ b/app/app.py @@ -74,7 +74,7 @@ sys.stdout = original_stdout simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control +simulation_manager = control_optimizer.simulation_scenario # visualisation in the end of the search best_graph, reward, best_control = mcts_helper.report.get_best_info() data = {"initial_value": best_control} diff --git a/app/app_graph_new.py b/app/app_graph_new.py index a56e1ee4..462b8f53 100644 --- a/app/app_graph_new.py +++ b/app/app_graph_new.py @@ -76,7 +76,7 @@ sys.stdout = original_stdout simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control +simulation_manager = control_optimizer.simulation_scenario # visualisation in the end of the search best_graph, reward, best_control = mcts_helper.report.get_best_info() data = {"initial_value": best_control} diff --git a/app/app_new.py b/app/app_new.py index cf435c25..e17a12e7 100644 --- a/app/app_new.py +++ b/app/app_new.py @@ -74,7 +74,7 @@ sys.stdout = original_stdout simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control +simulation_manager = control_optimizer.simulation_scenario # visualisation in the end of the search best_graph, reward, best_control = mcts_helper.report.get_best_info() data = {"initial_value": best_control} diff --git a/app/app_new_multiobject.py b/app/app_new_multiobject.py index 082b15b9..11a5fcaf 100644 --- a/app/app_new_multiobject.py +++ b/app/app_new_multiobject.py @@ -81,7 +81,7 @@ sys.stdout = original_stdout simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control[0] +simulation_manager = control_optimizer.simulation_scenario[0] # visualisation in the end of the search best_graph, reward, best_control = mcts_helper.report.get_best_info() data = control_optimizer.optim_parameters2data_control(best_control) diff --git a/app/report.py b/app/report.py index efa6958c..da029905 100644 --- a/app/report.py +++ b/app/report.py @@ -26,7 +26,7 @@ def plot_graph(graph: GraphGrammar): best_graph, reward, best_control = report.get_best_info() simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control +simulation_manager = control_optimizer.simulation_scenario plot_graph(best_graph) data = {"initial_value": best_control} diff --git a/app/top_graphs_visualisation.py b/app/top_graphs_visualisation.py index 0308c9ab..236502b4 100644 --- a/app/top_graphs_visualisation.py +++ b/app/top_graphs_visualisation.py @@ -19,7 +19,7 @@ def vis_top_n_mechs(report: MCTSSaveable, n: int, object: EnvironmentBodyBluepri graph_report = report.seen_graphs control_optimizer = config_with_standard(grasp_object_blueprint) simulation_rewarder = control_optimizer.rewarder - simulation_manager = control_optimizer.simulation_control + simulation_manager = control_optimizer.simulation_scenario graph_list = graph_report.graph_list sorted_graph_list = sorted(graph_list, key=lambda x: x.reward) diff --git a/rostok/trajectory_optimizer/control_optimizer.py b/rostok/trajectory_optimizer/control_optimizer.py index d3fea623..406e497f 100644 --- a/rostok/trajectory_optimizer/control_optimizer.py +++ b/rostok/trajectory_optimizer/control_optimizer.py @@ -28,25 +28,25 @@ def print_log(self): class CalculatorWithConstTorqueOptimization(GraphRewardCalculator): def __init__(self, - simulation_control, + simulation_scenario, rewarder: SimulationReward, optimization_bounds=(0, 15), optimization_limit=10): """Base class optimizing constant torque for controlling the mechanism. In subclass, it have to override method: bound_parameter, _transform_parameter2data and run_optimization. Args: - simulation_control (Union[list[tuple[ParametrizedSimulation, int]], ParametrizedSimulation]): Define simulation scenario for virtual experiment and weights for each. + simulation_scenario (Union[list[tuple[ParametrizedSimulation, int]], ParametrizedSimulation]): Define simulation scenario for virtual experiment and weights for each. rewarder (SimulationReward): Instance of the class on which the objective function will be calculated optimization_bounds (tuple, optional): Args define the boundaries of the variables to be optimized. Defaults to (0, 15). optimization_limit (int, optional): The maximum number of optimization iterations. Defaults to 10. """ - self.simulation_control = simulation_control + self.simulation_scenario = simulation_scenario self.rewarder: SimulationReward = rewarder self.bounds = optimization_bounds self.limit = optimization_limit def simulate_with_control_parameters(self, data, graph): - return self.simulation_control.run_simulation(graph, data) + return self.simulation_scenario.run_simulation(graph, data) def calculate_reward(self, graph: GraphGrammar): """Constant moment optimization method using scenario simulation and rewarder for calculating objective function. @@ -61,10 +61,10 @@ def calculate_reward(self, graph: GraphGrammar): if not multi_bound: return (0, []) - if isinstance(self.simulation_control, list): + if isinstance(self.simulation_scenario, list): reward = 0 optim_parameters = np.array([]) - for sim_scene in self.simulation_control: + for sim_scene in self.simulation_scenario: result = self.run_optimization(self._reward_with_parameters, multi_bound, args=(graph, sim_scene[0])) @@ -78,7 +78,7 @@ def calculate_reward(self, graph: GraphGrammar): else: result = self.run_optimization(self._reward_with_parameters, multi_bound, - args=(graph, self.simulation_control)) + args=(graph, self.simulation_scenario)) reward = -result.fun optim_parameters = result.x @@ -95,7 +95,7 @@ def optim_parameters2data_control(self, parameters, *args): dict: Dictionary defining the parameters of the control class """ parameters = np.array(parameters) - if isinstance(self.simulation_control, list): + if isinstance(self.simulation_scenario, list): list_args = [args for __ in range(len(parameters))] data_control = list(map(self._transform_parameters2data, parameters, list_args)) else: @@ -169,8 +169,8 @@ def run_optimization(self, callback, multi_bound, args): class CalculatorWithGraphOptimization(GraphRewardCalculator): - def __init__(self, simulation_control, rewarder: SimulationReward, torque_dict): - self.simulation_control = simulation_control + def __init__(self, simulation_scenario, rewarder: SimulationReward, torque_dict): + self.simulation_scenario = simulation_scenario self.rewarder: SimulationReward = rewarder self.torque_dict = torque_dict @@ -189,7 +189,7 @@ def calculate_reward(self, graph: GraphGrammar): return (0, []) control_sequence = self.build_control_from_graph(graph) data = {"initial_value": control_sequence} - simulation_output = self.simulation_control.run_simulation(graph, data) + simulation_output = self.simulation_scenario.run_simulation(graph, data) reward = self.rewarder.calculate_reward(simulation_output) return (reward, control_sequence) @@ -214,13 +214,13 @@ class ConstTorqueOptimizationBranchTemplate(CalculatorWithConstTorqueOptimizatio """ def __init__(self, - simulation_control, + simulation_scenario, rewarder: SimulationReward, optimization_bounds=(0, 15), optimization_limit=10, select_optimisation_value=OptimizationParametr.START, const_parameter=-0.5): - super().__init__(simulation_control, rewarder, optimization_bounds, optimization_limit) + super().__init__(simulation_scenario, rewarder, optimization_bounds, optimization_limit) self.select_optimisation_value = select_optimisation_value self.const_parameter = const_parameter From 9ba0a71aec80e4f30593b845393fbee9c32400ad Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Tue, 18 Jul 2023 12:41:23 +0300 Subject: [PATCH 2/8] temporary commit --- app/app_graph.py | 2 +- app/top_graphs_visualisation.py | 2 +- rostok/graph_generators/mcts_helper.py | 93 +++++++++++++++++++++++++- 3 files changed, 93 insertions(+), 4 deletions(-) diff --git a/app/app_graph.py b/app/app_graph.py index 8202929e..79cedc98 100644 --- a/app/app_graph.py +++ b/app/app_graph.py @@ -74,7 +74,7 @@ sys.stdout = original_stdout simulation_rewarder = control_optimizer.rewarder -simulation_manager = control_optimizer.simulation_control +simulation_manager = control_optimizer.simulation_scenario # visualisation in the end of the search best_graph, reward, best_control = mcts_helper.report.get_best_info() data = {"initial_value": best_control} diff --git a/app/top_graphs_visualisation.py b/app/top_graphs_visualisation.py index 236502b4..2b236a30 100644 --- a/app/top_graphs_visualisation.py +++ b/app/top_graphs_visualisation.py @@ -127,6 +127,6 @@ def func_finish(): grasp_object_blueprint = get_object_parametrized_sphere(0.4, 1) grasp_object_blueprint = get_obj_hard_mesh_piramida() report: OptimizedGraphReport = load_saveable( - Path(r"results\Reports_23y_06m_15d_03H_13M\MCTS_data.pickle")) + Path(r"results\Reports_23y_07m_15d_14H_03M\MCTS_data.pickle")) vis_top_n_mechs(report, 3, grasp_object_blueprint) # save_svg_mean_reward( name = 'kek', objecy_name='sphere') \ No newline at end of file diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index 8fee5de0..12fccf74 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -1,4 +1,6 @@ import sys +import os +import time from copy import deepcopy from pathlib import Path from statistics import mean @@ -329,7 +331,7 @@ def __init__(self, def getReward(self): """Make optimization and calculate reward for the graph of the state. - + It also adds the graph to the seen_graph of the helper.report object """ report = self.helper.report.seen_graphs.check_graph(self.graph) @@ -388,6 +390,7 @@ def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter): state (MCTSGraphEnvironment): starting state for the search counter: counter of the steps """ + start = time.time() state.helper.step_counter = counter action = searcher.search(initialState=state) rule_action = action.get_rule @@ -400,5 +403,91 @@ def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter): main_reward = new_state.getReward() main_control = new_state.movments_trajectory state.helper.set_main_optimized_state(new_state.state, main_reward, main_control) - + time_step = time.time() - start + + state.helper.report return done, new_state + +#================================== +# Prototyping +#================================== + +class CheckpointMCTSSaveable(Saveable): + """Class include all the information that should be saved as a result of MCTS search. + + Attributes: + seen_graphs (OptimizedGraphReport): graphs obtained in the search + seen_states (OptimizedMCTSStateReport): states obtained in the search + main_state (RobotState): the main state of the MCTS search + + """ + + def __init__(self, mcts_saveable: MCTSSaveable, path, checkpoint_iter = 1) -> None: + super().__init__(path, 'checkpoint_mcts_data') + self.mcts_saveable = mcts_saveable + self.iteration = 0 + self.checkpoint_iter = checkpoint_iter + + def get_best_info(self): + """Get graph, reward and control for the best state.""" + graph = self.best_simulated_state.state.make_graph() + return graph, self.best_simulated_state.reward, self.best_simulated_state.control + + def get_main_info(self): + """Get graph, reward and control for the main state.""" + graph = self.main_simulated_state.state.make_graph() + return graph, self.main_simulated_state.reward, self.main_simulated_state.control + + def draw_best_graph(self): + """Draw best graph with plot title based on the reward.""" + graph, reward, _ = self.get_best_info() + plot_graph_reward(graph, reward) + + def save_log(self): + """Saves graphs and info for main and best states.""" + path_to_file = Path(self.path, "log-file.txt") + with open(path_to_file, 'w', encoding='utf-8') as file: + original_stdout = sys.stdout + sys.stdout = file + print(f'MCTS Iteration: {self.iteration}') + print('main_result:') + print('rules:', *self.main_simulated_state.state.rule_list) + print('control:', *self.main_simulated_state.control) + print('reward:', self.main_simulated_state.reward) + print() + print('best_result:') + print('rules:', *self.best_simulated_state.state.rule_list) + print('control:', *self.best_simulated_state.control) + print('reward:', self.best_simulated_state.reward) + print() + print('max number of non-terminal rules:', self.non_terminal_rules_limit, + 'search parameter:', self.search_parameter) + print() + print("Number of unique mechanisms tested in current MCTS run: ", + len(self.seen_graphs.graph_list)) + print("Number of states ", len(self.seen_states.state_list)) + print(f'\n ---------------------------------- \n') + sys.stdout = original_stdout + + # path_to_best_graph = Path(self.path, "best_graph.png") + # best_graph, reward, _ = self.get_best_info() + # save_graph_plot_reward(best_graph, reward, path_to_best_graph) + # path_to_main_graph = Path(self.path, "main_graph.png") + # main_graph, reward, _ = self.get_main_info() + # save_graph_plot_reward(main_graph, reward, path_to_main_graph) + + def save_lists(self): + """Saves lists of graphs and states.""" + self.seen_graphs.set_path(self.path) + self.seen_graphs.save() + self.seen_states.set_path(self.path) + self.seen_states.save() + + def save_all(self): + """Save all information in the object but not object itself.""" + self.save_visuals() + self.save_lists() + + + def update_checkpoint_n_logs(self): + From e806720ac7aa5c56bac9d56e9728b067e335e03a Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Tue, 18 Jul 2023 12:41:27 +0300 Subject: [PATCH 3/8] temporary commit --- rostok/graph_generators/mcts_helper.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index 12fccf74..1b3d6a5a 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -490,4 +490,10 @@ def save_all(self): def update_checkpoint_n_logs(self): + pass + def save_checkpoint(self, folder = "checkpoint"): + filepath = os.path.join(folder) + + if not os.path.exists(folder): + print("Create ") From 3599a041ffae02192a05c15032d9f9044ed683f9 Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Tue, 18 Jul 2023 19:11:29 +0300 Subject: [PATCH 4/8] Checkpoint class --- app/{app_graph.py => altenative_app_graph.py} | 6 +- rostok/graph_generators/mcts_helper.py | 144 ++++++++++-------- 2 files changed, 85 insertions(+), 65 deletions(-) rename app/{app_graph.py => altenative_app_graph.py} (96%) diff --git a/app/app_graph.py b/app/altenative_app_graph.py similarity index 96% rename from app/app_graph.py rename to app/altenative_app_graph.py index 79cedc98..7d7ba426 100644 --- a/app/app_graph.py +++ b/app/altenative_app_graph.py @@ -6,7 +6,7 @@ import mcts from mcts_run_setup import config_with_standard_graph -from rostok.graph_generators.mcts_helper import (make_mcts_step, prepare_mcts_state_and_helper) +from rostok.graph_generators.mcts_helper import (make_mcts_step, prepare_mcts_state_and_helper, CheckpointMCTS) from rostok.graph_grammar.node import GraphGrammar from rostok.library.obj_grasp.objects import get_object_parametrized_sphere, get_object_parametrized_tilt_ellipsoid from rostok.library.rule_sets.ruleset_old_style_graph import create_rules @@ -32,6 +32,8 @@ # the constant that determines how we reduce the number of iterations in the MCTS search iteration_reduction_rate = hp.ITERATION_REDUCTION_TIME + +checkpointer = CheckpointMCTS(mcts_helper.report, "AppGraphSphere", rewrite=False) start = time.time() finish = False n_steps = 0 @@ -39,7 +41,7 @@ iteration_limit = base_iteration_limit - int(graph_env.counter_action / max_numbers_rules * (base_iteration_limit * iteration_reduction_rate)) searcher = mcts.mcts(iterationLimit=iteration_limit) - finish, graph_env = make_mcts_step(searcher, graph_env, n_steps) + finish, graph_env = make_mcts_step(searcher, graph_env, n_steps, checkpointer) n_steps += 1 print(f"number iteration: {n_steps}, counter actions: {graph_env.counter_action} " + f"reward: {mcts_helper.report.get_best_info()[1]}") diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index 1b3d6a5a..e6e55f90 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -1,5 +1,5 @@ import sys -import os +import os import time from copy import deepcopy from pathlib import Path @@ -382,7 +382,7 @@ def prepare_mcts_state_and_helper(graph: GraphGrammar, return mcts_state -def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter): +def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter, checkpointer=None): """Start MCTS search for the state and return the new state corresponding to the action Args: @@ -403,16 +403,20 @@ def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter): main_reward = new_state.getReward() main_control = new_state.movments_trajectory state.helper.set_main_optimized_state(new_state.state, main_reward, main_control) - time_step = time.time() - start - - state.helper.report + iteration_time = time.time() - start + + if checkpointer: + checkpointer.update_checkpoint_n_logs(iteration_time) return done, new_state + #================================== # Prototyping #================================== -class CheckpointMCTSSaveable(Saveable): + +class CheckpointMCTS(): + ID_CHECKPOINT = 0 """Class include all the information that should be saved as a result of MCTS search. Attributes: @@ -422,78 +426,92 @@ class CheckpointMCTSSaveable(Saveable): """ - def __init__(self, mcts_saveable: MCTSSaveable, path, checkpoint_iter = 1) -> None: - super().__init__(path, 'checkpoint_mcts_data') - self.mcts_saveable = mcts_saveable - self.iteration = 0 - self.checkpoint_iter = checkpoint_iter + def __init__(self, + mcts_saveable: MCTSSaveable, + folder_name, + checkpoint_iter=1, + rewrite=True) -> None: - def get_best_info(self): - """Get graph, reward and control for the best state.""" - graph = self.best_simulated_state.state.make_graph() - return graph, self.best_simulated_state.reward, self.best_simulated_state.control + self.path = "./" - def get_main_info(self): - """Get graph, reward and control for the main state.""" - graph = self.main_simulated_state.state.make_graph() - return graph, self.main_simulated_state.reward, self.main_simulated_state.control - def draw_best_graph(self): - """Draw best graph with plot title based on the reward.""" - graph, reward, _ = self.get_best_info() - plot_graph_reward(graph, reward) + self.mcts_saveable = mcts_saveable + self.iteration = 0 + self.checkpoint_iter = checkpoint_iter + self.last_iteration_time = 0 + CheckpointMCTS.ID_CHECKPOINT = CheckpointMCTS.ID_CHECKPOINT + 1 + self.postfix_id_folders = CheckpointMCTS.ID_CHECKPOINT + + self.prepare_folders_n_files(folder_name, rewrite) - def save_log(self): + def logging(self): """Saves graphs and info for main and best states.""" path_to_file = Path(self.path, "log-file.txt") - with open(path_to_file, 'w', encoding='utf-8') as file: + with open(path_to_file, 'a', encoding='utf-8') as file: original_stdout = sys.stdout sys.stdout = file - print(f'MCTS Iteration: {self.iteration}') + print(f'MCTS Iteration: {self.iteration}, Iteration time: {self.last_iteration_time}') print('main_result:') - print('rules:', *self.main_simulated_state.state.rule_list) - print('control:', *self.main_simulated_state.control) - print('reward:', self.main_simulated_state.reward) + print('rules:', *self.mcts_saveable.main_simulated_state.state.rule_list) + print('control:', *self.mcts_saveable.main_simulated_state.control) + print('reward:', self.mcts_saveable.main_simulated_state.reward) print() print('best_result:') - print('rules:', *self.best_simulated_state.state.rule_list) - print('control:', *self.best_simulated_state.control) - print('reward:', self.best_simulated_state.reward) + print('rules:', *self.mcts_saveable.best_simulated_state.state.rule_list) + print('control:', *self.mcts_saveable.best_simulated_state.control) + print('reward:', self.mcts_saveable.best_simulated_state.reward) print() - print('max number of non-terminal rules:', self.non_terminal_rules_limit, - 'search parameter:', self.search_parameter) + print('max number of non-terminal rules:', self.mcts_saveable.non_terminal_rules_limit, + 'search parameter:', self.mcts_saveable.search_parameter) print() print("Number of unique mechanisms tested in current MCTS run: ", - len(self.seen_graphs.graph_list)) - print("Number of states ", len(self.seen_states.state_list)) - print(f'\n ---------------------------------- \n') + len(self.mcts_saveable.seen_graphs.graph_list)) + print("Number of states ", len(self.mcts_saveable.seen_states.state_list)) + print(f"\n----------------------------------\n") sys.stdout = original_stdout - # path_to_best_graph = Path(self.path, "best_graph.png") - # best_graph, reward, _ = self.get_best_info() - # save_graph_plot_reward(best_graph, reward, path_to_best_graph) - # path_to_main_graph = Path(self.path, "main_graph.png") - # main_graph, reward, _ = self.get_main_info() - # save_graph_plot_reward(main_graph, reward, path_to_main_graph) - - def save_lists(self): + def dump_results(self): """Saves lists of graphs and states.""" - self.seen_graphs.set_path(self.path) - self.seen_graphs.save() - self.seen_states.set_path(self.path) - self.seen_states.save() - - def save_all(self): + self.mcts_saveable.seen_graphs.set_path(self.path) + self.mcts_saveable.seen_graphs.save() + self.mcts_saveable.seen_states.set_path(self.path) + self.mcts_saveable.seen_states.save() + self.mcts_saveable.set_path(self.path) + self.mcts_saveable.save() + + def save(self): """Save all information in the object but not object itself.""" - self.save_visuals() - self.save_lists() - - - def update_checkpoint_n_logs(self): - pass - - def save_checkpoint(self, folder = "checkpoint"): - filepath = os.path.join(folder) - - if not os.path.exists(folder): - print("Create ") + self.logging() + self.dump_results() + + def update_checkpoint_n_logs(self, iteration_time): + self.last_iteration_time = iteration_time + if self.iteration % (self.checkpoint_iter + 1) == 0: + self.prepare_folders_n_files(self.path.split("/")[-1], True, True) + self.save() + + self.iteration += 1 + + def prepare_folders_n_files(self, folder_name, rewrite, loggging = False): + folder_path = os.path.join("./", "app/" + "checkpoint/", folder_name) + + if not os.path.exists(folder_path): + print(f"Create checkpoint dictionary - {folder_path}") + os.mkdir(folder_path) + elif rewrite: + print(f"Rewriting data in dictionary - {folder_path}") + path_to_file = Path(folder_path, "log-file.txt") + if os.path.exists(path_to_file) and not loggging: + open(path_to_file, "w").close() + else: + postfix_folder = 1 + folder_path = folder_path + f"_{postfix_folder}" + while os.path.exists(folder_path): + folder_path = folder_path.replace(f"_{postfix_folder-1}", f"_{postfix_folder}") + postfix_folder +=1 + + print(f"Create checkpoint dictionary - {folder_path}") + os.mkdir(folder_path) + + self.path = folder_path From 68a396dbe7c914206768ba4f065ac419ab6c074b Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Wed, 19 Jul 2023 12:56:04 +0300 Subject: [PATCH 5/8] Add checkpoint folder check --- rostok/graph_generators/mcts_helper.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index e6e55f90..39c9ab00 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -434,14 +434,13 @@ def __init__(self, self.path = "./" - self.mcts_saveable = mcts_saveable self.iteration = 0 self.checkpoint_iter = checkpoint_iter self.last_iteration_time = 0 CheckpointMCTS.ID_CHECKPOINT = CheckpointMCTS.ID_CHECKPOINT + 1 self.postfix_id_folders = CheckpointMCTS.ID_CHECKPOINT - + self.prepare_folders_n_files(folder_name, rewrite) def logging(self): @@ -492,9 +491,16 @@ def update_checkpoint_n_logs(self, iteration_time): self.iteration += 1 - def prepare_folders_n_files(self, folder_name, rewrite, loggging = False): + def prepare_folders_n_files(self, folder_name, rewrite, loggging=False): + folder_path_to_checkpoint = os.path.join("./", "app/" + "checkpoint/") + + if not os.path.exists(folder_path_to_checkpoint): + print("Create folder for checkpoint") + os.mkdir(folder_path_to_checkpoint) + folder_path = os.path.join("./", "app/" - "checkpoint/", folder_name) + "checkpoint/", folder_name) if not os.path.exists(folder_path): print(f"Create checkpoint dictionary - {folder_path}") @@ -508,9 +514,9 @@ def prepare_folders_n_files(self, folder_name, rewrite, loggging = False): postfix_folder = 1 folder_path = folder_path + f"_{postfix_folder}" while os.path.exists(folder_path): - folder_path = folder_path.replace(f"_{postfix_folder-1}", f"_{postfix_folder}") - postfix_folder +=1 - + folder_path = folder_path.replace(f"_{postfix_folder-1}", f"_{postfix_folder}") + postfix_folder += 1 + print(f"Create checkpoint dictionary - {folder_path}") os.mkdir(folder_path) From f0815ec6bb073a0d56fdaca8bf3a1f93463a0c6c Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Wed, 19 Jul 2023 16:12:19 +0300 Subject: [PATCH 6/8] restore generation --- app/hyperparameters.py | 2 +- app/restore_optimization.py | 0 rostok/graph_generators/mcts_helper.py | 41 +++++++++++++++++++------- 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 app/restore_optimization.py diff --git a/app/hyperparameters.py b/app/hyperparameters.py index d6f3b16e..fec83be8 100644 --- a/app/hyperparameters.py +++ b/app/hyperparameters.py @@ -1,7 +1,7 @@ MAX_NUMBER_RULES = 10 BASE_ITERATION_LIMIT = 20 -BASE_ITERATION_LIMIT_GRAPH = 200 +BASE_ITERATION_LIMIT_GRAPH = 4 ITERATION_REDUCTION_TIME = 0.7 diff --git a/app/restore_optimization.py b/app/restore_optimization.py new file mode 100644 index 00000000..e69de29b diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index 39c9ab00..ef7239ca 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -1,5 +1,6 @@ import sys import os +import pickle import time from copy import deepcopy from pathlib import Path @@ -14,7 +15,7 @@ from rostok.graph_grammar.node import GraphGrammar from rostok.graph_grammar.rule_vocabulary import RuleVocabulary from rostok.trajectory_optimizer.control_optimizer import GraphRewardCalculator -from rostok.utils.pickle_save import Saveable +from rostok.utils.pickle_save import Saveable, load_saveable from rostok.utils.states import (MCTSOptimizedState, OptimizedGraph, OptimizedState, RobotState) @@ -406,7 +407,7 @@ def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter, checkpointer= iteration_time = time.time() - start if checkpointer: - checkpointer.update_checkpoint_n_logs(iteration_time) + checkpointer.update_checkpoint_n_logs(iteration_time, new_state) return done, new_state @@ -416,7 +417,6 @@ def make_mcts_step(searcher, state: MCTSGraphEnvironment, counter, checkpointer= class CheckpointMCTS(): - ID_CHECKPOINT = 0 """Class include all the information that should be saved as a result of MCTS search. Attributes: @@ -438,8 +438,6 @@ def __init__(self, self.iteration = 0 self.checkpoint_iter = checkpoint_iter self.last_iteration_time = 0 - CheckpointMCTS.ID_CHECKPOINT = CheckpointMCTS.ID_CHECKPOINT + 1 - self.postfix_id_folders = CheckpointMCTS.ID_CHECKPOINT self.prepare_folders_n_files(folder_name, rewrite) @@ -469,25 +467,25 @@ def logging(self): print(f"\n----------------------------------\n") sys.stdout = original_stdout - def dump_results(self): - """Saves lists of graphs and states.""" + def dump_results(self, current_state): self.mcts_saveable.seen_graphs.set_path(self.path) self.mcts_saveable.seen_graphs.save() self.mcts_saveable.seen_states.set_path(self.path) self.mcts_saveable.seen_states.save() self.mcts_saveable.set_path(self.path) self.mcts_saveable.save() + pickle.dump(current_state, "state.pickle") - def save(self): + def save(self, current_state): """Save all information in the object but not object itself.""" self.logging() - self.dump_results() + self.dump_results(current_state) - def update_checkpoint_n_logs(self, iteration_time): + def update_checkpoint_n_logs(self, iteration_time, current_state): self.last_iteration_time = iteration_time if self.iteration % (self.checkpoint_iter + 1) == 0: self.prepare_folders_n_files(self.path.split("/")[-1], True, True) - self.save() + self.save(current_state) self.iteration += 1 @@ -521,3 +519,24 @@ def prepare_folders_n_files(self, folder_name, rewrite, loggging=False): os.mkdir(folder_path) self.path = folder_path + + @classmethod + def restore_optimization(cls, folder_with_checkpoint, checkpoint_iter): + path_to_checkpoint = os.path.join("./","app/","checkpoint/", folder_with_checkpoint) + + if os.path.exists(path_to_checkpoint): + path_mcts_history = os.path.join(path_to_checkpoint, "MCTS_data.pickle") + mcts_saveable = load_saveable(path_mcts_history) + + path_graph_report = os.path.join(path_to_checkpoint, "optimized_graph_report.pickle") + seen_graphs = load_saveable(path_graph_report) + + path_mcts_state = os.path.join(path_to_checkpoint, "optimized_MCTS_state_report.pickle") + seen_mcts_states = load_saveable(path_mcts_state) + + path_last_mcts_state = os.path.join(path_to_checkpoint, "state.pickle") + last_mcts_state = load_saveable(path_last_mcts_state) + else: + print("Couldn't find dirictory with previous checkpoint") + + return last_mcts_state, self.mcts_saveable, seen_graphs, seen_mcts_states From 59ad6e18d06817e9462fa1aafd71e8bac9a12bb8 Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Wed, 19 Jul 2023 23:44:01 +0300 Subject: [PATCH 7/8] Fix path saveable classes --- app/hyperparameters.py | 6 ++++++ app/mcts_run_setup.py | 27 +++++++++++++++++++++----- rostok/graph_generators/mcts_helper.py | 18 ++++++++++------- 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/app/hyperparameters.py b/app/hyperparameters.py index fec83be8..ec24962a 100644 --- a/app/hyperparameters.py +++ b/app/hyperparameters.py @@ -1,7 +1,13 @@ MAX_NUMBER_RULES = 10 +<<<<<<< Updated upstream BASE_ITERATION_LIMIT = 20 BASE_ITERATION_LIMIT_GRAPH = 4 +======= +BASE_ITERATION_LIMIT = 30 +BASE_ITERATION_LIMIT_GRAPH = 3 +BASE_ITERATION_LIMIT_TENDON = 3 +>>>>>>> Stashed changes ITERATION_REDUCTION_TIME = 0.7 diff --git a/app/mcts_run_setup.py b/app/mcts_run_setup.py index 91447661..c453712a 100644 --- a/app/mcts_run_setup.py +++ b/app/mcts_run_setup.py @@ -16,12 +16,29 @@ def config_with_standard(grasp_object_blueprint): # configurate the simulation manager + def object_callback(): + return creator.create_environment_body(grasp_object_blueprint) + simulation_manager = ConstTorqueGrasp(hp.TIME_STEP_SIMULATION, hp.TIME_SIMULATION) - simulation_manager.grasp_object_callback = lambda: creator.create_environment_body( - grasp_object_blueprint) - simulation_manager.add_flag(FlagContactTimeOut(hp.FLAG_TIME_NO_CONTACT)) - simulation_manager.add_flag(FlagFlyingApart(hp.FLAG_FLYING_APART)) - simulation_manager.add_flag(FlagSlipout(hp.FLAG_TIME_SLIPOUT)) + simulation_manager.grasp_object_callback = object_callback + event_contact = EventContact() + simulation_manager.add_event(event_contact) + event_timeout = EventContactTimeOut(hp.FLAG_TIME_NO_CONTACT, event_contact) + simulation_manager.add_event(event_timeout) + event_flying_apart = EventFlyingApart(hp.FLAG_FLYING_APART) + simulation_manager.add_event(event_flying_apart) + event_slipout = EventSlipOut(hp.FLAG_TIME_SLIPOUT) + simulation_manager.add_event(event_slipout) + event_grasp = EventGrasp( + grasp_limit_time=hp.GRASP_TIME, + contact_event=event_contact, + verbosity=0, + ) + simulation_manager.add_event(event_grasp) + event_stop_external_force = EventStopExternalForce(grasp_event=event_grasp, + force_test_time=hp.FORCE_TEST_TIME) + simulation_manager.add_event(event_stop_external_force) + #create criterion manager simulation_rewarder = SimulationReward(1) #create criterions and add them to manager diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index ef7239ca..34660b6f 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -468,13 +468,17 @@ def logging(self): sys.stdout = original_stdout def dump_results(self, current_state): - self.mcts_saveable.seen_graphs.set_path(self.path) - self.mcts_saveable.seen_graphs.save() - self.mcts_saveable.seen_states.set_path(self.path) - self.mcts_saveable.seen_states.save() - self.mcts_saveable.set_path(self.path) - self.mcts_saveable.save() - pickle.dump(current_state, "state.pickle") + saveables = [self.mcts_saveable.seen_graphs, self.mcts_saveable.seen_states, self.mcts_saveable] + + for instance_saveable in saveables: + with open(Path(self.path, instance_saveable.file_name + '.pickle'), "wb+") as file: + pickle.dump(instance_saveable, file) + + object_callback = current_state.optimizer.simulation_scenario.grasp_object_callback + current_state.optimizer.simulation_scenario.grasp_object_callback = None + with open(os.path.join(self.path, "state.pickle"), "wb") as file: + pickle.dump(current_state, file) + current_state.optimizer.simulation_scenario.grasp_object_callback = object_callback def save(self, current_state): """Save all information in the object but not object itself.""" From 3050af7dd50b2000a78445a8d9e37e0904b0d9e3 Mon Sep 17 00:00:00 2001 From: Yefim Osipov Date: Thu, 20 Jul 2023 00:49:27 +0300 Subject: [PATCH 8/8] Test restoring --- .../AppGraphSphere_1/MCTS_data.pickle | Bin 0 -> 51627 bytes app/checkpoint/AppGraphSphere_1/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31096 bytes .../optimized_graph_report.pickle | Bin 0 -> 7027 bytes .../AppGraphSphere_10/MCTS_data.pickle | Bin 0 -> 595601 bytes app/checkpoint/AppGraphSphere_10/log-file.txt | 126 ++++++++++++++++++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 534935 bytes .../optimized_graph_report.pickle | Bin 0 -> 67130 bytes .../AppGraphSphere_2/MCTS_data.pickle | Bin 0 -> 52844 bytes app/checkpoint/AppGraphSphere_2/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31169 bytes .../optimized_graph_report.pickle | Bin 0 -> 8282 bytes .../AppGraphSphere_3/MCTS_data.pickle | Bin 0 -> 53511 bytes app/checkpoint/AppGraphSphere_3/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31207 bytes .../optimized_graph_report.pickle | Bin 0 -> 8807 bytes .../AppGraphSphere_4/MCTS_data.pickle | Bin 0 -> 47304 bytes app/checkpoint/AppGraphSphere_4/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31080 bytes .../optimized_graph_report.pickle | Bin 0 -> 6349 bytes .../AppGraphSphere_5/MCTS_data.pickle | Bin 0 -> 49773 bytes app/checkpoint/AppGraphSphere_5/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31043 bytes .../optimized_graph_report.pickle | Bin 0 -> 5828 bytes .../AppGraphSphere_6/MCTS_data.pickle | Bin 0 -> 55554 bytes app/checkpoint/AppGraphSphere_6/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31345 bytes .../optimized_graph_report.pickle | Bin 0 -> 10510 bytes .../AppGraphSphere_7/MCTS_data.pickle | Bin 0 -> 48513 bytes app/checkpoint/AppGraphSphere_7/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31108 bytes .../optimized_graph_report.pickle | Bin 0 -> 7079 bytes .../AppGraphSphere_8/MCTS_data.pickle | Bin 0 -> 49193 bytes app/checkpoint/AppGraphSphere_8/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 31119 bytes .../optimized_graph_report.pickle | Bin 0 -> 7457 bytes .../AppGraphSphere_9/MCTS_data.pickle | Bin 0 -> 46197 bytes app/checkpoint/AppGraphSphere_9/log-file.txt | 18 +++ .../optimized_MCTS_state_report.pickle | Bin 0 -> 30998 bytes .../optimized_graph_report.pickle | Bin 0 -> 5355 bytes app/hyperparameters.py | 5 - app/restore_optimization.py | 64 +++++++++ rostok/graph_generators/mcts_helper.py | 37 +++-- 43 files changed, 380 insertions(+), 14 deletions(-) create mode 100644 app/checkpoint/AppGraphSphere_1/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_1/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_1/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_1/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_10/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_10/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_10/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_10/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_2/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_2/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_2/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_2/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_3/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_3/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_3/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_3/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_4/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_4/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_4/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_4/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_5/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_5/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_5/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_5/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_6/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_6/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_6/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_6/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_7/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_7/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_7/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_7/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_8/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_8/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_8/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_8/optimized_graph_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_9/MCTS_data.pickle create mode 100644 app/checkpoint/AppGraphSphere_9/log-file.txt create mode 100644 app/checkpoint/AppGraphSphere_9/optimized_MCTS_state_report.pickle create mode 100644 app/checkpoint/AppGraphSphere_9/optimized_graph_report.pickle diff --git a/app/checkpoint/AppGraphSphere_1/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_1/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..9d1e2f25592959bc7e2104b32b694db605a4b80d GIT binary patch literal 51627 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_1/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_1/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..bbc73963db16783741d9e3bdd7fec5071a016b2e GIT binary patch literal 7027 zcmds5&2t<_72nn8t}V%yEh|oJBAZ}m4du0DL)ixk#fD_DTG&QWB?RnDW_MfL)83sK zPtRDE3s)tFP&#x~iehp|fRLhcJ#*6! zotE>E*DJ`k!hJ6YGfaBCsf z#WknNE!S@GSkHQ?Ov@+_j8uKVJT@H_#&FMEb&Q#{dRHtX zKGx6nx*FK6mK~H`uMWmckfAW(Tu0U@nF2oQQHvPCTb75%ksG*8Op6okAdEKcDsRSm z=#|x2A9R!z@}T9ob~E18hpJ7lcGs#lBkl(fnpmGpj7b(Er&;HLW&2J!!wRm>-U=Z2 zp>v;K^XePd+Cn<2m9TyAVz5wds|~9PyDee`p~Kg_2OUSp*PVJOtOqe0)`cc_8}P6Z zR~A4006!nlXPNE53Rf$i_@Fp%i;xnWHqo| zwdMt_zWC^3n6Aa*lAd}6wYS+J29RVdhkrb!@<9J2ekWF>ce+pSjYRLa$QE%`d^_Dq zGAfIo|L);uKUn@v~z71kgz_1LNx+>3bpZoC2yfn9eZ1*h`2pTGP3@4x?r9y2EuW|E{37sWRq zCG`|k$slyxhGn~rCXXvg8s>CSh0fZV%N59JPmb5^mJi%rQ&Z~>lmI%3%JJNI(;UIm zS&x^~j5w1V%aZt7LY3R)LtN-sIA2-(t9iRoRV=jYM`F3SyeY0E$NfyNF7cjuOFvD- z$KnI=VLKM$=N%O$2;!G*2gOGn@>d=5vYXumv)^oV8GB_dM9XeGo84DLe)_ZWja zgF)GkXc8`T#b97?VikkymqD#j#0w=|(FT}R3~nvj2^B)&cAQWQco-Byg#+$na9|Y! z9tNjLp-=|tsc;%+7^IJ4a5xx*T;UQvD4b^SwiOPz#2`=#hX~N7ifXl34(D?@c<=*W zPu(I1@^Tbbj1Pz9L88%(S$ULb^g1uch(_=8a-3-NXHFg`8Y7aI1)|Zlyetxp-W`+E zM5BYJDJP|Q@wJz-% zcWWCNId%vd&D#S}qrBb#gX9vppby@R!k6K>dq)XWn?^&-=mO?&-Km9UKY;C`<63pz z2slq2z$p}AfZrW@Z#C6{_QF|83#=x6$RwSceNK|N+UeY|h2=DA_u zH3_dzvPm|<4zURiFk&)+1c$}ZghJ>F2~LHeyJrxm29{Gcj4&j`Ca&86Y@HI$z>Q!K2qMUBS%%< z!lg{AqApl^9hWk>CPSR0#6+&BD&NG3w_q?iLK$he=*YC~mY*OasiwIaJi=*_b)3!^ zfUICZ1D6~a`b3if$OQtL$hDK1z~=!U%Sj);?!^B$=`A(*vjrli{w&irr^&o+dQWB2 z`>D@grmx@a`CvzS4cT)?Gd;c7ZC{b;=XdQdpopHDx?6irWaRv5U~TTyWhl{4-{hRk zDB3ru3)rbUGVp^y+Dz?zQv%qmTbJ0k=w-*IW_dt&l!49bU)Ve{@je2nilqJP*8S15Jjo{oX ztj^fbnf4BwAvmO_vxEA>fQ7+#rm3TT4;vl`s_E?D!Srz8z3Jg#$@FnBL;YTYe_kJg zTfQIvyaCfG{&|yVG&L`ONHjL1dHExv(crwiO*A%gQ?g1l+I~c?5si&pQNBeqxglFb zqdU{GPBi!l4WUD{Y2-Yj(XX>IA{raH)AAnC*rZ*M4~d4XW%KgKM5Ci;q#_!9Julah zPB7d2mYD62aMusOY#5(GnC%a+&0sd<8id)1i!fU|*76bX8_Y&?+hI0j9fa9B1|ZiU Z%+}#DW@a&430jkJHU?u6+7tLM{}=4wN*w?I literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_10/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_10/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..26a9bff9a21ab2ccda303dd375387783f3986254 GIT binary patch literal 595601 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͌(^qM<7yCP7*-P`i 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_10/log-file.txt b/app/checkpoint/AppGraphSphere_10/log-file.txt new file mode 100644 index 00000000..5222ca9c --- /dev/null +++ b/app/checkpoint/AppGraphSphere_10/log-file.txt @@ -0,0 +1,126 @@ +MCTS Iteration: 0, Iteration time: 2.387392282485962 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + +MCTS Iteration: 2, Iteration time: 2.043215036392212 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 9 +Number of states 9 + +---------------------------------- + +MCTS Iteration: 4, Iteration time: 1.625321865081787 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 15 +Number of states 15 + +---------------------------------- + +MCTS Iteration: 6, Iteration time: 1.576897144317627 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 21 +Number of states 21 + +---------------------------------- + +MCTS Iteration: 8, Iteration time: 0.7679116725921631 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 27 +Number of states 27 + +---------------------------------- + +MCTS Iteration: 10, Iteration time: 0.5185501575469971 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG Remove_FG Terminal_Radial_Translate2 +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG Remove_FG Terminal_Radial_Translate2 +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 33 +Number of states 33 + +---------------------------------- + +MCTS Iteration: 12, Iteration time: 0.1713728904724121 +main_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG Remove_FG Terminal_Radial_Translate2 Remove_FG Terminal_Radial_Translate2 +control: +reward: 0 + +best_result: +rules: Init AddFinger_RN Terminal_Negative_Translate2 RemoveFinger_N AddFinger_R RemoveFinger RemoveFinger_RP AddFinger_PT Remove_FG Remove_FG Terminal_Radial_Translate2 Remove_FG Terminal_Radial_Translate2 +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 35 +Number of states 39 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_10/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_10/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..181239553f95c72d8aba3f485384912b86668ecb GIT binary patch literal 534935 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_10/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_10/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..bfa0023bd7605ebd2fd73856d3a52ca7460688be GIT binary patch literal 67130 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_2/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_2/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..9c117c5febcc054c77b6d3a32cccc4b7773fd2c1 GIT binary patch literal 52844 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 Dn}=h&hB3O&du)3 zWbRBHM~aj@r1HZ>ePDQK{{(pA1yKp94?OS!4^>MA2mulZ6&eW;LgKBQb7p4OGrRtX z>n+=6{F{64oUeQCJ->S&cK_h!L5EW5XS(jIWx>n0UB|NhS1-FR4gZEK zxW|p@Q14u@s@$;68V~h|lgKn84{U45>LF9WN8Mx4K=793;I;b(ekO**SUm_m zRkOsaq3(QnKGgk|GJNjUEZeMxD|&aS>XdIArE0)k4?+{_16ich@l^^363N z&KyRA8TqdzpOH7Z4+2+qs#OcZyP|slI$n4qC zNj*I8nYLPRyjoLy^iDtN3&o5cd>OUZheHe?$yf*e#{m^*KmN)6kG_5VN5zNaSVu?k z-9LUpzj_OQBYYGpvS}b=Q`g-53$alb$xv}we1*h5`6d2-mFQu)SZ71lP)1hgwVAqq z`{(#wr+SxP!Umythq3HRny>-1sO#Xt1QP3SE3mm&U!reQmf!KW`__&Zq*EoWMy1WCg50{DO2KP zj0*LP7GG$1`FwHq{TccNCGkQ%rDN~K7gxl&I0Fwg=}Km3BVB)sBf5EAV_99-&c?C% zR_x6y!Vs_5r%#v-kD_@K<@%h6N(1r+T!`mkJfjP;c)Ha@6ledrVHQ7=l{J4WnUK_q zz^SZTj4Q9jia4B>C1kYRo8&}Gw?%RsNeh52<5nxb8VS}|{z*C)XOrchw5&?LV`=%q zj||)>8n zETxUI;?L10BsQNFr_;K`hnq{kr&n|)qo{3pem0}%dyz+}6~CEX=zLlZtd}!w%i$N( zy2OLc&BD`{gbNu(tYvVXY_vrOy4x@-5~(|q*(oGe42TSaa?D`M4X6QTLQyNw62;)b zpwcQD1LZ>D8-ra*F(`@*iWUA<47wOp0EG{f#b5_k_+VhXVz6K0NBCDU*k>557R6u_ zV35j+!6IdlY6_dNRbex>Dr{yjsfvMJs7~P4jfD2xBxZ$S)JdfXv8g!Wfg&@-$%#%L#dkFh-^z3xqK^ z)AD)37@xe{PZ&dVMxG^%Q93Wr6UJyAk)KB#=x2@9habZTZ0n9;Re-GpHjs3%O84O5 z2iW?!&HW|EyM3=vu9`}5RfrC4cP+kzWFAjN-vpc-EOaj&n^Y)9RY`Z##OOm!LduTE zV-W+FE7B};yS$u{WBQ;mnpF_h!z+tmko+#Vp!;tI{!8$_`im)09Ub1pKAp#OuUKV2 z`W_B2J1yI&@I{aFSjMia_E+gWB}CRhzSt)(!XHW~Ig98LK3-4S^bTW*PDgl7fwM3s zoUA}E(KNZ3d;wxteh9^4h*u<6r=r?rK@>S|*ni>t0)Y>JqyvvtqZkLT2tk zpZ?YdD12%!-PYLc&j{b*W`*acl#yGNb6}g~WO>O}?a7wrw%zDt3Xo`9Y0j3Xwki6| zZWE8Ea|Uil&b94!By*eCzT1(LX{Xx92~T}SiZXl#Z)uRi;AI7DLeVV^>>`Rlz|U z(8ZutVROuR-owg03w1N$JZNlAzK>Np=06`0MhpAp?+BwKIr(eCcft{{YxI`11e& literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_3/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_3/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..2d828e25f8059be5489b95db75af0ab8a06cee44 GIT binary patch literal 53511 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 ryHXv=-a`C>eI@6M?lo(uSo%w$Nk__jG literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_3/log-file.txt b/app/checkpoint/AppGraphSphere_3/log-file.txt new file mode 100644 index 00000000..16943e18 --- /dev/null +++ b/app/checkpoint/AppGraphSphere_3/log-file.txt @@ -0,0 +1,18 @@ +MCTS Iteration: 0, Iteration time: 2.1372127532958984 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_3/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_3/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..6cc3151519ced3eed12fe5e6abb7925fbfe848f3 GIT binary patch literal 31207 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_3/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_3/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..16495e18d1ac0d5ac5ccc176a508bb77e992644b GIT binary patch literal 8807 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 Gi~j?yDARQS literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_4/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_4/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..bcd49a3660d4b99308152d6bcd03e25b9679db4b GIT binary patch literal 47304 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_4/log-file.txt b/app/checkpoint/AppGraphSphere_4/log-file.txt new file mode 100644 index 00000000..1cd7376d --- /dev/null +++ b/app/checkpoint/AppGraphSphere_4/log-file.txt @@ -0,0 +1,18 @@ +MCTS Iteration: 0, Iteration time: 1.5798587799072266 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_4/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_4/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..d7aa93386319d78a4ab3dba99d83b6d995404e5b GIT binary patch literal 31080 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 L^Ymv_KKg$E5?ESy literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_4/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_4/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..0b265a999514e16138d0f924385ae08f60892573 GIT binary patch literal 6349 zcmds5>u(%a72owES;vl@q=^$JX#$ND-w(j#R1rP-KZKieQSGqN=K@s;WvFfe@llQKb?Rh=&mfq=EneQbpB%;6H$K?mTv9 zY$s{)g2dXod+uY-`~J?^d93fLH}{nEM;-EA8Mx=G3%==rvA`Yfn}O@gYO4`Q19;Qp zex!Cj=mmDmzQnB>otx#J>j%*{qB|as9*xFTpJxUTse`8HJ=_4^IPbZ(6Fhv<^Yro0 zc))#b9E;Szyxru6W43stM%|RB5exTYu4+p>ZQ3%3zKGm!NmL92yD6(OFas_lHJn$e zt<0#A-!WqLks8aJ>YJ^W=~o@sLS=@uqBzi6n^(V91#MLQhCYbavNBHl&eCJB9rk5T z=x>^J-i%bw{d18Tw51VnzhygSGg?+7^`_f6Z`7M1_k46sr0z(RNj5^eX>s2$J-b>s zil&a9^U?W%eSx2Ht)){LleTCHriWIn&y<^T$*AMghCYf+dr!F++lFplw5DpJ!ABxV->@aS0EEb+y^zj?h^$h}wV z0w>|V^hwR5HudiJFa6{5Gq2Ph)6OZCYH$4IU;2}+bnqW3@}K@#X4kG+e!*>C;L~)Y zR+%=gwgyWcH{5x{cDyjq_UWT%XgY^`XrJ0N=lYL?JbEIU#ffiPb|^8p-+A|m13&om zdumf0a9nvS4mV7|-DsH_#>?ghwzFWE&O(z%wZxi|8jyiKKksmfe6q#Omf7;~bjQ;0 zqK%oP11fFTiI(F?ZYx?mGm%*QktDj~a5$l=Sr)=aYg2!p)E_ufoBC}`hIKfarD38u ze0&*>Ct0(-AggzFE)|vwUv282zo5@AvrND&&~!T!cIA1&Lvi|jE>ZOhV8E9$zk*qG zC^Rx>fz>8?o19M^G+GcOVnG}4oxOQMs%PftO-3Tkm79;mzM`z@Pb9K7+<~F$GfYcR zbt1eb=+OAV@GeUl7^a0}c=H(MqNIUga3w9%s-zjiC`cL@YAzYNiU|6aAr=G~HX0FJ zM#}TK)hUXV;ajnk3OpN2*$ywpQbyqUSjqrA7faa&FT_%I!Apr0__oxdM&V@?b-?JX zPKFUW_9KRE;k61KL{ZdA^;301INk5?VA1u@U#vEorj%S(+^)g){~Yn8{BCu75JC|N<@DkpMGvFpf>Qj8hkJePUEEW z>^KUI>niM26$+DOHxRlmV__Mv9mC=aKF8wvx*9s;d`eGpkHfEECtQKc@G4w|YZ!pd z#-grHR41?(p>01#isXeRq8m<%gZc~?-K{m*SIl|S}gzYxCC86lL?@4mCv&6xN*1h+vm*DWV z1h9`#S-w6F7OE%Q6SK}?U;=n)F}rRV1a@5p@3RID<*{L7neQktmuqN#Gw@$PWz{o1 z*)0HLyYo7$-np}DmMscd?Tw@?>IPK&8l`rVRF5HgdfWbQdn!#a+1rl z+SGeDthI&8BqqwG(wcF*F{=XwwR)zHbuDfOi?U|Y9Jx{PekZ-lH{IGCD$1HZ-Zi^! z&&v{HSvWSlc(cQKSYYA%q-*&%nHMHz zG7oO}y$a#!q!y1;K-wF(epXQpxa4+)Yvw ziEt!oV2Blx28NeQ(m~36Ni&9-DQU(qb0p0edRx+rVSFVGw8GFWl7p_tOr+m7hVok$W3f^fGo!zlPsr{oUJ{ z`^5KV|Np> zO%r05#od}FNkiherb*(cxL4CClYX@?QKgGz_0iL8=9z4Y#2pU(k)_MGl rcT#)AX?zqRR9jbsP}<8wXv&s$@+g|_5F`5W-3C(pEsX$*|J8p3ulMD` literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_5/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_5/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..050325025f985c7b225986e4cdd9f8e8bf821a21 GIT binary patch literal 49773 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 OXQfs(HN4zC_kREs$;6ld literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_5/log-file.txt b/app/checkpoint/AppGraphSphere_5/log-file.txt new file mode 100644 index 00000000..5d3c467f --- /dev/null +++ b/app/checkpoint/AppGraphSphere_5/log-file.txt @@ -0,0 +1,18 @@ +MCTS Iteration: 0, Iteration time: 1.234072208404541 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_5/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_5/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..8ac327006600c787c8f830248a699187b8d2dc2b GIT binary patch literal 31043 zcmeHP3zSsFnH~lh9s(K&M8)-mQ4|H_6%Zm15h8;~hS4RUc6w$mR2MznV?RL9F`7hP zxxSXh2kzO3LC+=;Uz=r>&58%I@d2(`#Wk*CG#*ipCg2*4t0wOM{dHe`r;5I}o1C*} zS3Kvhzi-`J_xtLv*RA@TYkO>*xU!D_*~4<#d?CAR%<7YJ|}p6ly|+psqBF}1M*UPD&)f~h%U7WF2jId94YR4g1Or_hbTq4<#8X2NY!5%U{ zM-97>T5iqAwym7uRfZSMo_Ue%plUT2Y9;e46D{;~f^VflyU)m8=|`Z~id0)cB(5wq zcDH+{t;|yTv9dIK>Z5ny-zK}auu@A!A+d^Xpb+$GvoiTqf$o@g(=^pdd$&`!$fYQ3 zhk&8DbtI|1T68zT=zXF47_+haQUhqsrqd~EA8YNNHJ_tF5-$5Gwp%R zxnw54B%5pRQZ;s;f}2+o&Gvve6+kyn1C>?1UH8?oG{S z2f-{;U@qroDUzaE%j8{ID&AwMY6*DGSOhH@B!3f2S4Hna>E#`x<{LhT0 ze%9<@DXTrU-R1_buk)_g&n>G2TfKIc(>E^=a~ zW2>xK@12iTd2K8rl%;9dD?DBfq1p`Zh&-$2;+OG|vxK;%2WByEo4-tHmvv z;2~yS#c@;Z+LW5-msQkOV=+$M7>g;Zi*3eY9QyiV>YL{U+3pCioma+or>XoMPBYP$ z-@SQW8Qa~)Vk)qmSH^a)v6w@%Z7PfHK0_&Ll$kyC-EFJhUO4xsv(@sZjw1V;&-tHs zB{%|=RpkDNMPKWbJ$r{+w0k8`^qjIt98g8iv`R03egPLRL ziaQ!C5SP$sVGp3iP_B^5EKMXcOVd`#s}j3UzK~k7BxB{N9Jl6ZB1*P*(A|Mc16HJH z^5QuppUP%RYt`g2C)i$O_ilA{itisVv&;#$0@)DC92aQHvQH>;d@!?LD04zE^T<%< z*MgY?LzxqUnS(=_lY*H?mt}UJbN1+9?$BUv(H`h7t`cQyHZfhy5R1fOu}q{zK@>%& zxJKCG2C+eu#3pg4*dp!`TgClioA@WOQ|uDE#U8O&ydd_8SH*tumN*~|a-GT^^ggaY z*$WIMr**c#3(UZ zj1gnScrigt6qCecF-4p!rV1faVzpQ!)`|6Ev$$LA5RVrrHSD7^R$)apx9rN1t?6VwZ{zS!DYl3%B~rym_TtIaKr zAF7j6DTiS-*2!t?qx3pCoqfEePR?K-Z>y8%u}^O$eZh@$wnBk zlXGD%gjwufvwJ00@M70lb`D9Y;M0(j$ylw01T9}J`V?ubvj>N>S_Q4+DF;jB`68K4 zX09yBQ>kRN5R#{pE7r&}C|M^*;Ef~w%(KbuEXlE)xXoa++YHvb&0tNwD5v=MAR>GZ zg3R|66~8Rq!~C3<;Dqi9x~xLiP3GYj<;A#jAsI%gYGN6(XbCJ^$)TvVae|IBy{&B) zjkxs5-G$j%ahRoCW+p-okMGl)H9S@WpdR~m$kJgy!o!|u>WY4B9Q2D_^h85-PZN!B zTyE3zxdWiNqjr;bnz?O=z-@k4ZWH2g^CEM1Ty9(S+#U#Ud&tb~$0lz5{J70;u94hZ zRR?aDp4`6%$UR{ux5Gp(&?x71Ki`=VK z2kwBL-1`A?ADGF#8-X0H|GNx^Q{qIf>u^GSPtEof#}(YiH#-AnL%nvu>`j;50j4ke zn6v9;Klu8Av>UQ?18IN1LpJGpWOdxBYpS7?2B0drpGb%`lf}u*7ptId@)Y(J_fz5P zxerB_j(ea@H)%TT)Y`&MJ-15g=MZ2G^(jnOQ9qY`MSU84J@xU((oqkFUDuzh<4zsB z*047dVh#68n6Ki#kbT8{5qv%Oi;$(`-ml4O&n~wPz4Tdo=tZ5gZd22!>l}so2R3J@<5odR8$tfPwE8udz+tc~H)6H=qulo8UK1_90_sO*_KGrd{VJ+&g z{xS;IUzo5C@alDLDzi*em+NEH6XiG|4)S#=!Z%4s+c|?qpYQu;_5FN%$ z6pU#T#-l<5_~_a|;(SI2^6DrcSD8Q_=YgD`C7lT=Uku4S^X2 zGaBXsm^oyEXTIftT5(GoOa>+kvl3<%%=clghq(#nW|&Pdcf#BQb1%$;Fb}~z2D1ZZ z56m+#{|WOl%-b;UzwJVvAA~6x7K#AA0j?I1at( zRDCy}dDF4_0VPYY)v5VV%DtJy7H+}rS+x+C5w2yTV2O3`YJzTeDu!m zITDS8UyC=Y6LyqtiOqOui`Z(39q@LF-B!`=ODCP}9cdEiwUyR+N9C@b>gX=Zq>hfRk=hV@K@BAd zF#Kmd0VTCx|7vyONz$qKMN}u8B$njr7d`$X*eEy05>A=m$dLWR`KZE(KMfBg#KZE(aZt?T^XE2`?iGIE( zP;}pqwMXFn{4?-;Q65h>VDg>wx*(6U! zvPGVOWUCy5WScw($xb;F$!<9p$zIuvWS_hg$$r^}s^P@d~RG9t#=20}lk{b>tQ0i4L=2@+ELNQ@)I3l-!48jQkCf@$z*f z6XhF7Cd)UGoGaf#BIL(NR?C4@oLDEnjAXMMj%0_Nfp<^?I$6C%E!9q?AF3&{{ET1B z-*nLwXdD7ZdckO&(^|&r99A=6N0i8@9bF;?7_LVB}cJ`Gj@ecNtDsdBh{gLnwkkukDMHDahD>I4TYbh^;Np8lq z#mHrxE#&e4$`F>)sqesWco5h);X%uB!-Lk~h6m-8SGQ3qxDBtIOE9U=VK>`R3O?eN zMxu%Bsrib<(haQ@{OYabr9O=u`dM10!=$|m5=MVBQdi2jY z=rL}&=oJ%II&kle7@Sx1lwJjHM=to9nclBW^!Ph1Ob_Eu9D2dvU>sdZwX8 z^+VQ>MH*(p>cLrh&ff@dp2NP9Qq6_0Z@trzrE9&sUwJtBtB$IMRy8J7&p$z^H3L$T zIV&kyEBlJS1z*p95wdjrd3!9(AIrPL5r5T_tLJ|uq1NzU#hexYtJzoluYs@UpGTIC zKkrQ+PX4N^AD;N%LZ~(TH!x?#e zHH7z=An?|07=pLDi38!m3J@MJLEx?2Fa&S)8wbMn3J@MOLEtlvFa&QA6bHgDDnQs} zg20C>VF=z#9tXm|ReE}(aTH_=Ovw0LzeZ%(f7KytiGu9gCSjFFIroMnQJJ2^ot+YD6~1fb3tQAp2(%GS;qyk>N8uMxEhk zN>^u3M?vjh5fOe@OTsc zd3d~E{Wd(_+Wiwe-US_q6)bNUo(7Ni)~3MYU8alS@qSAN9`8J?A+IQZ?f~GA@w<@8 z-^4$G$DgJ@gU4TpkHO;)wI|{6_tJCl__O5|c>MLSA0DsPKY+)p<2qCmuSWaB z@OZU#8a!UzjDyFkiRtio_MQiiXUoO#cy+=*`wpS3Z>9%*i+E&76Fr-pt8|PRbu8ST?2f zY)-yWZ|3A1^=3}KQE%qt4=sN`|75+H$`9(z>M^)2l6{aYlY@{HGCzJz489D!t=JPXNYIUUIkxtNlQdNaJ3zl0*{%@6|j z+#YCMSpu-SdNTla^=3fr>dgS%)tdo7oy;8$z1e+Kl;%wEenyHj!8-W>`#2M%j{)|T z-s~avmEP=O_Lbi3AK>fH4Ywf6pf}r0c}j2QVUpW%Z82ib*JA3;5ZE~3LCbN&gVx}N z2j!Gkw^48QEMD1FZ}#tQX{7miUX`ZPo9#xH?pXCIR6+P_7cD3bJv4Wh-XSPCdb2m^ zZVi(+&FEh^hYjPoqzu~e0|$}A6dHK zX!U03#&PHcgM%TciniCcw>Dz^=rWf^ZEpa4J-r5G>F8Z?uV?R&N%U9wzo0qj!OxUSojXg=Tu^ zo9KP28yGQF#)+P3Xi@!8>5ZZcGhw}1LeDuF;M~f-(%V?@^__DOvUHtOt2e8Kzv`%J zXjNlU_580S)S4+|6?0bO?bYln{@1|Q^Uoto$DcR4!o3&Eqr(w@)sw5|e+!}3@ZZ3k z75|OwEB?2^*YmfLrQ@&Fo7KW!b@js&|DOxVf#i`XD3EMcDxChR&N#)*?0r8v!WmyVM34pW-*arzg&mx?kLFaG9lCI&0-?M{=E*_15uD|H6hdL&0-?Md4dkv&!ZsQZbGKj zn_){K#vFjN7ag*vq9A+1giNb9i;1k!fb2h_Alqv~rq!F_GdxC};b=-%XKzG7_PPm~ zR&N#)8BWV|$PPw9_Im@eklyTvs4Ui-{SqD@9J~yVH{sud$NSaYu(;=~-68OJ7jy(X z-Y}d7kN4IthR3^18F;+kvIZXSJlsWINN@HiGWnZ$7d-wneFh$XA-)KYKh$1_$KOlu z!sE}D58?6G!{_jLwcZbv!>i+C;HlLpJYM~cg~zL{Y4CV;b0IulO)P@Pv-eVXJX;pv z@$7URJf011gvX=ro$z?H`+Imiy8I(N?#(;laqoE+9=Fz4;Bo7ChrIuPdNU3oH!}_^ pH!iL$ZUY=lZZuq3{F9r6?{Q=0AaMpl-9>NK*eB^p&M0%_{{WTDRvrKV literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_5/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_5/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..3d82c86876c1c802b635dedf80d2944e80503101 GIT binary patch literal 5828 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_6/log-file.txt b/app/checkpoint/AppGraphSphere_6/log-file.txt new file mode 100644 index 00000000..28db96bd --- /dev/null +++ b/app/checkpoint/AppGraphSphere_6/log-file.txt @@ -0,0 +1,18 @@ +MCTS Iteration: 0, Iteration time: 3.1061370372772217 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_6/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_6/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..3ec6e8ee34a3e3681fd1fdd6727a95ea8d3dfd8b GIT binary patch literal 31345 zcmeHP3zQYbnI2|ffDzC@AS$jejG`zYub>clh!7b>GK?+(_2$k@L*1G?_m1}=f?_m@ zJWTsqE-JL9ml6_3F zyZfScVYPR5XH%KNMKij)=b-3?-NMRQiAg29|I$?2N@S8>Zob<0hl;6xrJCvvK2 zyGb3UQ~5&aVtT|72WzpAO6Ny&X1-((#+@EM#^$5y!&jBWA$C(swk=x-We-mHXA_BB zF>O(SCzMx7F4@(U%#B87;<9XevaOg-=2n#KK`nIVLjQzU6HS?HhjXc^F#ig-u=#Y4 zuCV@mX-BHPplZ40{PSB&_7Pf$xU^*VMp1zpNGIE@bV-b`4@u<{1uNH;$|TdJb@ric z>1=yvqAgvtx^on&()?nZ-D`G9oTwryP8O$%Q`U)5e12~5{21?ieM{L5Fw zjQM35lf8_FmhxMs1aivnIm^qbpWPb7HA9@TR*bSwc525VSWKlmtXv}5of;jYOu-(u zAV&?mkh;v8neA9H)2j?Gntk#j*-h1IF4RiqS0vi#?gU>-g*MF0UhYSr@A6bfK_o6O zH8pNZ?PIOohumxqQKyI2x11BK$i-ZdVwOF) zHJ8lfmu7QaJ*vj;UvTqEqSYQW8xQs_C;HT7o9pn`a=l*UuP$9v%Bx3~#ZGuZZD?sd zJqV^#fw_d6rAUf)DsIlS_jcpY(_Z;hHv3-rRLr)zJEA&v-)>9Qhe#)weO)Gv0~Eqjf>B5;u93*wDJ5tQI$G zf`^!S6~|4rXH#ljP*zb}jKw&0V=ShuF18wrap>!dsc)ShWV=1Uc77S#9j5ZPJIzF2 zenad0GPb*n#Z+KBzl`nk#$pc4wxuk#dkm$hQD)Axcek#5d(pg~&Qa5wI*ROXKIcE) zncxUiR*`!n7Jao-_MGi*(e9Z*(R0fpu}>8}%O2WdU6xH>X3fRqsK<~x(jHh?(QPHN zOB1O~cd@|ZDqngo4qGXY##OtqHJiJ%XqB!lwa`H>*^w&d>3#CxyVoB5@HgMH8`V38 z&bXt&LUAFD7WN>T4CM-`%(6r>vn*|uyehH#=L@N&OEXrU%5iIsUPQ^RZn`>fYS8i& zy}bAxl22tbrM2qiF*n#=WJ9mII>q-7c(cq6wgTB0%A62r%Cdhbb7C-aKqzxkF!Rt* z=GTImgF~5AXn0xxzVD9i>ZqXj>POcJVb2c$U%oK~o645Erq9BT5 zmAFdS;(D=Ol*C4HhuAFc7F)!9VypNUu|w<>yToqsym&$E5wD89;w`aH?B_a_z3F*e zfwC_=)Rt_5LDk5CFsKK47z{|uAuwPlhrxi3JOT#L%ULxw1cJJvWo0rhJ0k z8#88qUNn&A`RQc4)xq^u5+~UM66I6WfeH0llFH;Q`qr=y&sc@!*<9!4qubNTeBR2B z?nvQNJez%bD*3bE7wtZ1fHVO-sz-gPPpivP z)^f}b@uhGf`EI4zja*atlAM5o+U&*-Ygx{+O7cQFwg=2g&En(WJtOHRRnu||T_l@f zz)sGCIS*!ud(Q5gSk9AOXWBU|rGigGN+x5q7ZNmmwdhl%xy~LM&T1DlkEa|=kr#+$ zI+?k=Bu}K0)kH|1Os-fXPoZR;9EB&2_A^f>cU4J_=frIWW8G$Oo!bo7B+qxAoqcp+`AFT(fq&1U^q2S-b`4z-+A74w(Juv^&5w zv5$9ly&M2vKalo9mTn*&=y%8#U5~7eJ9SMpl+plHCHG?qvF2rQJoCjYsFyr}eZ~Dm z_ilKPnhSVMg((^b^ZVqa084qs1wBC>SUgJIY8=jymq z$F4Q(t%O*^{X*uexG!Q~abFBy&;5L4>9`MQvAVLCSqGl_tUd6g&Y8EV`I)3AIheIG zu#^eOpdb?SL?#ZFVg)P(6PEr8OM+GodklbTo*M_o)fHfT#{{FiN;HG9n*YSX@`DOk zu8W36GeW4hUK}j9RKT*qgyqokrlP4BHB!d`v#A1@J0pV8)QlQG;()og0+^qgz#Q4? z>@p=X&@7a=5Jf>H`<$SlN^LeM6<3wKd^@n|!>a6aQYioS0<7&fN z)M5Q)6s*56VIAbv>%3H^Q&X4M#i+~cb@-l-g74XA_%!tw2VY5t@3&F#y%r7M_@42N zgYOORfqh;c&CmKX;kmVk8_M@GSTVnmD+Yr}}eX&uH%Q7}%3 zh;dSF7_n@w!#FDn#+eZ@eyui)Lkt*OqF`JQ5#!|AFk-7gSC8M0g7K1w7|*B;BQ`;F z7&B2YrcD?R3k~37YXgb>86C(gqkvp#0(q1NazU1KCZv2h;QZ{a7_XeWb!e}Pf_7~+ zXf^MjIB4(Fp}j2%+FL54oo_8mR;=5{V$|(U9ol=Mpxs;zT20-?LAzUr_GeMhK4d@} z+NdnsVw5LPPmw3VSTIXru7J4`=6aYLV15L%8Rij~Z7|Qk{0inxn7uHc!h8lZ6ceUl zFk@iG!kh~;mrQWaw;WJAF6n^Dz+_=oz^sJ%KFqZ+H^STmvk~SFn7d)_fq4MtL6}Ej zw!`d(c^c-wVP1xL8|EFDk6``?(;JoD2WBwL5SU|Oj)NHuGX`cV%-3P&!ZgDyg83HA zQkZ2h1(+htcVWHN1{&hw51r@U(Q>F(v78&w84EAZ5s>P zPF_q~#}jEAc{Ob}kE2cRF|=tu`6l}-s(^y~Im!F#?%kcdi7jlk58lYZB17Bh`_x8v z1CDm_M!49hcE(vlu!VNs3u4DjB(`u1cK51U@sd1ZVIe2i(u#mc_;|h1(8a z!tI2c92-8zh9B-9@*Ui4{CoK@R6N7rqTpFnD~&m8c`}F1Ub`>t3>R|QG^+`lng=!? z(%g^!_HQ0QUjODp@z1h*=L=Rh?+uHAjxO#nG1&2jio+dmxH#JJj$1_`84-}Wj&M~} z)B-gESZa~}Sx^2-ZPh>PXU(~vj_$KeYU$`IsSUFi)NoSY_3!lroYa5( zv(3?{#j42NkfHy_F#!M-H{O1}oH6Kax-$}gfiktV6I{35CoXwtjPFTzu2(hI;p zTb(kKlwp1m)u}Q`SmqZ|og$N7+kO!TQI1KkeZSm;sKq4xoL{aZ#QeY+Ha`-diqAad zr1(==VLa(T1ht_GYcQD zuZVQ>c?RR(&xiO=4{ko@BZ2$*FqqF;NdJCM8tLATSxn%5J`CQ^ib(%{J`Cn#?i0A5 z4+Hr{c{E*sm+uVu4hFZyazBzz`3aJOtfy)ct7H=rTMk3AULJ*HqdXqTW_b#dEpi-^ zt@2DHJLD`RyW~71&&yUMd*nq(_R0<<`(&CDHHW(t9#7=*@OU;?gvV35S1EZ;yfMZSsT zEcq4^AwNd4S`Mb-#5(z9B%9<&B-`aoJcAn0@#-mRs(2zDsHV*FH-0dGQ$|z3aR?mg z2cva%iy5o4S>~s_mTh#8b1~yn#+Dg+-mbg?(%{ z*U4MiSE|U{*jK8^+u2vD$c^yzThc#3R-3#CQM|;j%p{K2QeFs?+=O#WkjpsR$m9P? z5tj0)@6d2~5ZE~3LCbN&gVx}N2j!Gkw^6CM6_1=pFsaXBHQiAvKJ1o8qK$2;vHSTB-Z5r+Uop{p6T?ic^zdS@F?wV5^u`6~O)%3t)kN=89X-6|<3!Iiw5Wc_8n#Ho zOjx}*ThI9$0nT&TS5mHd@b#^C2C{Umm)A?f;jM+g>ZodHRbx{1{1b#)Gax0Ivy!s4 zv#$dj6LaY7PID%vtfjl6}ShD)@T-d1UGM^BU#B zKQH`;`Fj(iwJ|h|_s}C8uv!h{-6jaU z;}C}6&2HjAc%TA=`%Msd**FZroBhUtu&n}wM@$fS#XJnbn*_yy@QVr%cA6mY=1v%b z_a=`6;Xf)sc-jPk_Y%Soyx}+wgkM*H@S+Ik>l3<7&ENT;%xa}~O~`orrbcA-m<(xzk)K3C_OS^W@5+Rc;UhFgoniS# zhpca-H?*1StPfqJ9b$R=s77Q*8IXNB3bMf_WW0%0BeLTS$c~GG>=+X=-WLud!}3Cm zXkz_L7tPU8kezBm#{1MYBEx!~4%w6_$j&e!<2}+EkzsvNhwK|skj*wBl4D0tgWVb{?Rx%-Dg+qy{QTQcx?ux4SM+@b3KFRiANPttQpMJJ!4l=Mjf`5ZS3 zt^|%ZwuFNRq>fzY8cs&-jZ-%|g%kLTaXh*F(}d=YT%~ z_=VJr27HU&DgG}Cx*Qe6Al|6y$IutKfoUUnhbBa2A(%2i1A$!jT5QnTyeHDc0h!(*x0 z4e(fMb`w0*qx?H~EHx{^W2xCK@K|bg8$1w{8_5ew&HjhxcqBFZ1ClZFBP8SG$4Dm1 zPmoNOpCOqd|BU1;Sw{ts)a*-0R?AUH*2&Y5Y?3pOY?n(YsVFtWgZU#UqSOo_aJTG% z)>R|`t1C4FU{`7e)UMPF&|Rq+@YAN;!H}BWOGRn61Mg#`*bc0d_p^`fK>7|~UrEg# zWM4_m9%5ff&Hf3#e#>w(vJ6tQO_ZmkW*#QF4d<31=6o)u)C_@*6CSi2H#}$!Zg@~m zd3775X3yY}J*8&<>6S)vpXXF*I;q(%Wa)NPuRs-qKXlQ8;?P5Lcj+B~k|Q;HgRa&v zdDD#kH4}QR)C_Gt4tk7RE_%g8?S~(L3FKoOLx<9bdP;xflGWDt|H9X|-S?5D3yxN5 zhHe~(UNATqf~shHP5rbH8$hSIG-`W;;Opr%B1=b4D>aKt5ATE;qj!v+-f;nXBh2)M zo9OXpaky(?;H@@#cym+{y$O1HlLGW6o9T@;(bG!J;?l#5y~gOBtEbl-pm&~`-Z>_E zpXvriyei{F&os2CeyF5IQHGhY)GVRroD6VoXJ1KeEcp7)xfofx&Z(7})xuwOR5i4! zF{yg~mlJBuD`X{eR^#oJ>?{6P!PoQ8BTL7h*SNyH7t^DI5r5T_tLJ|+q1NzU&zu$i z4eTrax5C%+w~?jeua%nB!e4dugA@Os5NZwodzrK1e;@mb{{!&#{O?AVj=xrF=1q($ zs9MT?E^j+M!U3z5nmuZQpp}|=vzs^&o~!`j2@?cf!43BUj9Ax(*M$tcJYCS+QvSxjVD@6;j7 zL_wA|A=66DVj{!(s}9)}QIM@LA=66DVj{zOunyVUD9BcukZGl6F_B??T8C^y6lCj7 z$h1hRu0wWL6l8arkZGl6F_B^YUWe@dD9E;$kZGl6F_B?EL5J+;QIKsjA=66D zu%r;<9e}+T9kM5*AbZ?|Oe-~uiLBXx?7yNQd)|ahD>cJsc#Jy3)|9T!-iU(ibrUkJ z)GQ`4?3U?}?T>=&_XcDkso4)vSu8dCB|P3Zco`lq!oLTP*QHPlG(7%7d=VahsJ#x4zn9*H z$Db`9!sD-p&*AZGeE=$lXU9jtQ?pTcJo_6Dk7rxc;qmO|Ja{~tSPYNf-pkHDkXJ4>JJ1ii{k2HV zxJ7WI;daH1hT9)UibKO~fLkJGaOHDsIfPuZ++aADL&zRiFCTLF+3>~OLVSf9dwd56 z*e`{P=iB^qe8_7j=k+1$6ek^bQ?ew3|={td7^l^k6^`u_lx CWQ-C3 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_6/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_6/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..2b302616bc87ffedd6d72fb91fa5cae51eb2d50a GIT binary patch literal 10510 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 Celaxw literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_7/MCTS_data.pickle b/app/checkpoint/AppGraphSphere_7/MCTS_data.pickle new file mode 100644 index 0000000000000000000000000000000000000000..cee399f3f40525973acdcf5b4fa36ab61af0a052 GIT binary patch literal 48513 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_7/log-file.txt b/app/checkpoint/AppGraphSphere_7/log-file.txt new file mode 100644 index 00000000..3798acac --- /dev/null +++ b/app/checkpoint/AppGraphSphere_7/log-file.txt @@ -0,0 +1,18 @@ +MCTS Iteration: 0, Iteration time: 1.6669328212738037 +main_result: +rules: Init +control: +reward: 0 + +best_result: +rules: Init +control: +reward: 0 + +max number of non-terminal rules: 20 search parameter: 3 + +Number of unique mechanisms tested in current MCTS run: 3 +Number of states 3 + +---------------------------------- + diff --git a/app/checkpoint/AppGraphSphere_7/optimized_MCTS_state_report.pickle b/app/checkpoint/AppGraphSphere_7/optimized_MCTS_state_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..f40fa23235f2ca8bdbb848c84550b7d0eb117463 GIT binary patch literal 31108 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_7/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_7/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..88b2ee093695eada76df5c6ed47378e288b05658 GIT binary patch literal 7079 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 literal 0 HcmV?d00001 diff --git a/app/checkpoint/AppGraphSphere_8/optimized_graph_report.pickle b/app/checkpoint/AppGraphSphere_8/optimized_graph_report.pickle new file mode 100644 index 0000000000000000000000000000000000000000..791fed35fcdf2304361bb793b1b414ad9513f289 GIT binary patch literal 7457 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 literal 0 HcmV?d00001 diff --git a/app/hyperparameters.py b/app/hyperparameters.py index ec24962a..d99586e8 100644 --- a/app/hyperparameters.py +++ b/app/hyperparameters.py @@ -1,13 +1,8 @@ MAX_NUMBER_RULES = 10 -<<<<<<< Updated upstream -BASE_ITERATION_LIMIT = 20 -BASE_ITERATION_LIMIT_GRAPH = 4 -======= BASE_ITERATION_LIMIT = 30 BASE_ITERATION_LIMIT_GRAPH = 3 BASE_ITERATION_LIMIT_TENDON = 3 ->>>>>>> Stashed changes ITERATION_REDUCTION_TIME = 0.7 diff --git a/app/restore_optimization.py b/app/restore_optimization.py index e69de29b..44b47eb5 100644 --- a/app/restore_optimization.py +++ b/app/restore_optimization.py @@ -0,0 +1,64 @@ +import sys +import time +from pathlib import Path + +import hyperparameters as hp +import mcts +from mcts_run_setup import config_with_standard_graph + +from rostok.graph_generators.mcts_helper import (make_mcts_step, prepare_mcts_state_and_helper, CheckpointMCTS) +from rostok.graph_grammar.node import GraphGrammar +from rostok.library.obj_grasp.objects import get_object_parametrized_sphere, get_object_parametrized_tilt_ellipsoid +from rostok.library.rule_sets.ruleset_old_style_graph import create_rules + + +checkpointer = CheckpointMCTS(mcts_helper.report, "AppGraphSphere", rewrite=False) +start = time.time() +finish = False +n_steps = 0 +while not finish: + iteration_limit = base_iteration_limit - int(graph_env.counter_action / max_numbers_rules * + (base_iteration_limit * iteration_reduction_rate)) + searcher = mcts.mcts(iterationLimit=iteration_limit) + finish, graph_env = make_mcts_step(searcher, graph_env, n_steps, checkpointer) + n_steps += 1 + print(f"number iteration: {n_steps}, counter actions: {graph_env.counter_action} " + + f"reward: {mcts_helper.report.get_best_info()[1]}") +ex = time.time() - start +print(f"time :{ex}") +# saving results of the search +report = mcts_helper.report +path = report.make_time_dependent_path() +report.save() +report.save_visuals() +report.save_lists() +report.save_means() + +# additions to the file +with open(Path(path, "mcts_result.txt"), "a") as file: + original_stdout = sys.stdout + sys.stdout = file + print() + print("Object to grasp:", grasp_object_blueprint.shape) + print("Object initial coordinats:", grasp_object_blueprint.pos) + print("Time optimization:", ex) + print("MAX_NUMBER_RULES:", hp.MAX_NUMBER_RULES) + print("BASE_ITERATION_LIMIT:", hp.BASE_ITERATION_LIMIT) + print("ITERATION_REDUCTION_TIME:", hp.ITERATION_REDUCTION_TIME) + print("CRITERION_WEIGHTS:", + [hp.TIME_CRITERION_WEIGHT, hp.FORCE_CRITERION_WEIGHT, hp.OBJECT_COG_CRITERION_WEIGHT]) + print("CONTROL_OPTIMIZATION_ITERATION:", hp.CONTROL_OPTIMIZATION_ITERATION) + print("TIME_STEP_SIMULATION:", hp.TIME_STEP_SIMULATION) + print("TIME_SIMULATION:", hp.TIME_SIMULATION) + print("FLAG_TIME_NO_CONTACT:", hp.FLAG_TIME_NO_CONTACT) + print("FLAG_TIME_SLIPOUT:", hp.FLAG_TIME_SLIPOUT) + sys.stdout = original_stdout + +simulation_rewarder = control_optimizer.rewarder +simulation_manager = control_optimizer.simulation_scenario +# visualisation in the end of the search +best_graph, reward, best_control = mcts_helper.report.get_best_info() +data = {"initial_value": best_control} +simulation_output = simulation_manager.run_simulation(best_graph, data, True) +res = -simulation_rewarder.calculate_reward(simulation_output) +print("Best reward obtained in the MCTS search:", res) \ No newline at end of file diff --git a/rostok/graph_generators/mcts_helper.py b/rostok/graph_generators/mcts_helper.py index 34660b6f..da926597 100644 --- a/rostok/graph_generators/mcts_helper.py +++ b/rostok/graph_generators/mcts_helper.py @@ -5,10 +5,12 @@ from copy import deepcopy from pathlib import Path from statistics import mean - + import matplotlib.pyplot as plt import numpy as np +from rostok.block_builder_chrono.block_builder_chrono_api import \ + ChronoBlockCreatorInterface as creator from rostok.graph_generators.graph_environment import \ GraphVocabularyEnvironment from rostok.graph_grammar.graph_utils import (plot_graph_reward, save_graph_plot_reward) @@ -473,12 +475,22 @@ def dump_results(self, current_state): for instance_saveable in saveables: with open(Path(self.path, instance_saveable.file_name + '.pickle'), "wb+") as file: pickle.dump(instance_saveable, file) - - object_callback = current_state.optimizer.simulation_scenario.grasp_object_callback - current_state.optimizer.simulation_scenario.grasp_object_callback = None - with open(os.path.join(self.path, "state.pickle"), "wb") as file: - pickle.dump(current_state, file) - current_state.optimizer.simulation_scenario.grasp_object_callback = object_callback + + sim_scenario = current_state.optimizer.simulation_scenario + if isinstance(sim_scenario, list): + object_callback = [] + for scene in sim_scenario: + object_callback.append(scene.grasp_object_callback) + scene.grasp_object_callback = None + with open(os.path.join(self.path, "state.pickle"), "wb") as file: + pickle.dump(current_state, file) + for scene, callback_obj in zip(sim_scenario, object_callback): + scene.grasp_object_callback = callback_obj + else: + object_callback = sim_scenario.grasp_object_callback + with open(os.path.join(self.path, "state.pickle"), "wb") as file: + pickle.dump(current_state, file) + sim_scenario.grasp_object_callback = object_callback def save(self, current_state): """Save all information in the object but not object itself.""" @@ -525,7 +537,12 @@ def prepare_folders_n_files(self, folder_name, rewrite, loggging=False): self.path = folder_path @classmethod - def restore_optimization(cls, folder_with_checkpoint, checkpoint_iter): + def restore_optimization(cls, folder_with_checkpoint, checkpoint_iter, grasp_object_blueprint): + if isinstance(grasp_object_blueprint,list): + grasp_object_callback = [(lambda obj=obj: creator.create_environment_body(obj)) for obj in grasp_object_blueprint] + else: + grasp_object_callback = lambda: creator.create_environment_body(grasp_object_blueprint) + path_to_checkpoint = os.path.join("./","app/","checkpoint/", folder_with_checkpoint) if os.path.exists(path_to_checkpoint): @@ -540,7 +557,9 @@ def restore_optimization(cls, folder_with_checkpoint, checkpoint_iter): path_last_mcts_state = os.path.join(path_to_checkpoint, "state.pickle") last_mcts_state = load_saveable(path_last_mcts_state) + + else: print("Couldn't find dirictory with previous checkpoint") - return last_mcts_state, self.mcts_saveable, seen_graphs, seen_mcts_states + return last_mcts_state, mcts_saveable, seen_graphs, seen_mcts_states