Level-p-complexity of Boolean functions using thinning, memoization, and polynomials
From MaRDI portal
Publication:6131903
DOI10.1017/S0956796823000102arXiv2302.02473MaRDI QIDQ6131903FDOQ6131903
Authors: Patrik Jansson
Publication date: 18 April 2024
Published in: Journal of Functional Programming (Search for Journal in Brave)
Abstract: This paper describes a purely functional library for computing level--complexity of Boolean functions, and applies it to two-level iterated majority. Boolean functions are simply functions from bits to one bit, and they can describe digital circuits, voting systems, etc. An example of a Boolean function is majority, which returns the value that has majority among the input bits for odd . The complexity of a Boolean function measures the cost of evaluating it: how many bits of the input are needed to be certain about the result of . There are many competing complexity measures but we focus on level--complexity -- a function of the probability that a bit is 1. The level--complexity is the minimum expected cost when the input bits are independent and identically distributed with Bernoulli() distribution. We specify the problem as choosing the minimum expected cost of all possible decision trees -- which directly translates to a clearly correct, but very inefficient implementation. The library uses thinning and memoization for efficiency and type classes for separation of concerns. The complexity is represented using polynomials, and the order relation used for thinning is implemented using polynomial factorisation and root-counting. Finally we compute the complexity for two-level iterated majority and improve on an earlier result by J.~Jansson.
Full work available at URL: https://arxiv.org/abs/2302.02473
This page was built for publication: Level-p-complexity of Boolean functions using thinning, memoization, and polynomials
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6131903)