Type make-boolean-network-form.
This commit is contained in:
parent
7a3cbaa1af
commit
871a923842
2 changed files with 25 additions and 16 deletions
31
networks.rkt
31
networks.rkt
|
@ -20,7 +20,7 @@
|
||||||
update-function-form->update-function/boolean
|
update-function-form->update-function/boolean
|
||||||
update-function-form->update-function/01
|
update-function-form->update-function/01
|
||||||
network-form->network/any network-form->network/boolean
|
network-form->network/any network-form->network/boolean
|
||||||
network-form->network/01
|
network-form->network/01 make-boolean-network-form
|
||||||
)
|
)
|
||||||
|
|
||||||
(define-type (State a) (VariableMapping a))
|
(define-type (State a) (VariableMapping a))
|
||||||
|
@ -212,6 +212,19 @@
|
||||||
'b '(0 1)))))
|
'b '(0 1)))))
|
||||||
(define s (hash 'a 1 'b 1))
|
(define s (hash 'a 1 'b 1))
|
||||||
(check-equal? ((hash-ref (network-functions bn) 'a) s) 1)))
|
(check-equal? ((hash-ref (network-functions bn) 'a) s) 1)))
|
||||||
|
|
||||||
|
(: make-boolean-network-form (-> (VariableMapping UpdateFunctionForm)
|
||||||
|
(NetworkForm Boolean)))
|
||||||
|
(define (make-boolean-network-form forms)
|
||||||
|
(network-form forms (make-boolean-domains (hash-keys forms))))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(test-case "make-boolean-network-form"
|
||||||
|
(check-equal? (make-boolean-network-form (hash 'a '(and a b)
|
||||||
|
'b '(not b)))
|
||||||
|
(network-form
|
||||||
|
'#hash((a . (and a b)) (b . (not b)))
|
||||||
|
'#hash((a . (#f #t)) (b . (#f #t)))))))
|
||||||
)
|
)
|
||||||
|
|
||||||
(require 'typed)
|
(require 'typed)
|
||||||
|
@ -228,8 +241,7 @@
|
||||||
[struct dynamics ([network network?]
|
[struct dynamics ([network network?]
|
||||||
[mode mode?])])
|
[mode mode?])])
|
||||||
;; Functions
|
;; Functions
|
||||||
(contract-out [make-boolean-network-form (-> variable-mapping? network-form?)]
|
(contract-out [forms->boolean-network (-> variable-mapping? network?)]
|
||||||
[forms->boolean-network (-> variable-mapping? network?)]
|
|
||||||
[list-syntactic-interactions (-> network-form? variable? (listof variable?))]
|
[list-syntactic-interactions (-> network-form? variable? (listof variable?))]
|
||||||
[build-syntactic-interaction-graph (-> network-form? graph?)]
|
[build-syntactic-interaction-graph (-> network-form? graph?)]
|
||||||
[interaction? (-> network? variable? variable? boolean?)]
|
[interaction? (-> network? variable? variable? boolean?)]
|
||||||
|
@ -376,19 +388,6 @@
|
||||||
|
|
||||||
(define update-function-form? any/c)
|
(define update-function-form? any/c)
|
||||||
|
|
||||||
;;; Build a Boolean network form from a given mapping assigning forms
|
|
||||||
;;; to variables.
|
|
||||||
(define (make-boolean-network-form forms)
|
|
||||||
(network-form forms (make-boolean-domains (hash-keys forms))))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(test-case "make-boolean-network-form"
|
|
||||||
(check-equal? (make-boolean-network-form (hash 'a '(and a b)
|
|
||||||
'b '(not b)))
|
|
||||||
(network-form
|
|
||||||
'#hash((a . (and a b)) (b . (not b)))
|
|
||||||
'#hash((a . (#f #t)) (b . (#f #t)))))))
|
|
||||||
|
|
||||||
;;; Build a Boolean network from a given mapping assigning forms
|
;;; Build a Boolean network from a given mapping assigning forms
|
||||||
;;; to variables.
|
;;; to variables.
|
||||||
(define forms->boolean-network
|
(define forms->boolean-network
|
||||||
|
|
|
@ -310,6 +310,16 @@ domains are expressed as @tt{{0,1}}.
|
||||||
'b '(0 1))))
|
'b '(0 1))))
|
||||||
]}
|
]}
|
||||||
|
|
||||||
|
@defproc[(make-boolean-network-form [forms (VariableMapping UpdateFunctionForm)])
|
||||||
|
(NetworkForm Boolean)]{
|
||||||
|
|
||||||
|
Build a Boolean network form from a given mapping assigning forms to variables.
|
||||||
|
|
||||||
|
@ex[
|
||||||
|
(make-boolean-network-form (hash 'a '(and a b)
|
||||||
|
'b '(not b)))
|
||||||
|
]}
|
||||||
|
|
||||||
@section{Inferring interaction graphs}
|
@section{Inferring interaction graphs}
|
||||||
|
|
||||||
This section provides inference of both unsigned and signed interaction graphs.
|
This section provides inference of both unsigned and signed interaction graphs.
|
||||||
|
|
Loading…
Reference in a new issue