Welcome to hypercone.com on July 10 2009.
This is an internet experiment running to monitor browsing habbits of individuals through wikipedia contents.

Algebraic normal form

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In Boolean logic, the algebraic normal form (ANF) is a method of standardizing and normalizing logical formulas. As a normal form, it can be used in automated theorem proving (ATP), but is more commonly used in the design of cryptographic random number generators, specifically linear feedback shift registers (LFSRs). A logical formula is considered to be in ANF if and only if it is a single algebraic sum (XOR) of a constant a0 and one or more conjunctions of the function arguments. ANF is also known as "Zhegalkin polynomials" (Russian: полиномы Жегалкина) and as "Positive Polarity (or Parity) Reed-Muller" expression.

Putting a formula into ANF makes it easy to identify linear functions, as is needed for linear feedback in LFSRs: a linear function is one that is a sum of literals. Properties of nonlinear feedback shift registers can also be deduced from certain properties of the feedback function in ANF.

The general ANF can be written as:

f(x_1, x_2, \ldots, x_n) = \! a_0 + \!
a_1x_1 + a_2x_2 + \cdots + a_nx_n + \!
a_{1,2}x_1x_2 + \cdots + a_{n-1,n}x_{n-1}x_n + \!
\cdots + \!
a_{1,2,\ldots,n}x_1x_2\ldots x_n \!

where a_0, a_1, \ldots, a_{1,2,\ldots,n} \in \{0,1\}^* fully describes f.

For each function f there is a unique ANF. There are only four functions with one argument: f(x) = 0, f(x) = 1, f(x) = x, f(x) = 1 + x (all of them are given in the ANF). To represent a function with multiple arguments one can use the following equality: f(x_1,x_2,\ldots,x_n) = g(x_2,\ldots,x_n) + x_1 h(x_2,\ldots,x_n), where g(x_2,\ldots,x_n) = f(0,x_2,\ldots,x_n) and h(x_2,\ldots,x_n) = f(0,x_2,\ldots,x_n) + f(1,x_2,\ldots,x_n). Indeed, if x1 = 0 then x1h = 0 and so f(0,\ldots) = f(0,\ldots); if x1 = 1 then x1h = h and so f(1,\ldots) = f(0,\ldots) + f(0,\ldots) + f(1,\ldots). Since both g and h have less arguments than f it follows that using this process recursively we will finish with functions with one variable. For example, let us construct ANF of f(x,y)= x \lor y (logical or): f(x,y) = f(0,y) + x(f(0,y) + f(1,y)); since f(0,y)=0 \lor y = y and f(1,y)=1 \lor y = 1, it follows that f(x,y) = y + x(y + 1); by opening the parentheses we get the final ANF: f(x,y) = y + xy + x = x + y + xy.

[edit] See also


Personal tools
Languages

Visit joltnews for the latest headlines
Visit bloit.com for company information
Geed Media does computer consulting on long island.
This page viewed times. See Logs