17 research outputs found
Evolutionary computation for software testing
A variety of products undergo a transformation from a pure mechanical design to more and more software and electronic components. A polarized example are watches. Several decades ago they have been purely mechanical. Modern smart watches are almost completely electronic devices which heavily rely on software. Further, a smart watch offers a lot more features than just the information about the current time.
This change had a crucial impact on how software is being developed. A first attempt to control the rising complexity was to move to agile development practices such as extreme programming or scrum. This rise in complexity is not only affecting the development process but also quality assurance and software testing. If a product contains more and more features then this leads to a higher number of tests necessary to ensure quality standards. Furthermore agile development practices work in an iterative manner which leads to repetitive testing that puts more effort on the testing team. We aimed within the thesis to ease the pain of testing. Thereby we examined a series of subproblems that arise.
A key complexity is the number of test cases. We intended to reduce the number of test cases before they are executed manually or implemented as automated tests. Thereby we examined the test specification and based on the requirements coverage of the individual tests, we were able to identify redundant tests. We relied on a novel metaheuristic called GCAIS which we improved upon iteratively.
Another task is to control the remaining complexity. Testing is often time crucial and an appropriate subset of the available tests must be chosen in order to get a quick insight into the status of the device under test. We examined this challenge in two different testing scenarios.
The first scenario is located in semi-automated testing where engineers execute a set of automated tests locally and closely observe the behaviour of the system under test. We extended GCAIS to compute test suites that satisfy different criteria if provided with sufficient search time.
The second use case is located in fully automated testing in a continuous integration (CI) setting. CI focuses on frequent software build cycles which also include testing. These builds contain a testing stage which greatly emphasizes speed. Thus there we also have to compute crucial tests. However, due to the nature of the process we have to continuously recompute a test suite for each build as the software and maybe even the test cases at hand have changed. Hence it is hard to compute the test suite ahead of time and these tests have to be determined as part of the CI execution. Thus we switched to a computational lightweight learning classifier system (LCS) to prioritize and select test cases. We integrated a series of innovations we made into an LCS known as XCSF such as continuous priorities, experience replay and transfer learning. This enabled us to outperform a state of the art artificial neural network which is used by companies such as Netflix.
We further investigated how LCS can be made faster using parallelism. We developed generic approaches which may run on any multicore computing device. This is of interest for our CI use case as the build server's architecture is unknown. However, the methods are also independent of the concrete LCS and are not linked to our testing problem.
We identified that many of the challenges that need to be faced in the CI use case have been tackled by Organic Computing (OC), for example the need to adapt to an ever changing environment. Hence we relied on OC design principles to create a system architecture which wraps the LCS developed and integrates it into existing CI processes. The final system is robust and highly autonomous. A side-effect of the high degree of autonomy is a high level of automatization which fits CI well. We also gave insight on the usability and delivery of the full system to our industrial partner. Test engineers can easily integrate it with a few lines of code and need no knowledge about LCS and OC in order to use it. Another implication of the developed system is that OC's ideas and design principles can also be employed outside the field of embedded systems. This shows that OC has a greater level of generality.
The process of testing and correcting found errors is still only partially automated. We make a first step into automating the entire process and thereby take an analogy to the concept of self-healing of OC. As a first proof of concept of this school of thought we take a look at touch interfaces. There we can automatically manipulate the software to fulfill the specified behaviour. Thus only a minimalistic amount of manual work is required
A brief history of learning classifier systems: from CS-1 to XCS and its variants
© 2015, Springer-Verlag Berlin Heidelberg. The direction set by Wilson’s XCS is that modern Learning Classifier Systems can be characterized by their use of rule accuracy as the utility metric for the search algorithm(s) discovering useful rules. Such searching typically takes place within the restricted space of co-active rules for efficiency. This paper gives an overview of the evolution of Learning Classifier Systems up to XCS, and then of some of the subsequent developments of Wilson’s algorithm to different types of learning
XCS Classifier System with Experience Replay
XCS constitutes the most deeply investigated classifier system today. It
bears strong potentials and comes with inherent capabilities for mastering a
variety of different learning tasks. Besides outstanding successes in various
classification and regression tasks, XCS also proved very effective in certain
multi-step environments from the domain of reinforcement learning. Especially
in the latter domain, recent advances have been mainly driven by algorithms
which model their policies based on deep neural networks -- among which the
Deep-Q-Network (DQN) is a prominent representative. Experience Replay (ER)
constitutes one of the crucial factors for the DQN's successes, since it
facilitates stabilized training of the neural network-based Q-function
approximators. Surprisingly, XCS barely takes advantage of similar mechanisms
that leverage stored raw experiences encountered so far. To bridge this gap,
this paper investigates the benefits of extending XCS with ER. On the one hand,
we demonstrate that for single-step tasks ER bears massive potential for
improvements in terms of sample efficiency. On the shady side, however, we
reveal that the use of ER might further aggravate well-studied issues not yet
solved for XCS when applied to sequential decision problems demanding for
long-action-chains
Learning classifier systems from first principles: A probabilistic reformulation of learning classifier systems from the perspective of machine learning
Learning Classifier Systems (LCS) are a family of rule-based machine learning methods. They aim at the autonomous production of potentially human readable results that are the most compact generalised representation whilst also maintaining high predictive accuracy, with a wide range of application areas, such as autonomous robotics, economics, and multi-agent systems. Their design is mainly approached heuristically and, even though their performance is competitive in regression and classification tasks, they do not meet their expected performance in sequential decision tasks despite being initially designed for such tasks. It is out contention that improvement is hindered by a lack of theoretical understanding of their underlying mechanisms and dynamics.EThOS - Electronic Theses Online ServiceGBUnited Kingdo
Improving the Scalability of XCS-Based Learning Classifier Systems
Using evolutionary intelligence and machine learning techniques, a broad
range of intelligent machines have been designed to perform different
tasks. An intelligent machine learns by perceiving its environmental status
and taking an action that maximizes its chances of success.
Human beings have the ability to apply knowledge learned from a
smaller problem to more complex, large-scale problems of the same or a
related domain, but currently the vast majority of evolutionary machine
learning techniques lack this ability. This lack of ability to apply the already
learned knowledge of a domain results in consuming more than
the necessary resources and time to solve complex, large-scale problems
of the domain. As the problem increases in size, it becomes difficult and
even sometimes impractical (if not impossible) to solve due to the needed
resources and time. Therefore, in order to scale in a problem domain, a
systemis needed that has the ability to reuse the learned knowledge of the
domain and/or encapsulate the underlying patterns in the domain.
To extract and reuse building blocks of knowledge or to encapsulate
the underlying patterns in a problem domain, a rich encoding is needed,
but the search space could then expand undesirably and cause bloat, e.g.
as in some forms of genetic programming (GP). Learning classifier systems
(LCSs) are a well-structured evolutionary computation based learning
technique that have pressures to implicitly avoid bloat, such as fitness
sharing through niche based reproduction.
The proposed thesis is that an LCS can scale to complex problems in
a domain by reusing the learnt knowledge from simpler problems of the
domain and/or encapsulating the underlying patterns in the domain. Wilson’s
XCS is used to implement and test the proposed systems, which is a well-tested,
online learning and accuracy based LCS model. To extract the reusable building
blocks of knowledge, GP-tree like, code-fragments are introduced, which are more
than simply another representation (e.g. ternary or real-valued alphabets). This
thesis is extended to capture the underlying patterns in a problemusing a cyclic
representation. Hard problems are experimented to test the newly developed scalable
systems and compare them with benchmark techniques.
Specifically, this work develops four systems to improve the scalability
of XCS-based classifier systems. (1) Building blocks of knowledge are extracted
fromsmaller problems of a Boolean domain and reused in learning
more complex, large-scale problems in the domain, for the first time. By
utilizing the learnt knowledge from small-scale problems, the developed
XCSCFC (i.e. XCS with Code-Fragment Conditions) system readily solves
problems of a scale that existing LCS and GP approaches cannot, e.g. the
135-bitMUX problem. (2) The introduction of the code fragments in classifier
actions in XCSCFA (i.e. XCS with Code-Fragment Actions) enables the
rich representation of GP, which when couples with the divide and conquer
approach of LCS, to successfully solve various complex, overlapping
and niche imbalance Boolean problems that are difficult to solve using numeric
action based XCS. (3) The underlying patterns in a problem domain
are encapsulated in classifier rules encoded by a cyclic representation. The
developed XCSSMA system produces general solutions of any scale n for
a number of important Boolean problems, for the first time in the field of
LCS, e.g. parity problems. (4) Optimal solutions for various real-valued
problems are evolved by extending the existing real-valued XCSR system
with code-fragment actions to XCSRCFA. Exploiting the combined power
of GP and LCS techniques, XCSRCFA successfully learns various continuous
action and function approximation problems that are difficult to learn
using the base techniques.
This research work has shown that LCSs can scale to complex, largescale
problems through reusing learnt knowledge. The messy nature, disassociation of
message to condition order, masking, feature construction, and reuse of extracted
knowledge add additional abilities to the XCS family of LCSs. The ability to use
rich encoding in antecedent GP-like codefragments or consequent cyclic representation
leads to the evolution of accurate, maximally general and compact solutions in learning
various complex Boolean as well as real-valued problems. Effectively exploiting
the combined power of GP and LCS techniques, various continuous action
and function approximation problems are solved in a simple and straight
forward manner.
The analysis of the evolved rules reveals, for the first time in XCS, that
no matter how specific or general the initial classifiers are, all the optimal
classifiers are converged through the mechanism ‘be specific then generalize’
near the final stages of evolution. Also that standard XCS does not use
all available information or all available genetic operators to evolve optimal
rules, whereas the developed code-fragment action based systems effectively use figure
and ground information during the training process.
Thiswork has created a platformto explore the reuse of learnt functionality,
not just terminal knowledge as present, which is needed to replicate human capabilities
From humans to humanoids: The optimal control framework
AbstractIn the last years of research in cognitive control, neuroscience and humanoid robotics have converged to different frameworks which aim, on one side, at modeling and analyzing human motion, and, on the other side, at enhancing motor abilities of humanoids. In this paper we try to cover the gap between the two areas, giving an overview of the literature in the two fields which concerns the production of movements. First, we survey computational motor control models based on optimality principles; then, we review available implementations and techniques to transfer these principles to humanoid robots, with a focus on the limitations and possible improvements of the current implementations. Moreover, we propose Stochastic Optimal Control as a framework to take into account delays and noise, thus catching the unpredictability aspects typical of both humans and humanoids systems. Optimal Control in general can also easily be integrated with Machine Learning frameworks, thus resulting in a computational implementation of human motor learning. This survey is mainly addressed to roboticists attempting to implement human-inspired controllers on robots, but can also be of interest for researchers in other fields, such as computational motor control