Social:Social cognitive optimization

From HandWiki
Revision as of 12:48, 23 October 2022 by Rtexter1 (talk | contribs) (fixing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Social cognitive optimization (SCO) is a population-based metaheuristic optimization algorithm which was developed in 2002.[1] 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,[2][3] integer programming,[4] and combinatorial optimization problems. It has been incorporated into the NLPSolver extension of Calc in Apache OpenOffice.

Algorithm

Let [math]\displaystyle{ f(x) }[/math] be a global optimization problem, where [math]\displaystyle{ x }[/math] is a state in the problem space [math]\displaystyle{ S }[/math]. In SCO, each state is called a knowledge point, and the function [math]\displaystyle{ f }[/math] is the goodness function.

In SCO, there are a population of [math]\displaystyle{ N_c }[/math] 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 [math]\displaystyle{ N_L }[/math] 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:

  • [1. Initialization]:Initialize the private knowledge point [math]\displaystyle{ x_i }[/math] in the memory of each agent [math]\displaystyle{ i }[/math], and all knowledge points in the social sharing library [math]\displaystyle{ X }[/math], normally at random in the problem space [math]\displaystyle{ S }[/math].
  • [2. Learning cycle]: At each cycle [math]\displaystyle{ t }[/math] [math]\displaystyle{ (t = 1, \ldots, T) }[/math]
    • [2.1. Observational learning] For each agent [math]\displaystyle{ i }[/math] [math]\displaystyle{ (i = 1, \ldots, N_c) }[/math]
      • [2.1.1. Model selection]:Find a high-quality model point [math]\displaystyle{ x_M }[/math] in [math]\displaystyle{ X(t) }[/math] , normally realized using tournament selection, which returns the best knowledge point from randomly selected [math]\displaystyle{ \tau_B }[/math] points.
      • [2.1.2. Quality Evaluation]:Compare the private knowledge point [math]\displaystyle{ x_i(t) }[/math] and the model point [math]\displaystyle{ x_M }[/math],and return the one with higher quality as the base point [math]\displaystyle{ x_{Base} }[/math],and another as the reference point [math]\displaystyle{ x_{Ref} }[/math]
      • [2.1.3. Learning]:Combine [math]\displaystyle{ x_{Base} }[/math] and [math]\displaystyle{ x_{Ref} }[/math] to generate a new knowledge point [math]\displaystyle{ x_{i}(t+1) }[/math]. Normally [math]\displaystyle{ x_{i}(t+1) }[/math] should be around [math]\displaystyle{ x_{Base} }[/math],and the distance with [math]\displaystyle{ x_{Base} }[/math] is related to the distance between [math]\displaystyle{ x_{Ref} }[/math] and [math]\displaystyle{ x_{Base} }[/math], and boundary handling mechanism should be incorporated here to ensure that [math]\displaystyle{ x_{i}(t+1) \in S }[/math].
      • [2.1.4. Knowledge sharing]:Share a knowledge point, normally [math]\displaystyle{ x_i(t+1) }[/math], to the social sharing library [math]\displaystyle{ X }[/math].
      • [2.1.5. Individual update]:Update the private knowledge of agent [math]\displaystyle{ i }[/math], normally replace [math]\displaystyle{ x_{i}(t) }[/math] by [math]\displaystyle{ x_{i}(t+1) }[/math]. Some Monte Carlo types might also be considered.
    • [2.2. Library Maintenance]:The social sharing library using all knowledge points submitted by agents to update [math]\displaystyle{ X(t) }[/math] into [math]\displaystyle{ X(t+1) }[/math]. A simple way is one by one tournament selection: for each knowledge point submitted by an agent, replace the worse one among [math]\displaystyle{ \tau_W }[/math] points randomly selected from [math]\displaystyle{ X(t) }[/math].
  • [3. Termination]:Return the best knowledge point found by the agents.

SCO has three main parameters, i.e., the number of agents [math]\displaystyle{ N_c }[/math], the size of social sharing library [math]\displaystyle{ N_{L} }[/math], and the learning cycle [math]\displaystyle{ T }[/math]. With the initialization process, the total number of knowledge points to be generated is [math]\displaystyle{ N_{L}+N_c*(T+1) }[/math], and is not related too much with [math]\displaystyle{ N_{L} }[/math] if [math]\displaystyle{ T }[/math] is large.

Compared to traditional swarm algorithms, e.g. particle swarm optimization, SCO can achieving high-quality solutions as [math]\displaystyle{ N_c }[/math] is small, even as [math]\displaystyle{ N_c=1 }[/math]. Nevertheless, smaller [math]\displaystyle{ N_c }[/math] and [math]\displaystyle{ N_{L} }[/math] might lead to premature convergence. Some variants [5] 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.[6]

References

  1. Xie, Xiao-Feng; Zhang, Wen-Jun; Yang, Zhi-Lian (2002). Social cognitive optimization for nonlinear programming problems. International Conference on Machine Learning and Cybernetics (ICMLC), Beijing, China: 779-783.
  2. Xie, Xiao-Feng; Zhang, Wen-Jun (2004). Solving engineering design problems by social cognitive optimization. Genetic and Evolutionary Computation Conference (GECCO), Seattle, WA, USA: 261-262.
  3. Xu, Gang-Gang; Han, Luo-Cheng; Yu, Ming-Long; Zhang, Ai-Lan (2011). Reactive power optimization based on improved social cognitive optimization algorithm. International Conference on Mechatronic Science, Electric Engineering and Computer (MEC), Jilin, China: 97-100.
  4. Fan, Caixia (2010). Solving integer programming based on maximum entropy social cognitive optimization algorithm. International Conference on Information Technology and Scientific Management (ICITSM), Tianjing, China: 795-798.
  5. Sun, Jia-ze; Wang, Shu-yan; chen, Hao (2014). A guaranteed global convergence social cognitive optimizer. Mathematical Problems in Engineering: Art. No. 534162.
  6. Xie, Xiao-Feng; Liu, J.; Wang, Zun-Jing (2014). "A cooperative group optimization system". Soft Computing 18 (3): 469–495. doi:10.1007/s00500-013-1069-8.