Функция покрытия
Пусть множество N={α1,…,αs} покрывается системой подмножеств N1,…,Np. Этой системе сопоставляют матрицу \(M\in B^{p,s}\): элемент M[i,j] равен 1 тогда и только тогда, когда \(\alpha_j\in N_i\). Набор строк I покрывает M, если в каждом столбце имеется единица хотя бы в одной строке из I. Покрытие называют тупиковым, если никакое его собственное подмножество уже не является покрытием.1
Каждой строке i сопоставим переменную \(y_i\). Функция покрытия F(y1,…,yp) принимает значение 1 тогда и только тогда, когда строки с \(y_i=1\) покрывают все столбцы. Для неё справедливо представление
\(F(y)=\bigwedge_{j=1}^s (\bigvee_{i: M[i,j]=1} y_i)\). 1
Каждая скобка требует выбрать хотя бы одну строку, закрывающую соответствующий столбец. После раскрытия скобок, приведения подобных и поглощений получается сокращённая ДНФ функции F. Её простые импликанты однозначно задают все тупиковые покрытия матрицы.1
Таблица Квайна
Для функции f берут \(N=N_f\), а в качестве покрывающих множеств — все максимальные грани \(N_f\), то есть множества единиц всех простых импликант K1,…,Kp. Матрица инцидентности этого покрытия называется таблицей Квайна. Строка i показывает, какие единичные наборы покрывает \(K_i\).1
Если строки i1,…,ir образуют тупиковое покрытие таблицы Квайна, то \(K_i1\vee \ldots \vee K_ir\) является тупиковой ДНФ функции f. Обратно, любая тупиковая ДНФ состоит из простых импликант и задаёт тупиковое покрытие таблицы. Поэтому после построения сокращённой ДНФ задача перечисления и последующего сравнения тупиковых ДНФ становится чистой задачей о покрытиях.1