Pruning a database using genetic algorithm
Abstract
A database manager segments data stored in a database into a plurality of data segments and randomly combines the data segments into a plurality of data chromosomes that form an initial generation of a genetic algorithm. The database manager then runs multiple iterations of the genetic algorithm on the initial generation, wherein each iteration forms a new generation of data chromosomes based on data segments having the highest optimization metrics from a previous generation, wherein the optimization metric of a data segment represents a degree of importance of the data segment. When the genetic algorithm converges a fitness score is calculated for each data segment, wherein the fitness score of a data segment equals a number of iterations of the genetic algorithm the data segment survived before the genetic algorithm was terminated. Data is deleted from the database based on the fitness scores of the data segments.
Claims
exact text as granted — not AI-modified1 . A system comprising:
a database that stores data; and at least one processor communicatively coupled to the database and configured to:
randomly segment the data into a plurality of data segments, wherein each data segment represents a data gene for a genetic algorithm, wherein the genetic algorithm simulates natural selection;
randomly combine the data segments into a plurality of data chromosomes, wherein:
each data chromosome includes a plurality of data segments; and
the plurality of data chromosomes represents an initial generation for the genetic algorithm;
determine an optimization metric for each data segment of the plurality of data chromosomes in the initial generation, wherein the optimization metric of a data segment indicates to what degree the data segment satisfies an optimization criteria;
perform at least one iteration of the genetic algorithm comprising:
selecting one or more data segments having the highest optimization metrics from data chromosomes of a previous generation;
generating, based on the selected one or more data segments, a new set of data chromosomes using one or more of a cross-over operator and a mutation operator, wherein the new set of data chromosomes represents a next generation; and
determining the optimization metric for each data segment of the data chromosomes from the next generation, wherein the next generation is the previous generation for the next iteration of the genetic algorithm;
detect that the genetic algorithm has converged; determine a fitness score of each data segment from the initial generation, wherein the fitness score of the data segment is a number of iterations of the genetic algorithm the data segment was not eliminated; and delete from the database one or more data segments included in the initial generation based on the fitness scores of the data segments.
2 . The system of claim 1 , wherein the at least one processor is further configured to:
for each of one or more data segments stored in the database:
obtain the fitness score of the data segment;
determine whether the fitness score of the data segment equals or is below a threshold fitness score;
when the fitness score equals or is below the threshold fitness score:
determine whether the data segment is needed to for at least one processing step of at least one software application;
upon determining that the data segment is needed for the at least one processing step:
determine a degree of impact associated with deleting the data segment; and
delete the data segment when the degree of impact equals or is below a impact threshold; and
delete the data segment upon determining that the data segment is not needed for any processing step of any software application.
3 . The system of claim 2 , wherein the at least one processor is further configured to:
in response to determining that the degree of impact equals or is below the impact threshold, request approval for deleting the data segment; receive the approval for deleting the data segment; and delete the data segment in response to receiving the approval.
4 . The system of claim 2 , wherein the at least one processor is further configured to:
in response to determining the degree of impact exceeds the impact threshold, request increase in storage space for the database to continue storing the data segment.
5 . The system of claim 1 , wherein the at least one processor is further configured to:
for each of one or more data segments stored in the database:
obtain the fitness score of the data segment;
determine whether the fitness score of the data segment equals or is below a threshold fitness score; and
delete the data segment when the fitness score equals or is below the threshold fitness score.
6 . The system of claim 1 , wherein the optimization criteria comprises a plurality of parameters that indicate an importance of the data segments.
7 . The system of claim 1 , wherein the at least one processor is further configured to:
detect that a difference between data segments of two consecutive generations of the genetic algorithm equals or is below a threshold difference; and in response, determine that the genetic algorithm has converged.
8 . The system of claim 1 , wherein the at least one processor is configured to generate the new set of data chromosomes using the cross-over operator by replacing one or more data segments from at least one data chromosome of the previous generation with the one or more selected data segments having the highest optimization metrics from data chromosomes of the previous generation.
9 . The system of claim 1 , wherein the at least one processor is configured to generate the new set of data chromosomes using the mutation operation by:
randomly selecting one or more data segments from the initial generation or the previous generation; and replacing one or more data segments from at least one data chromosome of the previous generation with the one or more randomly selected data segments.
10 . A method for managing data stored in a database, comprising:
randomly segmenting the data into a plurality of data segments, wherein each data segment represents a data gene for a genetic algorithm, wherein the genetic algorithm simulates natural selection; randomly combining the data segments into a plurality of data chromosomes, wherein:
each data chromosome includes a plurality of data segments; and
the plurality of data chromosomes represents an initial generation for the genetic algorithm;
determining an optimization metric for each data segment of the plurality of data chromosomes in the initial generation, wherein the optimization metric of a data segment indicates to what degree the data segment satisfies an optimization criteria; performing at least one iteration of the genetic algorithm comprising:
selecting one or more data segments having the highest optimization metrics from data chromosomes of a previous generation;
generating, based on the selected one or more data segments, a new set of data chromosomes using one or more of a cross-over operator and a mutation operator, wherein the new set of data chromosomes represents a next generation; and
determining the optimization metric for each data segment of the data chromosomes from the next generation, wherein the next generation is the previous generation for the next iteration of the genetic algorithm;
detecting that the genetic algorithm has converged; determining a fitness score of each data segment from the initial generation, wherein the fitness score of the data segment is a number of iterations of the genetic algorithm the data segment was not eliminated; and deleting from the database one or more data segments included in the initial generation based on the fitness scores of the data segments.
11 . The method of claim 10 , further comprising:
for each of one or more data segments stored in the database:
obtaining the fitness score of the data segment;
determining whether the fitness score of the data segment equals or is below a threshold fitness score;
when the fitness score equals or is below the threshold fitness score:
determining whether the data segment is needed to for at least one processing step of at least one software application;
upon determining that the data segment is needed for the at least one processing step:
determining a degree of impact associated with deleting the data segment; and
deleting the data segment when the degree of impact equals or is below a impact threshold; and
deleting the data segment upon determining that the data segment is not needed for any processing step of any software application.
12 . The method of claim 11 , further comprising:
in response to determining that the degree of impact equals or is below the impact threshold, requesting approval for deleting the data segment; receiving the approval for deleting the data segment; and deleting the data segment in response to receiving the approval.
13 . The method of claim 11 , further comprising:
in response to determining the degree of impact exceeds the impact threshold, requesting increase in storage space for the database to continue storing the data segment.
14 . The system of claim 10 , further comprising:
for each of one or more data segments stored in the database:
obtaining the fitness score of the data segment;
determining whether the fitness score of the data segment equals or is below a threshold fitness score; and
deleting the data segment when the fitness score equals or is below the threshold fitness score.
15 . The system of claim 10 , wherein the optimization criteria comprises a plurality of parameters that indicate an importance of the data segments.
16 . A computer-readable medium for managing data stored in a database, wherein the computer-readable medium stores instructions which when executed by a processor perform a method comprising:
randomly segmenting the data into a plurality of data segments, wherein each data segment represents a data gene for a genetic algorithm, wherein the genetic algorithm simulates natural selection; randomly combining the data segments into a plurality of data chromosomes, wherein:
each data chromosome includes a plurality of data segments; and
the plurality of data chromosomes represents an initial generation for the genetic algorithm;
determining an optimization metric for each data segment of the plurality of data chromosomes in the initial generation, wherein the optimization metric of a data segment indicates to what degree the data segment satisfies an optimization criteria; performing at least one iteration of the genetic algorithm comprising:
selecting one or more data segments having the highest optimization metrics from data chromosomes of a previous generation;
generating, based on the selected one or more data segments, a new set of data chromosomes using one or more of a cross-over operator and a mutation operator, wherein the new set of data chromosomes represents a next generation; and
determining the optimization metric for each data segment of the data chromosomes from the next generation, wherein the next generation is the previous generation for the next iteration of the genetic algorithm;
detecting that the genetic algorithm has converged; determining a fitness score of each data segment from the initial generation, wherein the fitness score of the data segment is a number of iterations of the genetic algorithm the data segment was not eliminated; and deleting from the database one or more data segments included in the initial generation based on the fitness scores of the data segments.
17 . The computer-readable medium of claim 16 , further comprising instructions for:
for each of one or more data segments stored in the database:
obtaining the fitness score of the data segment;
determining whether the fitness score of the data segment equals or is below a threshold fitness score;
when the fitness score equals or is below the threshold fitness score:
determining whether the data segment is needed to for at least one processing step of at least one software application;
upon determining that the data segment is needed for the at least one processing step:
determining a degree of impact associated with deleting the data segment; and
deleting the data segment when the degree of impact equals or is below a impact threshold; and
deleting the data segment upon determining that the data segment is not needed for any processing step of any software application.
18 . The computer-readable medium of claim 17 , further comprising instructions for:
in response to determining that the degree of impact equals or is below the impact threshold, requesting approval for deleting the data segment; receiving the approval for deleting the data segment; and deleting the data segment in response to receiving the approval.
19 . The computer-readable medium of claim 17 , further comprising instructions for:
in response to determining the degree of impact exceeds the impact threshold, requesting increase in storage space for the database to continue storing the data segment.
20 . The computer-readable medium of claim 16 , further comprising instructions for:
for each of one or more data segments stored in the database:
obtaining the fitness score of the data segment;
determining whether the fitness score of the data segment equals or is below a threshold fitness score; and
deleting the data segment when the fitness score equals or is below the threshold fitness score.Join the waitlist — get patent alerts
Track US2023385251A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.