Description Usage Arguments Details Value References
View source: R/solver_abc_kui.R
Solves a instance of the 3-GCP problem using the Artificial Bee Colony (ABC) implementation described in Kui et al., 2016.
1 | solver_abc_kui(G, nfe, args)
|
G |
the graph to be solved, represented by a list where G$V is the number of nodes, and G$E is a |E|x2 matrix of edges. |
nfe |
the number of function evaluations. The solver will stop after this number has been exceeded. |
args |
a list with arguments for the method. The list must contain the following names:
|
The ABC algorithm begins with a random set of solutions X, and at every iteration performs the following three steps:
1- For every solution x_i in X, find x_j (i != j), and calculates x_u using 'mutate.abc(x_i, x_j)'. Evaluate x_u and replace x_i if better.
2- Select n = onlooker solutions x_i from X (with repetition), with probability proportional to their fitness. Apply Step 1 on these solutions.
3- Select n = scout solutions x_i from X where AGE(x_i) > limit. replace x_i with a random solution.
In addition, in step 1 and 2, for every pair of selected individuals x_i and x_j,
we calculate a "random similarity" value (S <- 1 - runif(1) * sum(x_i != x_j) / length(x_i)
).
If S is lower than a random value between 0 and 1, we discard that particular mutation.
This should in theory weight the algorithm towards performing mutations on individuals
that are more similar to each other.
Mutate.abc(x_i, x_j, c) generates a new individual as follows: 'c' elements are choosen randomly from x_j, and copied into x_i.
A list with three names:
violation: the number of graph coloring violations of the best solution found (0 for a correct solution)
best: a vector with the best solution found
evals: the number of evaluations used by the time the solver stopped.
Kui Chen, Hitoshi Kanoh, "A Discrete Artificial Bee Colony Algorithm Based on Similarity for Graph Coloring Problems", Proceedings of the 5th TPNC, 2017
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.