3,102 research outputs found
On the Impact of Mutation-Selection Balance on the Runtime of Evolutionary Algorithms
The interplay between mutation and selection plays a fundamental role in the
behaviour of evolutionary algorithms (EAs). However, this interplay is still
not completely understood. This paper presents a rigorous runtime analysis of a
non-elitist population-based EA that uses the linear ranking selection
mechanism. The analysis focuses on how the balance between parameter ,
controlling the selection pressure in linear ranking, and parameter
controlling the bit-wise mutation rate, impacts the runtime of the algorithm.
The results point out situations where a correct balance between selection
pressure and mutation rate is essential for finding the optimal solution in
polynomial time. In particular, it is shown that there exist fitness functions
which can only be solved in polynomial time if the ratio between parameters
and is within a narrow critical interval, and where a small
change in this ratio can increase the runtime exponentially. Furthermore, it is
shown quantitatively how the appropriate parameter choice depends on the
characteristics of the fitness function. In addition to the original results on
the runtime of EAs, this paper also introduces a very useful analytical tool,
i.e., multi-type branching processes, to the runtime analysis of non-elitist
population-based EAs
Self-adaptation of Mutation Rates in Non-elitist Populations
The runtime of evolutionary algorithms (EAs) depends critically on their
parameter settings, which are often problem-specific. Automated schemes for
parameter tuning have been developed to alleviate the high costs of manual
parameter tuning. Experimental results indicate that self-adaptation, where
parameter settings are encoded in the genomes of individuals, can be effective
in continuous optimisation. However, results in discrete optimisation have been
less conclusive. Furthermore, a rigorous runtime analysis that explains how
self-adaptation can lead to asymptotic speedups has been missing. This paper
provides the first such analysis for discrete, population-based EAs. We apply
level-based analysis to show how a self-adaptive EA is capable of fine-tuning
its mutation rate, leading to exponential speedups over EAs using fixed
mutation rates.Comment: To appear in the Proceedings of the 14th International Conference on
Parallel Problem Solving from Nature (PPSN
Statistical and Computational Tradeoff in Genetic Algorithm-Based Estimation
When a Genetic Algorithm (GA), or a stochastic algorithm in general, is
employed in a statistical problem, the obtained result is affected by both
variability due to sampling, that refers to the fact that only a sample is
observed, and variability due to the stochastic elements of the algorithm. This
topic can be easily set in a framework of statistical and computational
tradeoff question, crucial in recent problems, for which statisticians must
carefully set statistical and computational part of the analysis, taking
account of some resource or time constraints. In the present work we analyze
estimation problems tackled by GAs, for which variability of estimates can be
decomposed in the two sources of variability, considering some constraints in
the form of cost functions, related to both data acquisition and runtime of the
algorithm. Simulation studies will be presented to discuss the statistical and
computational tradeoff question.Comment: 17 pages, 5 figure
Towards Smart Hybrid Fuzzing for Smart Contracts
Smart contracts are Turing-complete programs that are executed across a
blockchain network. Unlike traditional programs, once deployed they cannot be
modified. As smart contracts become more popular and carry more value, they
become more of an interesting target for attackers. In recent years, smart
contracts suffered major exploits, costing millions of dollars, due to
programming errors. As a result, a variety of tools for detecting bugs has been
proposed. However, majority of these tools often yield many false positives due
to over-approximation or poor code coverage due to complex path constraints.
Fuzzing or fuzz testing is a popular and effective software testing technique.
However, traditional fuzzers tend to be more effective towards finding shallow
bugs and less effective in finding bugs that lie deeper in the execution. In
this work, we present CONFUZZIUS, a hybrid fuzzer that combines evolutionary
fuzzing with constraint solving in order to execute more code and find more
bugs in smart contracts. Evolutionary fuzzing is used to exercise shallow parts
of a smart contract, while constraint solving is used to generate inputs which
satisfy complex conditions that prevent the evolutionary fuzzing from exploring
deeper paths. Moreover, we use data dependency analysis to efficiently generate
sequences of transactions, that create specific contract states in which bugs
may be hidden. We evaluate the effectiveness of our fuzzing strategy, by
comparing CONFUZZIUS with state-of-the-art symbolic execution tools and
fuzzers. Our evaluation shows that our hybrid fuzzing approach produces
significantly better results than state-of-the-art symbolic execution tools and
fuzzers
- …