Patent ID: 11861275
Assignee: MORGAN STATE UNIVERSITY
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 10:
11. A method for accelerating a particle swarm optimization for finding optimal parameters of an application, the method comprising:
1. Generating, via one or more processors, an initial best solution for a parameterized function as a seed particle;
2. Passing, via the one or more processors, said seed particle into said parameterized function;
a. Embedding, via the one or more processors, said seed particle (for current invocation of function) as one particle in a collection of randomly initialized particles;
i. Where randomization of initial particles is optionally based on proximity to the seed particle;

b. Setting, via the one or more processors, a cost function to be used at a current branch level, where the cost function may remain constant across all branches or set to weight one or more terms as a function of a branch level;
i. Storing, via the one or more processors, all best particle solutions at each branch level within a set;
ii. Calculating, via the one or more processors, the similarity of current solution to all solutions stored within said set;
iii. Optimizing, via the one or more processors, based on minimizing similarity to all solutions within said set;

c. Beginning, via the one or more processors, particle swarm optimization with a set maximum number of iterations, M;
i. Resetting, via the one or more processors, iteration count whenever a new optimum is found;
ii. Exiting the optimization loop when n % of M iterations has occurred (accounting for the fact that the iteration counter resets on each new optimum found);

d. Repeating, via the one or more processors, steps 2a-2c, K times;
e. Selecting, via the one or more processors, a best particle from a set of K particles, where K may be a function of hierarchy depth;
f. If the best solution particle is different from the seed particle and the solution particle is not too close to one or more of the previously generated best solution particles across all branches; then
i. Storing, via the one or more processors, the current best solution particle;
ii. Storing, via the one or more processors, a current solution score as a best branch solution if the current solution score is better than previous scores at a same branch level;
iii. Recursing, via the one or more processors, the function with the current best solution particle as a new seed particle, then repeat step 2 recursively;

g. Determining, via the one or more processors, whether no improvement on the best solution particle was found or duplicates the best solution found,
i. If no improvement on the best solution particle was determined or duplicates the best solution found; Repeating, via the one or more processors, step 2e recursively with the initial seed particle provided at current invocation (repeat K times); and

h. implementing the best solution particle to the application.