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

Claim 12:
13. A non-transitory computer program product for accelerating a particle swarm optimization for finding optimal parameters of an application, the non-transitory computer program product comprising: a non-transitory computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising a computer usable program code to:
1. Generate, via at least one processor, an initial best solution for a parameterized function as a seed particle;
2. Pass, via said at least one processor, said seed particle into said parameterized function;
a. Embed, via said at least one processor, 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 said at least one processor, 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 said at least one processor, all best particle solutions at each branch level within a set;
ii. Calculating, via said at least one processor, the similarity of current solution to all solutions stored within said set;
iii. Optimizing, via said at least one processor, based on minimizing similarity to all solutions within said set;

c. Beginning, via said at least one processor, particle swarm optimization with a set maximum number of iterations, M;
i. Resetting, via said at least one processor, 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 said at least one processor, steps 2a-2c, K times;
e. Selecting, via said at least one processor, 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 said at least one processor, the current best solution particle;
ii. Storing, via said at least one processor, 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 said at least one processor, the function with the current best solution particle as a new seed particle, then repeating step 2 recursively;

g. Determining, via said at least one processor, 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 said at least one processor, 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.