Social cognitive optimization (SCO) is a population-based metaheuristic optimization algorithm which was developed in 2002. This algorithm is based on the social cognitive theory, and the key point of the ergodicity is the process of individual learning of a set of agents with their own memory and their social learning with the knowledge points in the social sharing library. It has been used for solving continuous optimization, integer programming, and combinatorial optimization problems. It has been incorporated into the NLPSolver extension of Calc in Apache OpenOffice.
Algorithm Let f ( x ) {\displaystyle f(x)} be a global optimization problem, where x {\displaystyle x} is a state in the problem space S {\displaystyle S} . In SCO, each state is called a knowledge point, and the function f {\displaystyle f} is the goodness function. In SCO, there are a population of N c {\displaystyle N_{c}} cognitive agents solving in parallel, with a social sharing library. Each agent holds a private memory containing one knowledge point, and the social sharing library contains a set of N L {\displaystyle N_{L}} knowledge points. The algorithm runs in T iterative learning cycles. By running as a Markov chain process, the system behavior in the tth cycle only depends on the system status in the (t − 1)th cycle. The process flow is in follows:
… excerpt ends here. Continue reading the full article.
