Evolutionary multi-objective algorithm to solve the
multi-objective minimum spanning tree problem. The algorithm relies
to mutation only to generate offspring. The package contains the subgraph mutator
(see mutSubgraphMST
) or a simple one-edge exchange mutator
(see mutEdgeExchange
). Of course, the user may use any
custom mutator which operators on edge lists as well
(see makeMutator
).
mcMSTEmoaBG(instance, mu, lambda = mu, mut = NULL, selMating = NULL,
selSurvival = ecr::selNondom, ref.point = NULL, max.iter = 100L)
[ecr_result
] List of type ecr_result
with the following components:
The ecr_optimization_task
.
Logger object.
Indizes of the non-dominated solutions in the last population.
(n x d) matrix of the approximated non-dominated front where n is the number of non-dominated points and d is the number of objectives.
Matrix of decision space values resulting with objective values given in pareto.front.
Last population.
Character string describing the reason of termination.
[mcGP
]
Multi-objective graph problem.
[integer(1)
]
Population size.
[integer(1)
]
Number of offspring generated in each generation.
Default is mu
.
[ecr_mutator
]
Mutation operator.
Default is mutSubgraphMST
.
[ecr_selector
]
Mating selector.
Default is selSimple
.
[ecr_selector
]
Survival selector.
Default is link[ecr]{selNondom}
.
[numeric(n.objectives) | NULL
]
Reference point for hypervolume computation used for logging.
If NULL
the sum of the \(n\) largest edges in each objective
is used where \(n\) is the number of nodes of instance
.
This is an upper bound for the size of each spanning tree
with \((n-1)\) edges.
[integer(1)
]
Maximal number of iterations.
Default is 100
.
Bossek, J., and Grimme, C. A Pareto-Beneficial Sub-Tree Mutation for the Multi-Criteria Minimum Spanning Tree Problem. In Proceedings of the 2017 IEEE Symposium Series on Computational Intelligence (2017). (accepted)
Mutators mutSubgraphMST
and mutEdgeExchange
Other mcMST EMOAs: mcMSTEmoaZhou
Other mcMST algorithms: mcMSTEmoaZhou
,
mcMSTPrim
inst = genRandomMCGP(10)
res = mcMSTEmoaBG(inst, mu = 20L, max.iter = 100L)
print(res$pareto.front)
print(tail(getStatistics(res$log)))
Run the code above in your browser using DataLab