2020-11-29 17:43:20 +01:00
|
|
|
#lang scribble/manual
|
2022-04-27 00:10:13 +02:00
|
|
|
@(require scribble/example racket/sandbox
|
|
|
|
(for-label typed/racket/base
|
|
|
|
graph
|
|
|
|
(only-in typed/graph Graph)
|
|
|
|
(submod "../networks.rkt" typed)
|
|
|
|
"../utils.rkt"
|
|
|
|
"../functions.rkt"))
|
|
|
|
|
|
|
|
@(define networks-evaluator
|
|
|
|
(parameterize ([sandbox-output 'string]
|
|
|
|
[sandbox-error-output 'string]
|
|
|
|
[sandbox-memory-limit 50])
|
|
|
|
(make-evaluator 'typed/racket #:requires '("networks.rkt"))))
|
|
|
|
|
|
|
|
@(define-syntax-rule (ex . args)
|
|
|
|
(examples #:eval networks-evaluator . args))
|
2020-11-29 17:43:20 +01:00
|
|
|
|
|
|
|
@title[#:tag "networks"]{dds/networks: Formal Dynamical Networks}
|
|
|
|
|
2022-04-27 00:10:13 +02:00
|
|
|
@defmodule[(submod dds/networks typed)]
|
2020-11-29 22:01:18 +01:00
|
|
|
|
|
|
|
This module provides definitions for and analysing network models. A network
|
|
|
|
is a set of variables which are updated according to their corresponding update
|
|
|
|
functions. The variables to be updated at each step are given by the mode.
|
|
|
|
This model can generalise Boolean networks, TBANs, multivalued networks, etc.
|
|
|
|
|
2020-11-29 22:11:03 +01:00
|
|
|
@section[#:tag "networks-basics"]{Basic definitions}
|
2020-11-29 22:01:18 +01:00
|
|
|
|
2022-04-27 18:45:09 +02:00
|
|
|
@defform[#:kind "type" (State a)]{
|
2022-04-27 00:10:13 +02:00
|
|
|
|
|
|
|
An immutable mapping (a hash table) assigning elements of type @racket[a] to
|
|
|
|
the variables. A synonym of @racket[VariableMapping].
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2022-04-27 18:45:09 +02:00
|
|
|
@defform[#:kind "type" (UpdateFunction a)]{
|
2022-04-27 00:15:03 +02:00
|
|
|
|
|
|
|
An update function is a function computing a value from the given
|
|
|
|
state. This is a synonym of the type @racket[(-> (State a) a)].
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2022-04-27 18:45:09 +02:00
|
|
|
@defform[#:kind "type" (DomainMapping a)]{
|
2022-04-27 00:15:03 +02:00
|
|
|
|
|
|
|
A domain mapping is a hash table mapping variables to the lists of values in
|
|
|
|
their domains.
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-11-29 22:01:18 +01:00
|
|
|
@section{Syntactic description of networks}
|
|
|
|
|
|
|
|
@section{Inferring interaction graphs}
|
|
|
|
|
|
|
|
This section provides inference of both unsigned and signed interaction graphs.
|
|
|
|
Since the inference of signed interaction graphs is based on analysing the
|
|
|
|
dynamics of the networks, it may be quite resource-consuming, especially since
|
|
|
|
I allow any syntactic forms in the definitions of the functions.
|
|
|
|
|
|
|
|
Note the fine difference between @emph{syntactic} interaction graphs and
|
|
|
|
interaction graphs generated from the dynamics of the network.
|
|
|
|
Syntactic interaction graphs are based on the whether a variable appears or not
|
|
|
|
in the form of the function for another variable. On the other hand, the
|
|
|
|
normal, conventional interaction graph records the fact that one variable has
|
|
|
|
an impact on the dynamics of the other variable. Depending on the model, these
|
|
|
|
may or may not be the same.
|
|
|
|
|
|
|
|
@section{Dynamics of networks}
|
|
|
|
|
|
|
|
This section contains definitions for building and analysing the dynamics
|
|
|
|
of networks.
|
|
|
|
|
|
|
|
@section{Tabulating functions and networks}
|
|
|
|
|
|
|
|
@section{Constructing functions and networks}
|
|
|
|
|
|
|
|
@section{Random functions and networks}
|
|
|
|
|
|
|
|
@section{TBF/TBN and SBF/SBN}
|
|
|
|
|
|
|
|
This section defines threshold Boolean functions (TBF) and networks (TBN), as
|
|
|
|
well as sign Boolean functions (SBF) and networks (SBN).
|