Social cognitive optimization  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. Let formula_1 be a global optimization problem, where formula_2 is a state in the problem space formula_3. In SCO, each state is called a "knowledge point", and the function formula_4 is the "goodness function". In SCO, there are a population of formula_5 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 formula_6 knowledge points. The algorithm runs in "T" iterative learning cycles. By running as a Markov chain process, the system behavior in the "t"th cycle only depends on the system status in the ("t" − 1)th cycle. The process flow is in follows:   SCO has three main parameters, i.e., the number of agents formula_5, the size of social sharing library formula_41, and the learning cycle formula_42. With the initialization process, the total number of knowledge points to be generated is formula_43, and is not related too much with formula_41 if formula_42 is large. Compared to traditional swarm algorithms, e.g. particle swarm optimization, SCO can achieving high-quality solutions as formula_5 is small, even as formula_47. Nevertheless, smaller formula_5 and formula_41 might lead to premature convergence. Some variants were proposed to guaranteed the global convergence. One can also make a hybrid optimization method using SCO combined with other optimizers. For example, SCO was hybridized with differential evolution to obtain better results than individual algorithms on a common set of benchmark problems .