Найти упрощенную сумму произведений логического выражения - PullRequest
2 голосов
/ 30 апреля 2011

Просто возникли проблемы с простым упрощением. Я делаю упрощение для большинства декодеров с 3 входами A, B и C. Его выход Y принимает 1, если 2 или все 3 входа принимают 1. Y принимает 0 в противном случае. Выберите правильную функцию переключения Y = f (A, B, C).

Итак, после составления таблицы истинности я обнаружил, что каноническая сумма продуктов достигает

NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C

Это, упрощенно, по-видимому, доходит до Y = A * B + B * C + A * C

Какие шаги предпринимаются, чтобы просто выразить подобное? Как это сделать? Как это значение было получено в этом случае?

Ответы [ 4 ]

5 голосов
/ 30 апреля 2011

Во-первых, обратите внимание, что для логического выражения:

A= A + A

Теперь посмотрите, что

NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C
= NOT(A).B.C + A.NOT(B).C + A.B.NOT(C) + A.B.C + A.B.C + A.B.C
= (NOT(A)+A).B.C + A.(NOT(B)+B).C + A.B.(NOT(C)+C)
= B.C + A.C + A.B
2 голосов
/ 30 апреля 2011

Между прочим WolframAlpha отлично подходит для выполнения (проверки) логических выражений, в этом случае формат для вашего примера:

~A && B && C || A && ~B && C || A && B && ~C || A && B && C

Также ваше конкретное выражение на самом деле на этостраница в качестве примера, сделано иначе, чем другой ответ.

0 голосов
/ 30 апреля 2011

Другое объяснение.

Имеем (1):

(not(A) and B and C ) or (A and not(B) and C) or (A and B and not C) or (A and B and C).

Мы знаем, что:

A = A or A.

Таким образом, мы можем переписать (1) в (2):

(not(A) and B and C ) or (A and B and C) or
(A and not(B) and C) or (A and B and C) or
(A and B and not C) or (A and B and C)

Мы также знаем, что:

(A and B) or (A and not B) = A and (B or not B) = A

Таким образом, мы можем переписать (2) в (3):

(B and C) or (A and C) or (A and B)

Идея состоит в том, чтобы найти группы, которые можно (частично) исключить для упрощения уравнения.

0 голосов
/ 30 апреля 2011

Вам было бы полезно понять некоторые основные логические понятия:

  • Законы Де Моргана объясняют, как переводить термины ANDed в термины ORed (и наоборот).Это очень мощная концепция, которую стоит изучить, она позволяет переводить логическое выражение в чистую NAND или чистую NOR форму, для которой есть очень веские основания

  • A Карта Карно может использоваться для визуального перевода логических выражений в их первую каноническую форму.Использование карты Карно нецелесообразно во многих случаях из реальной жизни, но действительно отличная методика обучения

Один простой способ найти первую каноническую форму для любого логического выражения - создать соответствующую таблицу истинности изатем проверьте входные данные, которые приводят к выходному значению 1.

Для каждой строки в таблице истинности, где выходные данные равны 1, вы можете относительно легко сформировать логическое выражение только для этой строки.Полное логическое выражение приходит от ORing всех выражений для каждой строки.Это будет минимальное выражение (могут быть другие, ни одно не будет более минимальным).

...