From e3a04cb7650b479ee723d803305005d9aec8a090 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Wed, 26 Feb 2020 21:17:11 +0100 Subject: [PATCH] example.org: Add examples of state graphs. --- example/dots/examplecHA6gL.svg | 94 +++++++++++++++++++ example/dots/examplem7LpTs.svg | 164 +++++++++++++++++++++++++++++++++ example/dots/examplex1Irnk.svg | 164 +++++++++++++++++++++++++++++++++ example/example.org | 66 +++++++++++++ 4 files changed, 488 insertions(+) create mode 100644 example/dots/examplecHA6gL.svg create mode 100644 example/dots/examplem7LpTs.svg create mode 100644 example/dots/examplex1Irnk.svg diff --git a/example/dots/examplecHA6gL.svg b/example/dots/examplecHA6gL.svg new file mode 100644 index 0000000..c8c0076 --- /dev/null +++ b/example/dots/examplecHA6gL.svg @@ -0,0 +1,94 @@ + + + + + + +G + + + +node0 + +a:0 c:0 b:0 + + + +node1 + +a:1 c:0 b:1 + + + +node2 + +a:1 c:1 b:0 + + + +node3 + +a:0 c:1 b:1 + + + +node3->node3 + + + + +node4 + +a:0 c:0 b:1 + + + +node3->node4 + + + + +node5 + +a:1 c:1 b:1 + + + +node3->node5 + + + + + +node4->node0 + + + + + +node4->node1 + + + + + +node5->node1 + + + + + +node5->node2 + + + + + +node5->node5 + + + + diff --git a/example/dots/examplem7LpTs.svg b/example/dots/examplem7LpTs.svg new file mode 100644 index 0000000..b2e115e --- /dev/null +++ b/example/dots/examplem7LpTs.svg @@ -0,0 +1,164 @@ + + + + + + +G + + + +node0 + +a:#f c:#f b:#t + + + +node1 + +a:#t c:#f b:#t + + + +node0->node1 + + + + + +node2 + +a:#f c:#f b:#f + + + +node0->node2 + + + + + +node6 + +a:#f c:#t b:#t + + + +node0->node6 + + + + +node1->node1 + + + + +node3 + +a:#t c:#f b:#f + + + +node1->node3 + + + + + +node7 + +a:#t c:#t b:#t + + + +node1->node7 + + + + +node2->node2 + + + + +node4 + +a:#f c:#t b:#f + + + +node2->node4 + + + + +node3->node2 + + + + + +node3->node3 + + + + +node5 + +a:#t c:#t b:#f + + + +node3->node5 + + + + +node4->node4 + + + + +node4->node6 + + + + + +node5->node4 + + + + + +node5->node5 + + + + +node6->node6 + + + + +node6->node7 + + + + + +node7->node5 + + + + + +node7->node7 + + + + diff --git a/example/dots/examplex1Irnk.svg b/example/dots/examplex1Irnk.svg new file mode 100644 index 0000000..622b156 --- /dev/null +++ b/example/dots/examplex1Irnk.svg @@ -0,0 +1,164 @@ + + + + + + +G + + + +node0 + +a:0 c:0 b:0 + + + +node0->node0 + + + + +node1 + +a:0 c:1 b:0 + + + +node0->node1 + + + + +node1->node1 + + + + +node2 + +a:0 c:1 b:1 + + + +node1->node2 + + + + + +node2->node2 + + + + +node4 + +a:1 c:1 b:1 + + + +node2->node4 + + + + + +node6 + +a:0 c:0 b:1 + + + +node2->node6 + + + + +node3 + +a:1 c:0 b:0 + + + +node3->node0 + + + + + +node3->node3 + + + + +node7 + +a:1 c:1 b:0 + + + +node3->node7 + + + + +node4->node4 + + + + +node5 + +a:1 c:0 b:1 + + + +node4->node5 + + + + +node4->node7 + + + + + +node5->node3 + + + + + +node5->node5 + + + + +node6->node0 + + + + + +node6->node5 + + + + + +node7->node1 + + + + + +node7->node7 + + + + diff --git a/example/example.org b/example/example.org index 2746053..68aed1e 100644 --- a/example/example.org +++ b/example/example.org @@ -361,6 +361,72 @@ tab b becomes (not a) (negative interaction). Therefore, the influence of a on b is neither activating nor inhibiting. + Here is the full state graph of this network under the asynchronous + dynamics: + #+NAME: simple-bn-sg + #+BEGIN_SRC racket :results silent :var simple-bn=munch-table(simple-bn) +(let* ([bn (nn (unorg simple-bn))] + [bn-asyn (make-asyn-dynamics bn)]) + (dotit (ppsg (build-full-boolean-state-graph bn-asyn)))) + #+END_SRC + + #+BEGIN_SRC dot :file dots/examplem7LpTs.svg :results raw drawer :cmd sfdp :noweb yes +<> + #+END_SRC + + #+RESULTS: + :RESULTS: + [[file:dots/examplem7LpTs.svg]] + :END: + + Alternatively, you may prefer a slighty more compact representation + of Boolean values as 0 and 1: + #+NAME: simple-bn-sg-bool + #+BEGIN_SRC racket :results silent :var simple-bn=munch-table(simple-bn) +(let* ([bn (nn (unorg simple-bn))] + [bn-asyn (make-asyn-dynamics bn)]) + (dotit (ppsgb (build-full-boolean-state-graph bn-asyn)))) + #+END_SRC + + #+BEGIN_SRC dot :file dots/examplex1Irnk.svg :results raw drawer :cmd sfdp :noweb yes +<> + #+END_SRC + + #+RESULTS: + :RESULTS: + [[file:dots/examplex1Irnk.svg]] + :END: + + Consider the following state (appearing in the upper left corner of + the state graph): + + #+NAME: some-state + | a | 0 | + | c | 1 | + | b | 1 | + + These are the states which can be reached from it in at most 2 + steps: + #+NAME: simple-bn-some-state + #+HEADER: :var simple-bn=munch-table(simple-bn) + #+HEADER: :var some-state=munch-table(some-state) + #+BEGIN_SRC racket :results silent +(let* ([bn (nn (unorg simple-bn))] + [bn-asyn (make-asyn-dynamics bn)] + [s0 (stb (unorg some-state))]) + (dotit (ppsgb (dds-build-n-step-state-graph bn-asyn (set s0) 2)))) + #+END_SRC + + #+BEGIN_SRC dot :file dots/examplecHA6gL.svg :results raw drawer :cmd sfdp :noweb yes +<> + #+END_SRC + + #+RESULTS: + :RESULTS: + [[file:dots/examplecHA6gL.svg]] + :END: + + * Local Variables :noexport: # Local Variables: # eval: (auto-fill-mode)