HTTPS SSH
This directory contains all the necessary files for running the differential
grouping algorithm for the CEC'2010 benchmark suite and analyze its
output. This program is based on the following research paper:

-----------
References:
-----------
Omidvar, M.N.; Li, X.; Mei, Y.; Yao, X., "Cooperative Co-evolution with
Differential Grouping for Large Scale Optimization," Evolutionary Computation,
IEEE Transactions on, vol.PP, no.99, pp.1,1, 0
http://dx.doi.org/10.1109/TEVC.2013.2281543

----------------------
Files and directories:
----------------------
 - analyze.m : this function can be used to analyze the output of differential
               grouping. It's output contains information about number of
               non-separable groups, number of separable variables a sample
               output of this program is shown and explained in later parts
               of this README file.
               
               USAGE: analyze([1:1:20]);

 - cec2010 : this directory contains the CEC'2010 benchmark suite.
 - dg.m    : the differential grouping algorithm.
 - README  : this readme file.
 - results : the output of differential grouping is saved in this directory.
 - run.m   : this file should be executed to start the differential grouping
             algorithm.

----------------------------------
Sample output of analyze function:
----------------------------------

=========================================================================================================================
Function F: 04
FEs used: 14546
Number of separables variables: 34
Number of non-separables groups: 9
Permutation Groups|     P1   P2   P3   P4   P5   P6   P7   P8   P9  P10  P11  P12  P13  P14  P15  P16  P17  P18  P19  P20
-------------------------------------------------------------------------------------------------------------------------
Size of G01: 145  |      0    8    9    9    4    9    7    8    9    6   10    7    6   14    7    7   12    4    5    4
Size of G02:  65  |      0    2    3    4    3    5    4    8    2    3    3    4    1    2    1    5    3    3    4    5
Size of G03: 176  |      0    9    8   13    9    7   12    7   13    9    7    6   11    6    6   13    6    9   12   13
Size of G04: 110  |      0    7    6    7    6    4    5    4    5    7    8    4   10    4    8    4    4    6    5    6
Size of G05: 275  |      0   16   14   14   16   14   15   13   16   15   12   20   16   12   13   13   13   16   12   15
Size of G06:  50  |     50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G07:  27  |      0    1    3    0    3    0    1    2    1    0    2    1    1    2    1    3    1    1    3    1
Size of G08:  90  |      0    6    3    2    4    8    2    6    3    5    5    6    3    5    7    3    7    5    5    5
Size of G09:  28  |      0    1    0    1    4    0    1    1    1    2    1    1    0    2    5    2    3    2    1    0
Number of non-separable variables correctly grouped: 50
=========================================================================================================================

This table shows how each group of non-separable variables which is
discovered by differential grouping is formed. The labels P1-P20 represent
the permutation groups which are defined in CEC'2010 and each group contains a
set of 50 randomly chosen decision variables (their indices). Each row of the
table shows the size of the group which is formed by differential grouping,
and shows that the variables in each group belong to which permutation
group. For example G06 is the sixth group formed by differential grouping
and it contains 50 decision variables which belong to the first permutation
group (P1). Another example if G01 with 145 variables. The variables in
this group belong to multiple permutation groups for example 8 variables
belong to P2, 9 to P3 and P4, 4 to P5 and so forth. Since F4 from CEC'2010
benchmarks contains only one non-separable group with 50 variables, the
output shows that this non-separable group is correctly identified as G06,
but the reason that eight more non-separable groups are formed is because
the algorithm mistakenly grouped some separable variables together as
non-separable variables.

An example of a perfect grouping is given below:

=========================================================================================================================
Function F: 09
FEs used: 270802
Number of separables variables: 500
Number of non-separables groups: 10
Permutation Groups|     P1   P2   P3   P4   P5   P6   P7   P8   P9  P10  P11  P12  P13  P14  P15  P16  P17  P18  P19  P20
-------------------------------------------------------------------------------------------------------------------------
Size of G01:  50  |      0    0    0    0    0    0   50    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G02:  50  |      0    0    0   50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G03:  50  |      0   50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G04:  50  |      0    0    0    0    0    0    0    0    0   50    0    0    0    0    0    0    0    0    0    0
Size of G05:  50  |      0    0    0    0   50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G06:  50  |      0    0    0    0    0   50    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G07:  50  |      0    0   50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G08:  50  |      0    0    0    0    0    0    0    0   50    0    0    0    0    0    0    0    0    0    0    0
Size of G09:  50  |     50    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
Size of G10:  50  |      0    0    0    0    0    0    0   50    0    0    0    0    0    0    0    0    0    0    0    0
Number of non-separable variables correctly grouped: 500
=========================================================================================================================


--------
License:
--------
This program is to be used under the terms of the GNU General Public License 
(http://www.gnu.org/copyleft/gpl.html).
Author: Mohammad Nabi Omidvar
e-mail: mn.omidvar AT gmail.com
Copyright notice: (c) 2013 Mohammad Nabi Omidvar