Giter VIP home page Giter VIP logo

automata-learning-based-diagnosis's Introduction

Coffee Machine Example

Automata Learning Enabling Model-Based Diagnosis

In this repository, we demonstrate how to use active automata learning in order to tackle the problem of creating the diagnostic model. We show how to learn deterministic and stochastic models from reactive systems.

On the one hand, we can learn models of faulty systems for being able to deploy model-based reasoning. Furthermore, we also show how to use fault models in the learning process, such as to derive a diagnostic model describing the diagnosis search space.

Structure of the Repository

  • LearnedModels/ - visualized models of faulty systems and their encoding in the .dot format
  • Systems.py - Simple systems that serve as 'System under Learning'
  • SULs.py - A wrapper around each system, enabling active automata learning with AALpy
  • ModelLearning.py - Collections of methods invoking automata learning procedure for each system

Learned Systems

  • Coffee Machine
    • Insert a coin, and if 2 or 3 coins are inserted, get a coffee. The cost of coffee is two coins. Several bugs have been introduced. Fault model, the language of faults, stochastic fault model, and model suitable for diagnostic reasoning have been learned.
  • GearBox
    • Simple gearbox system where user can press/release the clutch and change gears. Certain sequences of actions can break the gearbox. The fault model and language of faults have been learned.
  • Crossroad System
    • Crossroads, where two traffic lights control the traffic flow. Each lane can have up to 5 cars in the queue.
  • Vending machine
    • Simple vending machine where a certain sequence of steps triggers a fault in vending machine logic.
  • Stochastic Lightswitch
    • Modern light switch that displays faulty behavior in a stochastic manner.
  • Differential Drive Robot
    • Simple robot with two wheels. Each wheel can be in one of 3 fault modes: spin faster, slower, or stuck. These faults can be injected and a model suitable for diagnostic reasoning constructed.

Installation and Running

To download:

git clone https://github.com/DES-Lab/Automata-Learning-Based-Diagnosis
pip install aalpy

To run, simply run the ModelLearning.py. Select the appropriate method and add it to __main__ to learn any system.

automata-learning-based-diagnosis's People

Contributors

emuskardin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.