Алгоритм упрощения CNF

Учитывая, что логическое выражение имеет конъюнктивную нормальную форму: существует ли "простой" алгоритм, чтобы упростить его, сохраняя при этом в CNF?

В частности, какое свойство следующего выражения вызывает это упрощение?

(~a+b+c)(a+~b+c)(a+~c)

упрощает до...

(~a+b+c)(a+~b)(a+~c)

1 ответ

Решение

Карта Карно вашего примера:

Чтобы получить упрощенный DNF, ячейки "1" сгруппированы так, чтобы получить покрытие с минимальным количеством минут.

Точно так же можно сгруппировать ячейки "0", чтобы получить обратное покрытие с минимальным количеством членов.

Обратная карта:

Литералы результирующих терминов должны быть инвертированы, чтобы достичь желаемого минимума CNF

(a + ~ b) (a + ~ c) (~ a + b + c)

В этой процедуре используется тот факт, что инверсия minterm является maxterm (обычно называемым предложением CNF) с инвертированными литералами.

Другие вопросы по тегам