203 research outputs found
Tester versus Bug: A Generic Framework for Model-Based Testing via Games
We propose a generic game-based approach for test case generation. We set up
a game between the tester and the System Under Test, in such a way that test
cases correspond to game strategies, and the conformance relation ioco
corresponds to alternating refinement. We show that different test assumptions
from the literature can be easily incorporated, by slightly varying the moves
in the games and their outcomes. In this way, our framework allows a wide
plethora of game-theoretic techniques to be deployed for model based testing.Comment: In Proceedings GandALF 2018, arXiv:1809.0241
Automatic Generation of Models of Microarchitectures
Detailed microarchitectural models are necessary to predict, explain, or optimize the performance of software running on modern microprocessors. Building such models often requires a significant manual effort, as the documentation provided by hardware manufacturers is typically not precise enough. The goal of this thesis is to develop techniques for generating microarchitectural models automatically. In the first part, we focus on recent x86 microarchitectures. We implement a tool to accurately evaluate small microbenchmarks using hardware performance counters. We then describe techniques to automatically generate microbenchmarks for measuring the performance of individual instructions and for characterizing cache architectures. We apply our implementations to more than a dozen different microarchitectures. In the second part of the thesis, we study more general techniques to obtain models of hardware components. In particular, we propose the concept of gray-box learning, and we develop a learning algorithm for Mealy machines that exploits prior knowledge about the system to be learned. Finally, we show how this algorithm can be adapted to minimize incompletely specified Mealy machinesâa well-known NP-complete problem. Our implementation outperforms existing exact minimization techniques by several orders of magnitude on a number of hard benchmarks; it is even competitive with state-of-the-art heuristic approaches.Zur Vorhersage, ErklĂ€rung oder Optimierung der Leistung von Software auf modernen Mikroprozessoren werden detaillierte Modelle der verwendeten Mikroarchitekturen benötigt. Das Erstellen derartiger Modelle ist oft mit einem hohen Aufwand verbunden, da die erforderlichen Informationen von den Prozessorherstellern typischerweise nicht zur VerfĂŒgung gestellt werden. Das Ziel der vorliegenden Arbeit ist es, Techniken zu entwickeln, um derartige Modelle automatisch zu erzeugen. Im ersten Teil beschĂ€ftigen wir uns mit aktuellen x86-Mikroarchitekturen. Wir entwickeln zuerst ein Tool, das kleine Microbenchmarks mithilfe von Performance Countern auswerten kann. Danach beschreiben wir Techniken, um automatisch Microbenchmarks zu erzeugen, mit denen die Leistung einzelner Instruktionen gemessen sowie die Cache-Architektur charakterisiert werden kann. Im zweiten Teil der Arbeit betrachten wir allgemeinere Techniken, um Hardwaremodelle zu erzeugen. Wir schlagen das Konzept des âGray-Box Learningâ vor, und wir entwickeln einen Lernalgorithmus fĂŒr Mealy-Maschinen, der bekannte Informationen ĂŒber das zu lernende System berĂŒcksichtigt. Zum Abschluss zeigen wir, wie dieser Algorithmus auf das Problem der Minimierung unvollstĂ€ndig spezifizierter Mealy-Maschinen ĂŒbertragen werden kann. Hierbei handelt es sich um ein bekanntes NP-vollstĂ€ndiges Problem. Unsere Implementierung ist in mehreren Benchmarks um GröĂenordnungen schneller als vorherige AnsĂ€tze
Minimal Synthesis of String To String Functions From Examples
We study the problem of synthesizing string to string transformations from a
set of input/output examples. The transformations we consider are expressed
using deterministic finite automata (DFA) that read pairs of letters, one
letter from the input and one from the output. The DFA corresponding to these
transformations have additional constraints, ensuring that each input string is
mapped to exactly one output string.
We suggest that, given a set of input/output examples, the smallest DFA
consistent with the examples is a good candidate for the transformation the
user was expecting. We therefore study the problem of, given a set of examples,
finding a minimal DFA consistent with the examples and satisfying the
functionality and totality constraints mentioned above.
We prove that, in general, this problem (the corresponding decision problem)
is NP-complete. This is unlike the standard DFA minimization problem which can
be solved in polynomial time. We provide several NP-hardness proofs that show
the hardness of multiple (independent) variants of the problem.
Finally, we propose an algorithm for finding the minimal DFA consistent with
input/output examples, that uses a reduction to SMT solvers. We implemented the
algorithm, and used it to evaluate the likelihood that the minimal DFA indeed
corresponds to the DFA expected by the user.Comment: SYNT 201
Fuzzy Automata: A Quantitative Review
Classical automata theory cannot deal with the system uncertainty. To deal with the system uncertainty the concept of fuzzy finite automata was proposed. Fuzzy automata can be used in diverse applications such as fault detection, pattern matching, measuring the fuzziness between strings, description of natural languages, neural network, lexical analysis, image processing, scheduling problem and many more. In this paper, a methodical literature review is carried out on various research works in the field of Fuzzy automata and explained the challenging issues in the field of fuzzy automata
State Identification for Labeled Transition Systems with Inputs and Outputs
For Finite State Machines (FSMs) a rich testing theory has been developed to
discover aspects of their behavior and ensure their correct functioning.
Although this theory is widely used, e.g., to check conformance of protocol
implementations, its applicability is limited by restrictions of the FSM
framework: the fact that inputs and outputs alternate in an FSM, and outputs
are fully determined by the previous input and state. Labeled Transition
Systems with inputs and outputs (LTSs), as studied in ioco testing theory,
provide a richer framework for testing component oriented systems, but lack the
algorithms for test generation from FSM theory.
In this article, we propose an algorithm for the fundamental problem of state
identification during testing of LTSs. Our algorithm is a direct generalization
of the well-known algorithm for computing adaptive distinguishing sequences for
FSMs proposed by Lee & Yannakakis. Our algorithm has to deal with so-called
compatible states, states that cannot be distinguished in case of an
adversarial system-under-test. Analogous to the result of Lee & Yannakakis, we
prove that if an (adaptive) test exists that distinguishes all pairs of
incompatible states of an LTS, our algorithm will find one. In practice, such
adaptive tests typically do not exist. However, in experiments with an
implementation of our algorithm on an industrial benchmark, we find that tests
produced by our algorithm still distinguish more than 99% of the incompatible
state pairs
Learning Reward Machines through Preference Queries over Sequences
Reward machines have shown great promise at capturing non-Markovian reward
functions for learning tasks that involve complex action sequencing. However,
no algorithm currently exists for learning reward machines with realistic weak
feedback in the form of preferences. We contribute REMAP, a novel algorithm for
learning reward machines from preferences, with correctness and termination
guarantees. REMAP introduces preference queries in place of membership queries
in the L* algorithm, and leverages a symbolic observation table along with
unification and constraint solving to narrow the hypothesis reward machine
search space. In addition to the proofs of correctness and termination for
REMAP, we present empirical evidence measuring correctness: how frequently the
resulting reward machine is isomorphic under a consistent yet inexact teacher,
and the regret between the ground truth and learned reward machines.Comment: 24 pages, 10 figure
Action Codes
We provide a new perspective on the problem how high-level state machine models with abstract actions can be related to low-level models in which these actions are refined by sequences of concrete actions. We describe the connection between high-level and low-level actions using action codes, a variation of the prefix codes known from coding theory. For each action code ?, we introduce a contraction operator ?_? that turns a low-level model ? into a high-level model, and a refinement operator ?_? that transforms a high-level model ? into a low-level model. We establish a Galois connection ?_?(?) ? ? ? ? ? ?_?(?), where ? is the well-known simulation preorder. For conformance, we typically want to obtain an overapproximation of model ?. To this end, we also introduce a concretization operator ?_?, which behaves like the refinement operator but adds arbitrary behavior at intermediate points, giving us a second Galois connection ?_?(?) ? ? ? ? ? ?_?(?). Action codes may be used to construct adaptors that translate between concrete and abstract actions during learning and testing of Mealy machines. If Mealy machine ? models a black-box system then ?_?(?) describes the behavior that can be observed by a learner/tester that interacts with this system via an adaptor derived from code ?. Whenever ?_?(?) implements (or conforms to) ?, we may conclude that ? implements (or conforms to) ?_? (?).
Almost all results, examples, and counter-examples are formalized in Coq
- âŠ