All visualisations will be done with Clojure and Graphviz. In order to create set theoretic functions, we need the data of an input set, an output set, and a Clojure function or map. This ensures that we can handle functions that are not surjective. But in the easier case where they are surjective, we can just get a function using the to-function method. The elements of the information flow lattices are partition pairs, which are vectors of disjoint families of sets.
Small functions:
(SetFunction. #{0} #{0} {0 0})

(SetFunction. #{0 1} #{0} {0 0, 1 0})

(SetFunction. #{0 1} #{0 1} {0 0, 1 1})

(SetFunction. #{0 1} #{0 1} {0 0, 1 0})

(SetFunction. #{0 1 2} #{0} {0 0, 1 0, 2 0})

(SetFunction. #{0 1} #{0 1 2} {0 0, 1 1})

(SetFunction. #{0 1 2} #{0 2} {0 0, 1 0, 2 2})

(SetFunction. #{0 1 2} #{0 1 2} {0 0, 1 1, 2 2})

Intermediate sized functions:
(to-function {0 0, 1 0, 2 0, 3 0})

(to-function {0 0, 1 0, 2 2, 3 2})
(to-function {0 0, 1 0, 2 0, 3 3})

(to-function {0 0, 1 1, 2 2, 3 2})

(to-function {0 0, 1 1, 2 2, 3 3})

(to-function {0 0, 1 0, 2 0, 3 0, 4 0})
(to-function {0 0, 1 0, 2 2, 3 2, 4 2})

(to-function {0 0, 1 0, 2 0, 3 0, 4 4})

(to-function {0 0, 1 0, 2 0, 3 3, 4 4})

(to-function {0 0, 1 1, 2 1, 3 3, 4 3})

(to-function {0 0, 1 1, 2 2, 3 3, 4 3})

(to-function {0 0, 1 1, 2 2, 3 3, 4 4})

By generality, functions larger then these have information flow lattices even if we cannot visualize them. The algebraic theory of information ensures that we can exist. Using mathematical techniques we can describe their properties even in the infinite case.
References:
[1] Hartmanis, J., & Stearns, R. E. (1966). Algebraic structure theory of sequential machines. Prentice-Hall.
[2] Lausmaa, T. (2005). Extropy-based quantitative evaluation of finite functions. Proceedings of the Estonian Academy of Sciences. Physics. Mathematics, 54(2), 67. https://doi.org/10.3176/phys.math.2005.2.01
No comments:
Post a Comment