В том стиле, в котором вы излагали выше.
:lol1:
ОК, пусть у нас есть сокращённая ДНФ, и наша задача — получить какую-нибудь минимальную.
Сокращённая ДНФ — это, по сути, множество кандидатов на попадание в минимальную ДНФ. Ни в какой минимальной ДНФ не будет элементарных конъюнкций, не встречающихся в сокращённой. Значит, нам нужно просто перебрать все «подмножества» сокращённой ДНФ, а затем подсчитать и сравнить длины тех из них, которые по-прежнему ухитряются покрывать все предназначенные к этому точки.
Нашу задачу облегчает то, что любая минимальная ДНФ обязана содержать все элементарные конъюнкции из ядра. Нам не придётся рассматривать те подмножества сокращённой ДНФ, которые не содержат хотя бы одну из них. Ибо покрыть все предназначенные к тому точки этим подмножествам не удастся.
Да, кстати, равным образом не имеет смысла рассматривать подмножества сокращённой ДНФ, не являющихся
тупиковыми, т. е. такие, из которых можно выбросить какие-то элементарные конъюнкции, а они при этом по-прежнему будут покрывать все предназначенные к тому точки.
~~~~
Давайте теперь рассмотрим на Вашем примере.
Сокращённая ДНФ — это
. Ядро — это
. Значит, нужно рассмотреть всего четыре подмножества сокращённой ДНФ, что мы и сделаем.
К сожалению, голым ядром покрыть все точки не удалось, и мы даже не будем считать длину этой «ядровой ДНФ».
Вот это уже лучше. Удалось покрыть все точки, и эта ДНФ является тупиковой: выкидывать мы пробовали, а выкидывать ядровые грани лучше и не пытаться. Запомним длину этой тупиковой ДНФ.
Ещё одна тупиковая ДНФ. Запомним и её длину тоже.
Считать длину этой ДНФ неинтересно, поскольку она не тупиковая: можно ведь выкинуть из неё что-нибудь и получить формулы 2 или 3, длины которых меньше.
Итак, у нас есть две тупиковых ДНФ: 2 и 3. Длины их, в соответствии с принятым способом подсчёта, одинаковы. Значит, они обе минимальные. Но мне почему-то больше нравится 2
.