当前位置: X-MOL 学术Automatica › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Revealing the canalizing structure of Boolean functions: Algorithms and applications
Automatica ( IF 6.4 ) Pub Date : 2022-09-28 , DOI: 10.1016/j.automatica.2022.110630
Elena Dimitrova , Brandilyn Stigler , Claus Kadelka , David Murrugarra

Boolean functions can be represented in many ways including logical forms, truth tables, and polynomials. Additionally, Boolean functions have different canonical representations such as minimal disjunctive normal forms. Another canonical representation is based on the polynomial representation of Boolean functions and the biologically motivated concept of canalization: any Boolean function can be written as a nested product of canalizing layers and a polynomial that contains the variables that are never canalizing. In this paper we study the problem of identifying the canalizing layers of a Boolean function. First, we show that the problem of finding the canalizing layers is NP-hard. Second, we present several algorithms for finding the canalizing layers, discuss their complexities, and compare their performances. Third, we exhibit how the canalizing layers format can be used to find a disjunctive normal form for any nested canalizing function. Another application deals with the reverse engineering of Boolean networks with a prescribed layering format. Implementations of the developed algorithms in Python and in the computer algebra system Macaulay2 are available at https://github.com/ckadelka/BooleanCanalization.



中文翻译:

揭示布尔函数的管道化结构:算法和应用

布尔函数可以用多种方式表示,包括逻辑形式、真值表和多项式。此外,布尔函数具有不同的规范表示,例如最小析取范式。另一种规范表示基于布尔函数的多项式表示和渠化的生物学动机概念:任何布尔函数都可以写成渠化层的嵌套乘积和包含从不渠化的变量的多项式。在本文中,我们研究了识别布尔函数的渠道层的问题。首先,我们证明了寻找运河层的问题是NP-难的。其次,我们提出了几种寻找渠道层的算法,讨论了它们的复杂性,并比较了它们的性能。第三,我们展示了如何使用运河化层格式为任何嵌套的运河化函数找到析取范式。另一个应用程序处理具有规定分层格式的布尔网络的逆向工程。在 Python 和计算机代数系统 Macaulay2 中开发的算法的实现可在 https://github.com/ckadelka/BooleanCanalization 获得。

更新日期:2022-09-29
down
wechat
bug