In Boolean logic, a Reed–Muller expansion (or Davio expansion) is a decomposition of a Boolean function.
For a Boolean function
we call
![{\displaystyle {\begin{aligned}f_{x_{i}}(x)&=f(x_{1},\ldots ,x_{i-1},1,x_{i+1},\ldots ,x_{n})\\f_{{\overline {x}}_{i}}(x)&=f(x_{1},\ldots ,x_{i-1},0,x_{i+1},\ldots ,x_{n})\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b1e61ee543339aa35aa3017aa816cb455eb35f19)
the positive and negative cofactors of
with respect to
, and
![{\displaystyle {\begin{aligned}{\frac {\partial f}{\partial x_{i}}}&=f_{x_{i}}(x)\oplus f_{{\overline {x}}_{i}}(x)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0146c5902f141bccb7f13684f8da400dd0731c36)
the boolean derivation of
with respect to
, where
denotes the XOR operator.
Then we have for the Reed–Muller or positive Davio expansion:
![{\displaystyle f=f_{{\overline {x}}_{i}}\oplus x_{i}{\frac {\partial f}{\partial x_{i}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b1b685cf0ea570cbf55fd0007399e6bd8454107a)
Description
This equation is written in a way that it resembles a Taylor expansion of
about
. There is a similar decomposition corresponding to an expansion about
(negative Davio expansion):
![{\displaystyle f=f_{x_{i}}\oplus {\overline {x}}_{i}{\frac {\partial f}{\partial x_{i}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5fa128ae7c607c783020f98b2f9fca1dd3b76ca)
Repeated application of the Reed–Muller expansion results in an XOR polynomial in
:
![{\displaystyle f=a_{1}\oplus a_{2}x_{1}\oplus a_{3}x_{2}\oplus a_{4}x_{1}x_{2}\oplus \ldots \oplus a_{2^{n}}x_{1}\cdots x_{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d5fff8693bca6344d5733146e6f36148b68c26b5)
This representation is unique and sometimes also called Reed–Muller expansion.[1]
E.g. for
the result would be
![{\displaystyle f(x_{1},x_{2})=f_{{\overline {x}}_{1}{\overline {x}}_{2}}\oplus {\frac {\partial f_{{\overline {x}}_{2}}}{\partial x_{1}}}x_{1}\oplus {\frac {\partial f_{{\overline {x}}_{1}}}{\partial x_{2}}}x_{2}\oplus {\frac {\partial ^{2}f}{\partial x_{1}\partial x_{2}}}x_{1}x_{2}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c6b2df44c78bd26fdecf01b3ad1c43a3b4bdc83a)
where
.
For
the result would be
![{\displaystyle f(x_{1},x_{2},x_{3})=f_{{\bar {x}}_{1}{\bar {x}}_{2}{\bar {x}}_{3}}\oplus {\partial f_{{\bar {x}}_{2}{\bar {x}}_{3}} \over \partial x_{1}}x_{1}\oplus {\partial f_{{\bar {x}}_{1}{\bar {x}}_{3}} \over \partial x_{2}}x_{2}\oplus {\partial f_{{\bar {x}}_{1}{\bar {x}}_{2}} \over \partial x_{3}}x_{3}\oplus {\partial ^{2}f_{{\bar {x}}_{3}} \over \partial x_{1}\partial x_{2}}x_{1}x_{2}\oplus {\partial ^{2}f_{{\bar {x}}_{2}} \over \partial x_{1}\partial x_{3}}x_{1}x_{3}\oplus {\partial ^{2}f_{{\bar {x}}_{1}} \over \partial x_{2}\partial x_{3}}x_{2}x_{3}\oplus {\partial ^{3}f \over \partial x_{1}\partial x_{2}\partial x_{3}}x_{1}x_{2}x_{3}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/069f4f04dbac5c3c59fe11c3cbde5b8170005f63)
where
.
Geometric interpretation
This
case can be given a cubical geometric interpretation (or a graph-theoretic interpretation) as follows: when moving along the edge from
to
, XOR up the functions of the two end-vertices of the edge in order to obtain the coefficient of
. To move from
to
there are two shortest paths: one is a two-edge path passing through
and the other one a two-edge path passing through
. These two paths encompass four vertices of a square, and XORing up the functions of these four vertices yields the coefficient of
. Finally, to move from
to
there are six shortest paths which are three-edge paths, and these six paths encompass all the vertices of the cube, therefore the coefficient of
can be obtained by XORing up the functions of all eight of the vertices. (The other, unmentioned coefficients can be obtained by symmetry.)
Paths
The shortest paths all involve monotonic changes to the values of the variables, whereas non-shortest paths all involve non-monotonic changes of such variables; or, to put it another way, the shortest paths all have lengths equal to the Hamming distance between the starting and destination vertices. This means that it should be easy to generalize an algorithm for obtaining coefficients from a truth table by XORing up values of the function from appropriate rows of a truth table, even for hyperdimensional cases (
and above). Between the starting and destination rows of a truth table, some variables have their values remaining fixed: find all the rows of the truth table such that those variables likewise remain fixed at those given values, then XOR up their functions and the result should be the coefficient for the monomial corresponding to the destination row. (In such monomial, include any variable whose value is 1 (at that row) and exclude any variable whose value is 0 (at that row), instead of including the negation of the variable whose value is 0, as in the minterm style.)
Similar to binary decision diagrams (BDDs), where nodes represent Shannon expansion with respect to the according variable, we can define a decision diagram based on the Reed–Muller expansion. These decision diagrams are called functional BDDs (FBDDs).
Derivations
The Reed–Muller expansion can be derived from the XOR-form of the Shannon decomposition, using the identity
:
![{\displaystyle {\begin{aligned}f&=x_{i}f_{x_{i}}\oplus {\overline {x}}_{i}f_{{\overline {x}}_{i}}\\&=x_{i}f_{x_{i}}\oplus (1\oplus x_{i})f_{{\overline {x}}_{i}}\\&=x_{i}f_{x_{i}}\oplus f_{{\overline {x}}_{i}}\oplus x_{i}f_{{\overline {x}}_{i}}\\&=f_{{\overline {x}}_{i}}\oplus x_{i}{\frac {\partial f}{\partial x_{i}}}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eb18248a605eda0d21ea449ce7cdada6acf5f366)
Derivation of the expansion for
:
![{\displaystyle {\begin{aligned}f&=f_{{\bar {x}}_{1}}\oplus x_{1}{\partial f \over \partial x_{1}}\\&={\Big (}f_{{\bar {x}}_{2}}\oplus x_{2}{\partial f \over \partial x_{2}}{\Big )}_{{\bar {x}}_{1}}\oplus x_{1}{\partial {\Big (}f_{{\bar {x}}_{2}}\oplus x_{2}{\partial f \over \partial x_{2}}{\Big )} \over \partial x_{1}}\\&=f_{{\bar {x}}_{1}{\bar {x}}_{2}}\oplus x_{2}{\partial f_{{\bar {x}}_{1}} \over \partial x_{2}}\oplus x_{1}{\Big (}{\partial f_{{\bar {x}}_{2}} \over \partial x_{1}}\oplus x_{2}{\partial ^{2}f \over \partial x_{1}\partial x_{2}}{\Big )}\\&=f_{{\bar {x}}_{1}{\bar {x}}_{2}}\oplus x_{2}{\partial f_{{\bar {x}}_{1}} \over \partial x_{2}}\oplus x_{1}{\partial f_{{\bar {x}}_{2}} \over \partial x_{1}}\oplus x_{1}x_{2}{\partial ^{2}f \over \partial x_{1}\partial x_{2}}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/44c70ec338c85e84323f5e42eb2c3c8211d9471f)
Derivation of the second-order boolean derivative:
![{\displaystyle {\begin{aligned}{\partial ^{2}f \over \partial x_{1}\partial x_{2}}&={\partial \over \partial x_{1}}{\Big (}{\partial f \over \partial x_{2}}{\Big )}={\partial \over \partial x_{1}}(f_{{\bar {x}}_{2}}\oplus f_{x_{2}})\\&=(f_{{\bar {x}}_{2}}\oplus f_{x_{2}})_{{\bar {x}}_{1}}\oplus (f_{{\bar {x}}_{2}}\oplus f_{x_{2}})_{x_{1}}\\&=f_{{\bar {x}}_{1}{\bar {x}}_{2}}\oplus f_{{\bar {x}}_{1}x_{2}}\oplus f_{x_{1}{\bar {x}}_{2}}\oplus f_{x_{1}x_{2}}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c5d2495b62132c4cdb92d9df465338c845ea06b6)
See also
References
- ^ Kebschull, Udo; Schubert, Endric; Rosenstiel, Wolfgang (1992). "Multilevel logic synthesis based on functional decision diagrams". Proceedings of the 3rd European Conference on Design Automation.
Further reading
- Жега́лкин [Zhegalkin], Ива́н Ива́нович [Ivan Ivanovich] (1927). "O Tekhnyke Vychyslenyi Predlozhenyi v Symbolytscheskoi Logykye" О технике вычислений предложений в символической логике [On the technique of calculating propositions in symbolic logic (Sur le calcul des propositions dans la logique symbolique)]. Matematicheskii Sbornik (in Russian and French). 34 (1). Moscow, Russia: 9–28. Mi msb7433. Archived from the original on 2017-10-12. Retrieved 2017-10-12.
- Reed, Irving Stoy (September 1954). "A Class of Multiple-Error Correcting Codes and the Decoding Scheme". IRE Transactions on Information Theory. IT-4: 38–49.
- Muller, David Eugene (September 1954). "Application of Boolean Algebra to Switching Circuit Design and to Error Detection". IRE Transactions on Electronic Computers. EC-3: 6–12.
- Kebschull, Udo; Rosenstiel, Wolfgang (1993). "Efficient graph-based computation and manipulation of functional decision diagrams". Proceedings of the 4th European Conference on Design Automation: 278–282.
- Maxfield, Clive "Max" (2006-11-29). "Reed-Muller Logic". Logic 101. EETimes. Part 3. Archived from the original on 2017-04-19. Retrieved 2017-04-19.
- Steinbach, Bernd [in German]; Posthoff, Christian (2009). "Preface". Logic Functions and Equations - Examples and Exercises (1st ed.). Springer Science + Business Media B. V. p. xv. ISBN 978-1-4020-9594-8. LCCN 2008941076.
- Perkowski, Marek A.; Grygiel, Stanislaw (1995-11-20). "6. Historical Overview of the Research on Decomposition". A Survey of Literature on Function Decomposition. Version IV. Functional Decomposition Group, Department of Electrical Engineering, Portland University, Portland, Oregon, USA. pp. 21–22. CiteSeerX 10.1.1.64.1129. (188 pages)