diff --git a/src/database/matplotlib_graph.py b/src/database/matplotlib_graph.py index c24ad90..19ee8ce 100644 --- a/src/database/matplotlib_graph.py +++ b/src/database/matplotlib_graph.py @@ -101,4 +101,4 @@ class Matplotlib_Graph: if value_input in self.type_of_graph_dict.keys(): self._type_of_graph = self.type_of_graph_dict[value_input] else: - self._type_of_plot = value_input + self._type_of_graph = value_input diff --git a/src/database/sql_database.py b/src/database/sql_database.py index 44abfbd..89ed4c5 100644 --- a/src/database/sql_database.py +++ b/src/database/sql_database.py @@ -202,8 +202,10 @@ class SQL_Database: """Show a summerization of the past runs that the user has done.""" query_data = self.query_all(f"SELECT id,generation_goal,chromosome_length FROM config;") + print(query_data) + def get_most_recent_config_id(self): """Function to get the most recent config_id from the database.""" @@ -211,50 +213,53 @@ class SQL_Database: return query_data - def get_generation_total_fitness(self,config_id = None): - """Get each generations total fitness sum from the database """ + def default_config_id(method): + """Decorator used to set the default config_id""" + def new_method(self, config_id = None): + input_id = self.config_id if config_id is None else config_id + return method(self, input_id) + return new_method - if config_id == None: config_id = self.config_id + + @default_config_id + def get_generation_total_fitness(self,config_id): + """Get each generations total fitness sum from the database """ query_data = self.query_all(f"SELECT SUM(fitness) FROM data WHERE config_id={config_id} GROUP BY generation;") - # Format the fitness data into one list - formated_query_data = [i[0] for i in query_data] - - return formated_query_data + return self.formated_query_data(query_data); - def get_total_generations(self,config_id = None): + @default_config_id + def get_total_generations(self,config_id): """Get the total generations from the database""" - if config_id == None: config_id = self.config_id - query_data = self.query_one_item(f"SELECT COUNT(DISTINCT generation) FROM data WHERE config_id={config_id};") return query_data - def get_highest_chromosome(self,config_id = None): + @default_config_id + def get_highest_chromosome(self,config_id): """Get the highest fitness of each generation""" - if config_id == None: config_id = self.config_id - query_data = self.query_all(f"SELECT fitness, max(fitness) FROM data WHERE config_id={config_id} GROUP by generation;") - # Format the fitness data into one list - formated_query_data = [i[0] for i in query_data] - - return formated_query_data; + return self.formated_query_data(query_data); - def get_lowest_chromosome(self,config_id = None): + @default_config_id + def get_lowest_chromosome(self,config_id): """Get the lowest fitness of each generation""" - if config_id == None: config_id = self.config_id - query_data = self.query_all(f"SELECT fitness, min(fitness) FROM data WHERE config_id={config_id} GROUP by generation;") - # Format the fitness data into one list + return self.formated_query_data(query_data); + + + def formated_query_data(self,query_data): + """Format the query data so its in a proper list""" + formated_query_data = [i[0] for i in query_data] return formated_query_data; diff --git a/src/run.py b/src/run.py index d1552cd..4d5db11 100644 --- a/src/run.py +++ b/src/run.py @@ -6,8 +6,6 @@ ga = EasyGA.GA() ga.evolve() -ga.database.past_runs() - -ga.graph.highest_value_chromosome(1) # Change this so it doesn't make its own figure or show +ga.graph.highest_value_chromosome() ga.graph.show()