Social Cognitive Optimization
   HOME

TheInfoList



OR:

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 Learning is the process of acquiring new understanding, knowledge, behaviors, skills, value (personal and cultural), values, attitudes, and preferences. The ability to learn is possessed by humans, animals, and some machine learning, machines ...
of a set of agents with their own
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
and their social learning with the knowledge points in the social sharing library. It has been used for solving
continuous optimization Continuous optimization is a branch of optimization in applied mathematics. As opposed to discrete optimization, the variables used in the objective function are required to be continuous variables—that is, to be chosen from a set of real ...
, integer programming, and combinatorial optimization problems. It has been incorporated into th
NLPSolver
extension of Calc in Apache OpenOffice.


Algorithm

Let f(x) be a global optimization problem, where x is a state in the problem space S. In SCO, each state is called a ''knowledge point'', and the function f is the ''goodness function''. In SCO, there are a population of 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 knowledge points. The algorithm runs in ''T'' iterative learning cycles. By running as a
Markov chain A Markov chain or Markov process is a stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event. Informally, this may be thought of as, "What happe ...
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: * . Initialization¼šInitialize the private knowledge point x_i in the memory of each agent i, and all knowledge points in the social sharing library X, normally at random in the problem space S. * . Learning cycle¼š At each cycle t (t = 1, \ldots, T): ** .1. Observational learningFor each agent i (i = 1, \ldots, N_c): *** .1.1. Model selection¼šFind a high-quality ''model point'' x_M in X(t) , normally realized using
tournament selection Tournament selection is a method of selecting an individual from a population of individuals in a genetic algorithm. Tournament selection involves running several "tournaments" among a few individuals (or "chromosomes") chosen at random from the po ...
, which returns the best knowledge point from randomly selected \tau_B points. *** .1.2. Quality Evaluation¼šCompare the private knowledge point x_i(t) and the model point x_M,and return the one with higher quality as the ''base point'' x_,and another as the ''reference point'' x_。 *** .1.3. Learning¼šCombine x_ and x_ to generate a new knowledge point x_(t+1). Normally x_(t+1) should be around x_,and the distance with x_ is related to the distance between x_ and x_, and boundary handling mechanism should be incorporated here to ensure that x_(t+1) \in S. *** .1.4. Knowledge sharing¼šShare a knowledge point, normally x_i(t+1), to the social sharing library X. *** .1.5. Individual update¼šUpdate the private knowledge of agent i, normally replace x_(t) by x_(t+1). Some Monte Carlo types might also be considered. ** .2. Library Maintenance¼šThe social sharing library using all knowledge points submitted by agents to update X(t) into X(t+1). A simple way is one by one tournament selection: for each knowledge point submitted by an agent, replace the worse one among \tau_W points randomly selected from X(t). * . Termination¼šReturn the best knowledge point found by the agents. SCO has three main parameters, i.e., the number of agents N_c, the size of social sharing library N_, and the learning cycle T. With the initialization process, the total number of knowledge points to be generated is N_+N_c*(T+1), and is not related too much with N_ if T is large. Compared to traditional swarm algorithms, e.g. particle swarm optimization, SCO can achieving high-quality solutions as N_c is small, even as N_c=1. Nevertheless, smaller N_c and N_ might lead to
premature convergence In evolutionary algorithms (EA), the term of premature convergence means that a population for an optimization problem converged too early, resulting in being suboptimal. In this context, the parental solutions, through the aid of genetic operators ...
. 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 In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics as ...
to obtain better results than individual algorithms on a common set of benchmark problems.


References

{{reflist, refs= 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.
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.
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. 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.
Sun, Jia-ze; Wang, Shu-yan; chen, Hao (2014)
A guaranteed global convergence social cognitive optimizer
''Mathematical Problems in Engineering'': Art. No. 534162.
Heuristic algorithms Optimization algorithms and methods Collective intelligence