В более общем случае.
Спасибо!
Я же правильно понимаю, что этот алгоритм применим для функций в ДНФ, не обязательно в СДНФ?
-- 01.10.2025, 08:16 --Пара слов, откуда задача.
Есть объекты, у которых есть

признаков.
Имеется описание классификации этих объектов
на естественном языке.
Задача: формализовать классификацию таким образом, чтобы можно было быстро (в реалтайм) классифицировать объекты.
Такие задачи могут повторяться (с новым описанием классификации).
Так как описание на естественном языке (и формулируется человеком), можно ожидать:
1. что она будет в виде
"Класс А: условия отнесения к классу
Класс Б: условия отнесения к классу
и т.д.
"
Вообще говоря, в условиях одного класса может (но не обязательно) использоваться отрицание условий другого класса:
"Класс А: условия отнесения к классу
Класс Б: условия отнесения к классу - объект не попал в класс А и выполнены условия...
и т.д.
"
2. Количество классов будет небольшим. Скажем до 10, может быть до 20.
3. Количество условий в классе будет небольшим - человек их должен в память поместить

ИМХО, в таком случае удобно описывать условия в виде набора булевых функций в ДНФ (по одной на каждый класс).
Проверять классификацию на полноту необязательно - есть класс "другие".
А вот убедиться, что получившаяся классификация - классификация (нет набора признаков, который относится к более чем одному классу) необходимо.