Logical matrix
A logical matrix, binary matrix, relation matrix, Boolean matrix, or (0,1) matrix is a matrix with entries from the Boolean domain B = {0, 1}. Such a matrix can be used to represent a binary relation between a pair of finite sets.
Contents
Matrix representation of a relation
If R is a binary relation between the finite indexed sets X and Y (so R ⊆ X×Y), then R can be represented by the adjacency matrix M whose row and column indices index the elements of X and Y, respectively, such that the entries of M are defined by:
In order to designate the row and column numbers of the matrix, the sets X and Y are indexed with positive integers: i ranges from 1 to the cardinality (size) of X and j ranges from 1 to the cardinality of Y. See the entry on indexed sets for more detail.
Example
The binary relation R on the set {1, 2, 3, 4} is defined so that aRb holds if and only if a divides b evenly, with no remainder. For example, 2R4 holds because 2 divides 4 without leaving a remainder, but 3R4 does not hold because when 3 divides 4 there is a remainder of 1. The following set is the set of pairs for which the relation R holds.
- {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 4), (3, 3), (4, 4)}.
The corresponding representation as a Boolean matrix is:
Other examples
- A permutation matrix is a (0,1)-matrix, all of whose columns and rows each have exactly one nonzero element.
- A Costas array is a special case of a permutation matrix
- An incidence matrix in combinatorics and finite geometry has ones to indicate incidence between points (or vertices) and lines of a geometry, blocks of a block design, or edges of a graph (mathematics)
- A design matrix in analysis of variance is a (0,1)-matrix with constant row sums.
- An adjacency matrix in graph theory is a matrix whose rows and columns represent the vertices and whose entries represent the edges of the graph. The adjacency matrix of a simple, undirected graph is a binary symmetric matrix with zero diagonal.
- The biadjacency matrix of a simple, undirected bipartite graph is a (0,1)-matrix, and any (0,1)-matrix arises in this way.
- The prime factors of a list of m square-free, n-smooth numbers can be described as a m×π(n) (0,1)-matrix, where π is the prime-counting function and aij is 1 if and only if the jth prime divides the ith number. This representation is useful in the quadratic sieve factoring algorithm.
- A bitmap image containing pixels in only two colors can be represented as a (0,1)-matrix in which the 0's represent pixels of one color and the 1's represent pixels of the other color.
- Using binary matrix to check the game rules in the game of Go [1]
Some properties
The matrix representation of the equality relation on a finite set is an identity matrix, that is, one whose entries on the diagonal are all 1, while the others are all 0.
If the Boolean domain is viewed as a semiring, where addition corresponds to logical OR and multiplication to logical AND, the matrix representation of the composition of two relations is equal to the matrix product of the matrix representations of these relation. This product can be computed in expected time O(n2).[1]
Frequently operations on binary matrices are defined in terms of modular arithmetic mod 2—that is, the elements are treated as elements of the Galois field GF(2) = ℤ2. They arise in a variety of representations and have a number of more restricted special forms. They are applied e.g. in XOR-satisfiability.
The number of distinct m-by-n binary matrices is equal to 2mn, and is thus finite.
See also
Wikimedia Commons has media related to Binary matrix. |
- List of matrices
- Binatorix (a binary De Bruijn torus)
- Redheffer matrix
- Relation algebra
Notes
- ↑ Lua error in package.lua at line 80: module 'strict' not found. — The algorithm relies on addition being idempotent, cf. p.134 (bottom).
References
- Lua error in package.lua at line 80: module 'strict' not found., section 31.3, Binary Matrices
- Lua error in package.lua at line 80: module 'strict' not found.
External links
- Lua error in package.lua at line 80: module 'strict' not found.