Шаг 1. Построение таблицы Квайна
Нужно знать полное множество простых импликант функции f. Они образуют строки таблицы Квайна, а столбцы соответствуют всем \(\alpha\in N_f\). Единица на пересечении означает, что данная импликанта покрывает данный единичный набор.1
Шаг 2. Функция покрытия
Пусть \(y_i\) означает выбор i-й строки. Для каждого столбца j записывают дизъюнкцию всех \(y_i\), для которых M[i,j]=1. Конъюнкция таких дизъюнкций по всем столбцам и есть функция покрытия:
\(F(y)=\bigwedge_j(\bigvee_{i:M[i,j]=1}y_i)\). 1
Шаг 3. Перечисление тупиковых покрытий
КНФ F раскрывают в ДНФ. Затем удаляют повторяющиеся множители и поглощаемые конъюнкции. Полученная сокращённая ДНФ F состоит из всех её простых импликант. Нижние единицы F, а значит и эти простые импликанты, взаимно однозначно соответствуют тупиковым покрытиям исходной матрицы.1
Шаг 4. Возврат к ДНФ функции f
Если простая импликанта функции покрытия имеет вид \(y_i1\ldots y_ir\), то строки i1,…,ir образуют тупиковое покрытие таблицы Квайна. Следовательно, ДНФ \(K_i1\vee \ldots \vee K_ir\) является тупиковой ДНФ f. Повторив это для всех конъюнктов сокращённой ДНФ F, получаем все тупиковые ДНФ.1
Размер задачи иногда уменьшают заранее. Ядровые грани входят во все тупиковые ДНФ, а регулярные не входят ни в одну. После их учёта остаётся меньшая задача покрытия для нерешённой части \(N_f\).1