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

Claim 11:
12. An apparatus comprising: a processor; and a computer readable storage medium having computer usable program code embodied therewith, the computer usable program code executable by the processor to cause the apparatus to accelerate a particle swarm optimization for finding optimal parameters of an application, the program code including:
1. Program code to generate, via the processor, an initial best solution for a parameterized function as a seed particle;
2. Program code to pass, via the processor, said seed particle into said parameterized function;
a. Program code to embed, via the 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. Program code to set, via the 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. Program code to store, via the processor, all best particle solutions at each branch level within a set;
ii. Program code to calculate, via the processor, the similarity of current solution to all solutions stored within said set;
iii. Program code to optimize, via the processor, based on minimizing similarity to all solutions within said set;

c. Program code to begin, via the processor, particle swarm optimization with a set maximum number of iterations, M;
i. Program code to reset, via the processor, iteration count whenever a new optimum is found;
ii. Program code to exit 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. Program code to repeat, via the processor, steps 2a-2c, K times;
e. Program code to select, via the processor, a best particle from a set of K particles, where K may be a function of hierarchy depth;
f. Program code to determine, via the processor, whether 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 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,
i. Program code to store, via the processor, the current best solution particle;
ii. Program code to storing, via the 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. Program code to recurse, via the processor, the function with the current best solution particle as a new seed particle, then repeat step 2 recursively;

g. Program code to determine, via the 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; program code to repeat via the 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.