19,434 research outputs found
A Seeded Genetic Algorithm for RNA Secondary Structural Prediction with Pseudoknots
This work explores a new approach in using genetic algorithm to predict RNA secondary structures with pseudoknots. Since only a small portion of most RNA structures is comprised of pseudoknots, the majority of structural elements from an optimal pseudoknot-free structure are likely to be part of the true structure. Thus seeding the genetic algorithm with optimal pseudoknot-free structures will more likely lead it to the true structure than a randomly generated population. The genetic algorithm uses the known energy models with an additional augmentation to allow complex pseudoknots. The nearest-neighbor energy model is used in conjunction with Turner’s thermodynamic parameters for pseudoknot-free structures, and the H-type pseudoknot energy estimation for simple pseudoknots. Testing with known pseudoknot sequences from PseudoBase shows that it out performs some of the current popular algorithms
Combining Static and Dynamic Analysis for Vulnerability Detection
In this paper, we present a hybrid approach for buffer overflow detection in
C code. The approach makes use of static and dynamic analysis of the
application under investigation. The static part consists in calculating taint
dependency sequences (TDS) between user controlled inputs and vulnerable
statements. This process is akin to program slice of interest to calculate
tainted data- and control-flow path which exhibits the dependence between
tainted program inputs and vulnerable statements in the code. The dynamic part
consists of executing the program along TDSs to trigger the vulnerability by
generating suitable inputs. We use genetic algorithm to generate inputs. We
propose a fitness function that approximates the program behavior (control
flow) based on the frequencies of the statements along TDSs. This runtime
aspect makes the approach faster and accurate. We provide experimental results
on the Verisec benchmark to validate our approach.Comment: There are 15 pages with 1 figur
Using genetic algorithms to generate test sequences for complex timed systems
The generation of test data for state based specifications is a computationally expensive process. This problem is magnified if we consider that time con- straints have to be taken into account to govern the transitions of the studied system. The main goal of this paper is to introduce a complete methodology, sup- ported by tools, that addresses this issue by represent- ing the test data generation problem as an optimisa- tion problem. We use heuristics to generate test cases. In order to assess the suitability of our approach we consider two different case studies: a communication protocol and the scientific application BIPS3D. We give details concerning how the test case generation problem can be presented as a search problem and automated. Genetic algorithms (GAs) and random search are used to generate test data and evaluate the approach. GAs outperform random search and seem to scale well as the problem size increases. It is worth to mention that we use a very simple fitness function that can be eas- ily adapted to be used with other evolutionary search techniques
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
Recommended from our members
Evolving cellular automata to generate nonlinear sequences with desirable properties
This paper presents a new chromosomal representation and associated genetic operators for the evolution of highly nonlinear cellular automata that generate pseudorandom number sequences with desirable properties ensured. This chromosomal representation reduces the computational complexity of genetic operators to evolve valid solutions while facilitating fitness evaluation based on the DIEHARD statistical tests
A genetic algorithm for the mixed flow shop problem
In this thesis we present a new interesting version of the mixed flow shop se-quencing problem, which at the same time is a version of the classic flow shop,a very common topic on operations research.We propose a genetic algorithm to solve it that we will compare at the endwith a simple initial genetic-based algorithm previously design. For that wefirst focus on the crossover operator as we consider it the most challenging parton a sequencing problem. We study and compare 5 different crossover operatorsand we choose the one that performs better. Finally we calibrate the populationsize, the weight of mutation and crossover operators on the algorithm and alsothe mutations operator itself.The goal of the thesis is to better understand the specific mixed flow shopproblem version presented and design a genetic algorithm that clearly improvesthe performance of the initial algorith
Recommended from our members
An Evolutionary Approach to the Design of Controllable Cellular Automata Structure for Random Number Generation
Cellular Automata (CA) has been used in pseudorandom number generation over a decade. Recent studies show that two-dimensional (2-d) CA Pseudorandom Number Generators (PRNGs) may generate better random sequences than conventional one-dimensional (1-d) CA PRNGs, but they are more complex to implement in hardware than 1-d CA PRNGs. In this paper, we propose a new class of 1-d CA Controllable Cellular Automata (CCA) without much deviation from the structure simplicity of conventional 1-d CA. We give a general definition of CCA first and then introduce two types of CCA – CCA0 and CCA2. Our initial study on them shows that these two CCA PRNGs have better randomness quality than conventional 1-d CA PRNGs but their randomness is affected by their structures. To find good CCA0/CCA2 structures for pseudorandom number generation, we evolve them using the Evolutionary Multi-Objective Optimization (EMOO) techniques. Three different algorithms are presented in this paper. One makes use of an aggregation function; the other two are based on the Vector Evaluated Genetic Algorithm (VEGA). Evolution results show that these three algorithms all perform well. Applying a set of randomness tests on the evolved CCA PRNGs, we demonstrate that their randomness is better than that of 1-d CA PRNGs and can be comparable to that of two-dimensional CA PRNGs
Genome engineering of isogenic human ES cells to model autism disorders.
Isogenic pluripotent stem cells are critical tools for studying human neurological diseases by allowing one to study the effects of a mutation in a fixed genetic background. Of particular interest are the spectrum of autism disorders, some of which are monogenic such as Timothy syndrome (TS); others are multigenic such as the microdeletion and microduplication syndromes of the 16p11.2 chromosomal locus. Here, we report engineered human embryonic stem cell (hESC) lines for modeling these two disorders using locus-specific endonucleases to increase the efficiency of homology-directed repair (HDR). We developed a system to: (1) computationally identify unique transcription activator-like effector nuclease (TALEN) binding sites in the genome using a new software program, TALENSeek, (2) assemble the TALEN genes by combining golden gate cloning with modified constructs from the FLASH protocol, and (3) test the TALEN pairs in an amplification-based HDR assay that is more sensitive than the typical non-homologous end joining assay. We applied these methods to identify, construct, and test TALENs that were used with HDR donors in hESCs to generate an isogenic TS cell line in a scarless manner and to model the 16p11.2 copy number disorder without modifying genomic loci with high sequence similarity
Evolutionary improvement of programs
Most applications of genetic programming (GP) involve the creation of an entirely new function, program or expression to solve a specific problem. In this paper, we propose a new approach that applies GP to improve existing software by optimizing its non-functional properties such as execution time, memory usage, or power consumption. In general, satisfying non-functional requirements is a difficult task and often achieved in part by optimizing compilers. However, modern compilers are in general not always able to produce semantically equivalent alternatives that optimize non-functional properties, even if such alternatives are known to exist: this is usually due to the limited local nature of such optimizations. In this paper, we discuss how best to combine and extend the existing evolutionary methods of GP, multiobjective optimization, and coevolution in order to improve existing software. Given as input the implementation of a function, we attempt to evolve a semantically equivalent version, in this case optimized to reduce execution time subject to a given probability distribution of inputs. We demonstrate that our framework is able to produce non-obvious optimizations that compilers are not yet able to generate on eight example functions. We employ a coevolved population of test cases to encourage the preservation of the function's semantics. We exploit the original program both through seeding of the population in order to focus the search, and as an oracle for testing purposes. As well as discussing the issues that arise when attempting to improve software, we employ rigorous experimental method to provide interesting and practical insights to suggest how to address these issues
- …