<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Hybrid genetic algorithm for the maximum clique problem combining sharing and migration</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. The Maximum Clique Problem</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>B. Need For Improved Technique For Huge Networks</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Roger Ouch</institution>
          ,
          <addr-line>Kristopher W. Reese, Roman V. Yampolskiy Computer Engineering and Computer Science</addr-line>
          ,
          <institution>University of Louisville Louisville</institution>
          ,
          <addr-line>Kentucky 40292</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Maximum Clique Problem (MCP) has been studied for decades and is well known in graph theory as a problem that is difficult as it as it is known to be NP-complete. The MCP has a vast domain of application such as finance, biochemistry, bioinformatics, and many more. Many niching methods have been successfully applied in Genetic Algorithms (GA) to diversify the population and avoid getting trapped within local optima. In this paper, we propose an approach using the Sharing method and a Hybrid Genetic Algorithm (HGA) for the maximum clique problem. We also propose a non-evolutionary approach using a migration mechanism to boost the current HGA.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Over the last few years, the size of networks has increased
rapidly and the amount of information from massive data
sets has become a highly researched computational
challenge.</p>
      <p>Some examples of fast growing networks exist in social
networks and bioinformatics. The use of traditional
methods for analyzing and treating the large amounts of
information has become problematic. The nature of the
MCP (NP-complete) explains why is it more complicated
to find the maximum clique when the number of vertice N
Copyright retained by the authors.
increases dramatically. Traditional heuristic approaches for
finding the maximum clique problem have become
insufficient for this new challenge.</p>
      <p>
        Cheng et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] investigated finding the maximal clique
within massive networks. They introduced the concept of
an H* graph where the maximum clique is computed in a
small part of a large graph recursively one at a time using
external memory. Their experiments were done on large
graph with 10 million vertices and 80 millions edges.
      </p>
    </sec>
    <sec id="sec-2">
      <title>C. Description of Genetic Algorithms</title>
      <p>
        A well-known metaheuristic in evolutionary algorithms is
the genetic algorithm. The earliest work related to GAs
dates back to 1954 when Nils and Barricelli published a
paper on computer simulation of evolution [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Genetic
algorithms have been formalized in later years and date
back as early as 1975 when J.H Holland published his
papers on the subject [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>A GA is a combinatorial optimization technique that
mimics the process of natural evolution. The algorithm
does not rely on building the final solution based on local
search, which distinguishes itself from traditional
approaches. A subset of feasible solutions of a problem is
encoded in chromosomes that represent individuals in a
population. The evolutionary process is then applied
through population selection, crossover, and mutation
operations. Each individual is then evaluated using a fitness
function and the best of the individuals are transmitted into
the next generation. The following procedure shows a basic
genetic algorithm:
GA procedure(){</p>
      <p>Initialize population();
Evaluate population();
While not (End_Condition){</p>
      <p>Select parent();
Crossover();
Mutation();</p>
      <p>Evaluate population();
}
}
score of individual in populated landscapes. This technique
is known as one of the best niching technique to escape
from local optima.</p>
      <p>In this paper, we implemented the sharing method, as we
are attempting to diversify and explore the elements of the
graph more thoroughly. The sharing function recalculates
the fitness function based on how dense an area of the
graph is used. Therefore, as with any fitness function, our
shared fitness becomes that shown in equation 1.</p>
      <p>f (i)
j =1
where sh is the sharing based on the distance d between
vertex i and j. The sharing function is found in equation
(2).</p>
      <p>n
∑ sh(d(i, j))
(1)
(2)</p>
      <p>Since the 1990s, significant research has been conducted
on genetic algorithm, especially for finding the maximum
clique.</p>
      <sec id="sec-2-1">
        <title>II. Related Work</title>
        <p>
          Early works on the maximum clique problem were focused
on greedy approaches. One of the first significant
improvements on the maximum clique was done by
BronKerbausch[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. This algorithm uses a recursive
backtracking procedure that augments the clique by one
vertex at a time. Tomita, Tanaka and Takahashi [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] proved
that with a worst-time complexity O(3n/3), the
BronKerbaush algorithm was reported as one of the fastest
algorithms for listing all possible maximum cliques.
        </p>
        <p>
          In 1986, Robson improved this algorithm by adding
backtracking techniques in combination with more
complicated case analyses and dynamic programm€ing.
This however increased the space complexity of the MCP
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>A. Genetic Algorithm Methods For Max Clique</title>
      <p>
        Genetic algorithms have been successfully applied to many
NP-hard problems in various domains [
        <xref ref-type="bibr" rid="ref7 ref8">7-8</xref>
        ]. GA has also
been successfully used on graph problems, particularly on
the graph-coloring problem [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. On the MCP, the€first
approaches using GA had poor performance compared to
other local search techniques [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ].
      </p>
      <p>
        The idea of combining a genetic algorithm and a
heuristic local search has been used in earlier applications.
Marchiori [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposed a simple genetic algorithm based
on a combination of heuristic algorithms for the MCP. In
this HGA several important genetic mechanisms were
implemented such as the keep-two-best parents, elitism, a
roulette-wheel population selection, uniform crossover,
and a fitness function based on the size of the maximal
clique. Moreover, the heuristic method is used to do local
transformation on a sub-graph transforming all
chromosomes after crossover and mutation into a maximal
clique. These processes have become known as the
“relax”, “repair”, and “extend” phases. Her experiments on
the DIMACS data sets showed that results quality and
computational time have improved dramatically compared
to other heuristic approaches. Marchiori [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] continued
developing the hybrid genetic algorithm and compared this
algorithm with two other competitive variations of genetic
algorithm: the iterated local search algorithm and the
multistart local search algorithm.
      </p>
    </sec>
    <sec id="sec-4">
      <title>B. Fitness Sharing Method</title>
      <p>
        Fitness sharing method has been used to avoid GA
converging to local maxima. This technique was proposed
by Holland [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and expanded by Goldberg and Richardson
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. In a GA, the formation of population in local optimal
(also called niche) makes difficult the convergence toward
the global optimal solution. The fitness sharing method
helps to diversify the population by reducing the fitness
⎧
⎪1 − (
sh(d) = ⎨
⎪
⎩
      </p>
      <p>d
σ share
0, otherwise</p>
      <p>)α , if d &lt; σ share</p>
    </sec>
    <sec id="sec-5">
      <title>C. Migration in GA</title>
      <p>Yet another technique that inspired sociological and
ecological movements between sub-populations is the
concept of migration. Migration in genetic algorithms has
been well studied and applied in many parallel genetic
algorithms.</p>
      <p>There are important considerations before implementing
migration in genetic algorithms. Migration policies define
the replacement rule to apply between two sub-populations.
It is equivalent to answering the question: “What kind of
individual in a sub-population A is replacing what kind of
individual in sub-population B”. Topology is another
important aspect in multi-population genetic algorithm.</p>
      <p>
        The topology defines the structure of communication
between several sub-populations [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Finally, the
migration rate must be used to define the proportion of a
sub-population that is replaced with the immigrant
individuals.
      </p>
      <p>
        Migration rates and migration policies have been shown
to improve the convergence of genetic algorithm
considerably. Cantu-Paz has conducted experiments in
which the best-replacing-worst population policy has
demonstrated the best results for migration policies [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <sec id="sec-5-1">
        <title>III. Proposed Solutions</title>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>A. Hybrid Genetic Algorithm</title>
      <p>
        The heuristic local search algorithm is a local search based
on greedy approach. Given a set of vertices, this algorithm
finds the maximal clique using a “Relax”, a “Repair” and
an “Extend” steps. Marchiori described this algorithm in
details [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The relax step adds random vertices to a
subgraph. The repair step then extracts a small maximal
clique from the current sub-graph. Finally the extend step
generates a bigger maximal clique by adding random
nodes to the clique obtained in the repair step.
      </p>
      <p>The HGA is then obtained by combining the heuristic
local search with a genetic algorithm given in figure 1. The
heuristic function is added after the crossover operation to
find maximal clique.</p>
    </sec>
    <sec id="sec-7">
      <title>B. Introduction of a Migration Mechanism in</title>
    </sec>
    <sec id="sec-8">
      <title>Genetic Algorithm</title>
      <p>In our solution we propose a migration mechanism based
on two sub-populations, a main sub-population and a
secondary sub-population. The main population will have
the role of a standard HGA. The secondary sub-population
will serve as a pool that generates the new chromosomes
for migrating into the main subpopulation. This
mechanism should help to accelerate the convergence of
the current hybrid genetic algorithm.</p>
    </sec>
    <sec id="sec-9">
      <title>1) Role of the Two Sub-Populations</title>
      <p>The idea of combining a heuristic local search and a
genetic algorithm is not new. It has proven to be
competitive in solving the maximum clique problem. One
issue with this approach is the convergence into local
optima. The diversification strategy relies on the genetic
operators: crossover and mutation. The exploration of the
set of feasible solutions (or neighborhood) in hybrid
genetic algorithm is an area that can be improved.</p>
      <p>
        In our approach we define two sub-populations. The
Main sub-population uses a generic HGA defined
previously. This sub-population specializes in the
exploitation of the data. The secondary sub-population will
be dedicated to exploration of the data. In the secondary
population, an effort is made to diversify the population.
The sub-population will then transfer the best of its
population to the main sub-population through a migration
mechanism. In this approach, we want to maximize the
functions of exploration and exploitation of the genetic
algorithm. Figure 2 shows the role of each sub-population.
In our algorithm, it was decided to use a best-replace-worst
migration policy at each generation, where the best
individuals in the sub-population will replace a percentage
of the worst individuals in the main sub-population. We
also used a ladder migration topology defined in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
which allows the migration between the two
subpopulations to occur over each generation of the system.
Figure 3 shows the implementation of our hybrid genetic
algorithm with a migration mechanism.
      </p>
      <p>
        The main sub-population is the standard genetic heuristic
algorithm discussed by Marchiori [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The secondary
subpopulation, however, is of more interest. This
subpopulation uses a non-evolutionary structure. It has no
genetic operators and its role is to give random “seed” to
the main population at every generation.
      </p>
      <p>To initialize the population, we randomly choose
vertices for each chromosome in the new population. We
then apply the heuristic function, which extracts the
maximal clique from each chromosome. We then sort the
population by fitness, to determine which of the elements
should migrate to the main sub-population.</p>
      <sec id="sec-9-1">
        <title>IV. Experimental Results</title>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>A. Benchmark Datasets Used</title>
      <p>
        The data used for our experiments are from the DIMACS
(Center for Discrete Mathematics and Theoretical
Computer Science) benchmark graphs. It is composed of a
collection of 9 different classes of graphs for evaluating
and comparing different algorithms for solving the
maximum clique problem. This collection consists of
random graphs with known maximum clique size as well as
graphs obtained from various areas of applications. The
CFAT graphs are based on the fault diagnosis problem [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
The Hamming and Johnson graphs are from the coding
theory problems [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The Keller graphs arise from the
Keller conjecture on tiling using hypercube [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The SAN,
SANR, BROCK and P-HAT are composed of various types
of random graphs with known maximum clique sizes. The
BROCK graphs contain random graphs constructed so that
they have hidden cliques that are larger than what might be
expected in a random graph. The P-HAT graphs are
random graphs with large variance in the vertex degree
distribution and a larger clique than usual random graphs
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Finally, the MANN graphs are from the
vertexcovering problem, which is closely related to the maximum
clique problem [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
    </sec>
    <sec id="sec-11">
      <title>B. Results Obtained</title>
      <p>A series of experiments were conducted using a small
subset of the Dimacs data sets. The results obtained show
that the performance of our algorithm is close to the best
results obtained on the same data sets from the DIMACS
challenge (table 1).</p>
      <sec id="sec-11-1">
        <title>Graph</title>
        <p>keller4  
keller5  
keller6  
hamming8-­‐4  
hamming10-­‐4  
MANN_a27  
MANN_a81  </p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>C. Effect of Mutation Rate Variation on Results</title>
      <p>In these experiments, we evaluate the effect of the
mutation by holding other parameters static. We analyzed
the effect of mutation on the Keller5 graph with the
mutation rate parameters: 0.5%, 1%, 5%, 10% and 20%.
Table 2 shows the parameters chosen for this set of
experiments.</p>
      <sec id="sec-12-1">
        <title>Parameters Value</title>
        <p>Population size 100
Maximum iteration 50
Mutation 0.5%, 1%, 5%, 10%, 20%
Crossover rate 100% (uniform crossover)</p>
        <p>At each generation, the mutation breaks current
maximal clique in every chromosome, by replacing current
nodes by other random nodes.</p>
        <p>On one hand, a low mutation rate keeps nodes that are
good candidates for the maximum clique and the heuristic
algorithm find good local solutions. But less graph
exploration are possible using a low mutation rate. On the
other hand, a high mutation rate gives a good chance of
graph exploration, but the local search become less
efficient, as to many nodes are exchanged in
chromosomes. Choosing a good mutation rate is a trade-off
between finding a good local solution and good graph
exploration. Figure 4 shows the minimum, the average and
maximum fitness score for each chromosome for 1%
mutation rate.</p>
        <p>We can observe two phases applying the GA to the
maximum clique problem. In the first phase, a high
variation of the fitness score phase can be observed from 0
to the 15th generation. During this phase, the HGA
explores various combinations of nodes in the graph, so
the fitness score change rapidly. Then a phase of
stabilization is observed where the maximal cliques are
kept in the population and improvement occurs
progressively. During the stabilization phase, the chances
of discovering bigger cliques are low because the HGA
reach local maxima.</p>
        <p>The results obtained in our experiments shows that 1%
mutation rate achieves the best performance with the fastest
convergence and helps diversifying the population to its
maximums. The HGA algorithm found a 24-clique after
only eight generations.</p>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>D. Effect of Migration Rate Variation on Results</title>
      <p>In this set of experiments, we fix the mutation rate with the
value found greedily in the previous experiment. We then
vary the migration rate with the parameters: 1%, 5%, 10%,
20%, 30%, 50% and 90%. Table 3 shows the parameters
chosen applied on the same graph (Keller5).</p>
      <sec id="sec-13-1">
        <title>Parameters Value</title>
        <p>Population size 100
Maximum iteration 50
Mutation 1%
Crossover rate 100% (uniform crossover)
Migration rates 1%, 5%, 10%, 20%, 30%,</p>
        <p>Table 3 Parameters for50te%sti,n9g0m%igration rate</p>
        <p>The effect of a high migration rate is the replacement of
good solutions obtained by the HGA, whereas a low
migration rate injects not enough new seeds in new
population. The experiments show that the optimum
migration rate is reached at 10% and the maximum clique
is found after 28 generations (ground truth maximum
clique=27). Figure 5 shows the minimum, the average and
maximum fitness score for each chromosome for 10%
migration rate.</p>
        <p>In this graph, we can observe that the maximum fitness
increase by levels, which means that new maximal cliques
are found. After one or two generations the stabilization
phase is reached and the GA continued graph exploration.
The results show that the migration process helped the
genetic algorithm to escape from local maxima and find the
maximum clique by adding more graph exploration
capability.
In these experiment we test the effect of migration on a
variation of the population size and maximum number of
generation. We compare the effect of migration on
different parameter setup. Table 4 shows the parameters
for this set of experiments.</p>
      </sec>
      <sec id="sec-13-2">
        <title>Parameters Value</title>
        <p>(Population size / (10/1000,y), (10/1000,n),
Maximum iteration / (50/200,y), (50/200,n),
migration) (100/100, y), (100/100,n),
(200/50,y), (200/50,n)
Mutation 1%
Crossover rate 100% (uniform crossover)
Migration rates 10%</p>
        <p>Table 4 Parameters for testing effects of migration
The results indicate that for each configuration, applying
our migration mechanism increase the size of maximum
clique found and also accelerates the convergence toward
the best solution.</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>F. Effect of fitness Sharing on Results</title>
      <p>In these experiments we test the effect of fitness sharing on
same graph. The parameter σshare from equation (2)
represents the number of niches. We vary the number of
niches with the values: 3, 7, 10, 20. Table 5 shows the
parameters used for this set of experiments.</p>
      <sec id="sec-14-1">
        <title>Parameters</title>
        <p>Population size
Maximum iteration
Mutation
Crossover rate
Number of Niches (σshare)</p>
      </sec>
      <sec id="sec-14-2">
        <title>Value</title>
        <p>A high number of niches (σshare) allow diversifying the
population by reducing the fitness value of individual from
the same niche. This way, the chance to promote other
individuals from other niches is higher.</p>
        <p>We obtained the best results in this series of experiments
with the parameter σshare=20. the maximum clique is found
after 170 generations. Figure 6 shows the minimum, the
average and maximum fitness score for each chromosome
for σshare=20.</p>
        <p>The fitness sharing method also plays a function of
graph exploration by reducing the fitness values of
individual in the same niche. Then other individual from
other niches are promoted in the population. Finally we
have shown that fitness sharing method is also well suited
for graph exploration and helps to find the maximum
clique.</p>
        <sec id="sec-14-2-1">
          <title>V. CONCLUSION</title>
          <p>For the maximum clique problem, we have proposed a
solution that implemented a migration mechanism
composed of two subpopulations. The main sub-population
is specialized on data exploitation and the secondary
subpopulation is specialized on data exploration.</p>
          <p>Our results have shown that both sharing and migration
improve the convergence and results of the genetic
algorithm. We have shown that migration proves to be a
valuable tool in converging on the maximum, or high
maxima relatively quickly. We have also discussed the
potential usefulness in using sharing to find multiple
maximum solutions in the same problem. We also found
that in order to maximize the difference and prevent fast
convergence of the minimum fitness value, a 1% mutation
rate appears to give the best results. The migration rate was
also empirically derived to be best at 10% migration.</p>
          <p>These experiments lay groundwork for potential research
in the future. We used a non-evolutionary approach by
adding a second sub-population, which serves the main
population by generating random new seeds. Other
improvements can be made by developing a more specific
heuristic local search algorithm for the secondary
subpopulation dedicated to graph exploration.</p>
          <p>There are more improvement possibilities by developing
a co-evolutionary method where instead of generating new
seed at each iteration, the second sub-population evolves at
the same time with the main sub-population. Migration is
maintained at every generation for faster convergence.
Finally a cultural co-evolutionary approach would give
feedback from the main sub-population to the secondary
sub-population, to help building better candidate for
exploration.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] Cheng, James, Yiping Ke, Ada
          <string-name>
            <surname>Wai-Chee</surname>
            <given-names>Fu</given-names>
          </string-name>
          , Jeffrey Xu Yu, and
          <string-name>
            <given-names>Linhong</given-names>
            <surname>Zhu</surname>
          </string-name>
          .
          <article-title>"Finding maximal cliques in massive networks by h*-graph."</article-title>
          <source>Proceedings of the 2010 international conference on Management of data</source>
          , pp.
          <fpage>447</fpage>
          -
          <lpage>458</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Barricelli</surname>
            ,
            <given-names>Nils</given-names>
          </string-name>
          <string-name>
            <surname>Aall</surname>
          </string-name>
          (
          <year>1954</year>
          ).
          <article-title>"Esempi numerici di processi di evoluzione"</article-title>
          . Methodos:
          <fpage>45</fpage>
          -
          <lpage>68</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Holland</surname>
            <given-names>J. H.</given-names>
          </string-name>
          <article-title>Adaptation in natural and artificial systems</article-title>
          . The University of Michigan Press, Ann Arbor, MI,
          <year>1975</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Bron</surname>
            , Coen, and
            <given-names>Joep</given-names>
          </string-name>
          <string-name>
            <surname>Kerbosch</surname>
          </string-name>
          .
          <article-title>"Algorithm 457: finding all cliques of an undirected graph</article-title>
          .
          <source>" Communications of the ACM 16.9</source>
          (
          <year>1973</year>
          ):
          <fpage>575</fpage>
          -
          <lpage>577</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Tomita</surname>
            , Etsuji,
            <given-names>Akira</given-names>
          </string-name>
          <string-name>
            <surname>Tanaka</surname>
            , and
            <given-names>Haruhisa</given-names>
          </string-name>
          <string-name>
            <surname>Takahashi</surname>
          </string-name>
          .
          <article-title>"The worst-case time complexity for generating all maximal cliques and computational experiments."</article-title>
          <source>Theoretical Computer Science</source>
          <volume>363</volume>
          , no.
          <issue>1</issue>
          (
          <year>2006</year>
          ):
          <fpage>28</fpage>
          -
          <lpage>42</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Robson</surname>
            ,
            <given-names>John</given-names>
          </string-name>
          <string-name>
            <surname>Michael</surname>
          </string-name>
          .
          <article-title>"Algorithms for maximum independent sets</article-title>
          .
          <source>" Journal of Algorithms 7</source>
          .3 (
          <year>1986</year>
          ):
          <fpage>425</fpage>
          -
          <lpage>440</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Yampolskiy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Anderson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Arney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Misic</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Clarke</surname>
          </string-name>
          .
          <article-title>"Printer model integrating genetic algorithm for improvement of halftone patterns</article-title>
          .
          <source>" Western New York Image Processing Workshop (WNYIPW)</source>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Ashby</surname>
          </string-name>
          , Leif H., and
          <string-name>
            <surname>Roman</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Yampolskiy</surname>
          </string-name>
          .
          <article-title>"Genetic algorithm and Wisdom of Artificial Crowds algorithm applied to Light up</article-title>
          .
          <source>" 16th International Conference on Computer Games (CGAMES)</source>
          , pp.
          <fpage>27</fpage>
          -
          <lpage>32</lpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Hindi</surname>
          </string-name>
          ,
          <string-name>
            <surname>Musa</surname>
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Roman</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Yampolskiy</surname>
          </string-name>
          .
          <article-title>"Genetic Algorithm Applied to the Graph Coloring Problem."</article-title>
          <source>Midwest Artificial Intelligence and Cognitive Science Conference</source>
          , p.
          <fpage>60</fpage>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>B.</given-names>
            <surname>Carter</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Park</surname>
          </string-name>
          .
          <article-title>How good are genetic algorithms at finding large cliques: an experimental study</article-title>
          .
          <source>Technical report</source>
          , Boston University, Computer Science Department, MA, October
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>K.</given-names>
            <surname>Park</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Carter</surname>
          </string-name>
          .
          <article-title>On the effectiveness of genetic search in combinatorial optimization</article-title>
          .
          <source>Proceedings of the 10th ACM Symposium on Applied Computing</source>
          . ACM Press,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Marchiori</surname>
          </string-name>
          , Elena.
          <article-title>"A simple heuristic based genetic algorithm for the maximum clique problem</article-title>
          .
          <source>" Symposium on Applied Computing: Proceedings of the 1998 ACM symposium on Applied Computing</source>
          , vol.
          <volume>27</volume>
          , pp.
          <fpage>366</fpage>
          -
          <lpage>373</lpage>
          .
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>E.</given-names>
            <surname>Marchiori</surname>
          </string-name>
          .
          <article-title>Genetic, iterated and multistart local search for the maximum clique problem”</article-title>
          .
          <source>Applications of Evolutionary Computing</source>
          . Berlin, Germany: Springer-Verlag,
          <year>2002</year>
          , LNCS 2279, pp.
          <fpage>112</fpage>
          -
          <lpage>121</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Cantu-Paz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          (
          <year>1999</year>
          )
          <article-title>Migration policies and takeovertimes in parallel genetic algorithms</article-title>
          .
          <source>IlliGAL Technical Report No. 99008</source>
          . University of Illinois at Urbana-Champaign.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Cantu-Paz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>A survey of parallel genetic algorithms</article-title>
          .
          <source>Technical report 97003</source>
          . University of Illinois at Urbana-Champaign, May
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Berman</surname>
            , Pioa, and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Pelc</surname>
          </string-name>
          .
          <article-title>"Distributed probabilistic fault diagnosis for multiprocessor systems</article-title>
          .
          <source>" FaultTolerant Computing. FTCS-20. Digest of Papers. 20th International Symposium. IEEE</source>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>J. MacWilliams</surname>
            and
            <given-names>N. J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Sloane</surname>
          </string-name>
          ,
          <source>The Theory of Error Correcting Codes,"</source>
          North-Holland, Amsterdam,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Sloane</surname>
            ,
            <given-names>N. J. A.</given-names>
          </string-name>
          <article-title>"Unsolved problems in graph theory arising from the study of codes."</article-title>
          <source>Graph Theory Notes of New York</source>
          <volume>18</volume>
          (
          <year>1989</year>
          ):
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Lagarias</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Shor</surname>
          </string-name>
          ,
          <article-title>Keller's Cube-Tiling Conjecture is False in High Dimensions,"</article-title>
          <source>Bulletin AMS</source>
          ,
          <volume>27</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>279</fpage>
          -
          <lpage>283</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Brockington</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Culberson</surname>
          </string-name>
          , Camouflaging Independent Sets in Quasi-Random
          <string-name>
            <surname>Graphs</surname>
          </string-name>
          ." Working Paper,
          <source>Second DIMACS Implementation Challenge</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>T. N.</given-names>
            <surname>Bui</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. H.</given-names>
            <surname>Eppley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A Hybrid</given-names>
            <surname>Genetic</surname>
          </string-name>
          <article-title>Algorithm for the Maximum Clique Problem."</article-title>
          <source>Proceedings of the 6th International Conference on Genetic Algorithms (ICGA)</source>
          , Pittsburgh, PA, Morgan Kaufmann,
          <year>1995</year>
          , pp.
          <fpage>478</fpage>
          -
          <lpage>484</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Goldberg</surname>
            ,
            <given-names>David E.</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>Jon</given-names>
            <surname>Richardson</surname>
          </string-name>
          .
          <article-title>"Genetic algorithms with sharing for multimodal function optimization</article-title>
          .
          <source>" Proceedings of the Second International Conference on Genetic Algorithms and their application</source>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>49</lpage>
          .
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>