Code Monkey home page Code Monkey logo

pngraph's Introduction

pnGraph - Project to lecture

This is a repository about petrinets. Due to a lecture at university I created this project simultanious to my studies. To create own petrinets we used pn-strings. These are used as inputs to create the petrinets. The toString()-methods create an output to display graphs with graphViz.

pn-strings

Strings of the form: -p"s1:t1;;t1:s1;;" -m"1". Petrinets must be correct to be created. A correct petrinet

  • has transitions
  • is connected
  • contains the same number of places as dimension of the marking.

p-part

In the section after -p the petrinet is defined.

place1 : transitions; place2 : transitions ;; transition2 : places;;

m-part

This section defines the markings. These are the number of tokens at each place.

#ofTokens@place1 , #ofTokens@place2

Graphs

The output for the graphViz-Graphs will create circles for the places and rectangles for transitions. The places can contain markings, which are shown as dots when the count does not exceed 6 tokens. Otherwise, the number of tokens is printed.

The output of coverability-graphs is shown as nodes with the markings string and at each edge is the used transition labelled.

Features

Create a Petrinet and Analyse a Petrinet

petrinet

Petrinets are place/transition-systems. They are either created with the PetriReader and a corresponding pn-string or with given constructor. You need each a list of places, transitions and edges. When the net is correct you can analyse the following attributes:

  • strongly connected (wip)
  • contains loops
  • boundedness
  • todo add other: free choice s.o.

Additionally you can create the following graphs:

with capacity

condition/event system

reachability graph

coverability graph

labelled transition system

Use

inside IDE

The easiest way with the class Playground.

From the commandline

final build

TODO: gui?

pngraph's People

Contributors

jugoligithub avatar

Stargazers

 avatar  avatar

Watchers

 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.