Я как бы ломал голову, пытаясь найти способ сделать это ... Представления AND в булевых уравнениях были достаточно легкими, как и представления NOT, но процессы OR убивали меня ...
Сначала я не осознавал, что эти булевы уравнения могут быть решены, чтобы исключить ссылки ИЛИ на формат, который было легче перевести арифметически ...
Процесс
- Мы берем наше логическое уравнение:
(w AND NOT(x) AND NOT(y)) OR (w AND NOT(z)) OR (NOT(w) AND x AND z) OR (NOT(w) AND y) OR (x AND y) OR (NOT(x) AND NOT(z))
- Затем мы вставляем его в движок WolframAlpha.com ... Я не осознавал, пока не проверил, что WolframAlpha способен переписывать логические уравнения ... И он также мог переписывать их с уважение только к воротам AND и NOT ... В результате мое уравнение было переписано как
¬(w ∧ x ∧ ¬y ∧ z) ∧ ¬(w ∧ ¬x ∧ y ∧ z) ∧ ¬(¬w ∧ x ∧ ¬y ∧ ¬z) ∧ ¬(¬w ∧ ¬x ∧ ¬y ∧ z)
- Теперь, когда мое булево уравнение было переписано относительно логических элементов И, а НЕ, я преобразовал символы обратно в английские эквиваленты, чтобы у меня не было мигрени, читающей его:
NOT(w AND x AND NOT(y) AND z) AND NOT(w AND NOT(x) AND y AND z) AND NOT(NOT(w) AND x AND NOT(y) AND NOT(z)) AND NOT(NOT(w) AND NOT(x) AND NOT(y) AND z)
- Теперь, используя арифметические правила, о которых я упоминал в своем первоначальном посте, выписал арифметический эквивалент:
(1-(w*x*(1-y)*z))*(1-(w*(1-x)*y*z))*(1-((1-w)*x*(1-y)*(1-z)))*(1-((1-w)*(1-x)*(1-y)*z))
5. Затем я сунул это обратно в WolframAlpha и стал ждать ...
То, что получилось, было немного ... неожиданно:
Я знал, что это займет некоторое время, чтобы упростить ...
К счастью, у WolframAlpha есть возможность экспортировать определенные ответы в простой текст ... Я воспользовался этим, скопировал и вставил его в текстовый редактор ...
x^4y^4z^4w^4-2x^3y^4z^4w^4+x^2y^4z^4w^4-3x^4y^3z^4w^4+6x^3y^3z^4w^4
-3x^2y^3z^4w^4+3x^4y^2z^4w^4-6x^3y^2z^4w^4+3x^2y^2z^4w^4-x^4yz^4w^4
+2x^3yz^4w^4-x^2yz^4w^4-x^4y^4z^3w^4+2x^3y^4z^3w^4-x^2y^4z^3w^4
+3x^4y^3z^3w^4-6x^3y^3z^3w^4+3x^2y^3z^3w^4-3x^4y^2z^3w^4+6x^3y^2z^3w^4
-3x^2y^2z^3w^4+x^4yz^3w^4-2x^3yz^3w^4+x^2yz^3w^4-2x^4y^4z^4w^3+4x^3y^4z^4w^3
-2x^2y^4z^4w^3+6x^4y^3z^4w^3-12x^3y^3z^4w^3+6x^2y^3z^4w^3-6x^4y^2z^4w^3
+12x^3y^2z^4w^3-6x^2y^2z^4w^3+2x^4yz^4w^3-4x^3yz^4w^3+2x^2yz^4w^3+2x^4y^4z^3w^3
-4x^3y^4z^3w^3+2x^2y^4z^3w^3-x^3z^3w^3-6x^4y^3z^3w^3+16x^3y^3z^3w^3
-12x^2y^3z^3w^3+2xy^3z^3w^3+x^2z^3w^3+6x^4y^2z^3w^3-21x^3y^2z^3w^3
+19x^2y^2z^3w^3-4xy^2z^3w^3-2x^4yz^3w^3+10x^3yz^3w^3-10x^2yz^3w^3+2xyz^3w^3
+x^3z^2w^3-3x^3y^3z^2w^3+4x^2y^3z^2w^3-xy^3z^2w^3-x^2z^2w^3+7x^3y^2z^2w^3
-9x^2y^2z^2w^3+2xy^2z^2w^3-5x^3yz^2w^3+6x^2yz^2w^3-xyz^2w^3+x^4y^4z^4w^2
-2x^3y^4z^4w^2+x^2y^4z^4w^2-3x^4y^3z^4w^2+6x^3y^3z^4w^2-3x^2y^3z^4w^2
+3x^4y^2z^4w^2-6x^3y^2z^4w^2+3x^2y^2z^4w^2-x^4yz^4w^2+2x^3yz^4w^2-x^2yz^4w^2
-x^4y^4z^3w^2+2x^3y^4z^3w^2-x^2y^4z^3w^2+2x^3z^3w^2+3x^4y^3z^3w^2
-12x^3y^3z^3w^2+12x^2y^3z^3w^2-3xy^3z^3w^2-2x^2z^3w^2-3x^4y^2z^3w^2
+20x^3y^2z^3w^2-23x^2y^2z^3w^2+6xy^2z^3w^2+x^4yz^3w^2-12x^3yz^3w^2
+14x^2yz^3w^2-3xyz^3w^2-2x^3z^2w^2+5x^3y^3z^2w^2-7x^2y^3z^2w^2+2xy^3z^2w^2
+5x^2z^2w^2-12x^3y^2z^2w^2+22x^2y^2z^2w^2-10xy^2z^2w^2+y^2z^2w^2-2xz^2w^2
+9x^3yz^2w^2-20x^2yz^2w^2+10xyz^2w^2-yz^2w^2-2x^2zw^2-3x^2y^2zw^2+2xy^2zw^2
+xzw^2+5x^2yzw^2-3xyzw^2-x^3z^3w+2x^3y^3z^3w-3x^2y^3z^3w+xy^3z^3w+x^2z^3w
-5x^3y^2z^3w+7x^2y^2z^3w-2xy^2z^3w+4x^3yz^3w-5x^2yz^3w+xyz^3w+x^3z^2w
-2x^3y^3z^2w+3x^2y^3z^2w-xy^3z^2w-5x^2z^2w+5x^3y^2z^2w-13x^2y^2z^2w
+8xy^2z^2w-y^2z^2w+3xz^2w-4x^3yz^2w+15x^2yz^2w-10xyz^2w+yz^2w+xw-xyw
+3x^2zw+4x^2y^2zw-3xy^2zw-5xzw-7x^2yzw+9xyzw-2yzw+zw+x^2z^2+x^2y^2z^2
-xy^2z^2-xz^2-2x^2yz^2+2xyz^2-x+xy-x^2z-x^2y^2z+xy^2z+3xz+2x^2yz-4xyz+yz-z+1
Упрощать это на лету было бы болезненно ... и тогда мне пришло в голову, что есть способ значительно уменьшить это, особенно учитывая, что я сейчас имею дело с квартичным полиномом.
- Поскольку
w
, x
, y
и z
были по существу импульсами со значением 0
или 1
, w^4
или x^3
или y^2
и т. Д. собирались сводиться к w
, x
, y
или z
; просто потому что 1^n = 1
и 0^n = 0
для n>0
; так проще говоря ...
Несколько глобальных замен позже, это "уменьшило" мое уравнение до следующего:
xyzw-2xyzw+xyzw-3xyzw+6xyzw-3xyzw+3xyzw-6xyzw+3xyzw-xyzw+2xyzw-xyzw-xyzw+2xyzw
-xyzw+3xyzw-6xyzw+3xyzw-3xyzw+6xyzw-3xyzw+xyzw-2xyzw+xyzw-2xyzw+4xyzw-2xyzw
+6xyzw-12xyzw+6xyzw-6xyzw+12xyzw-6xyzw+2xyzw-4xyzw+2xyzw+2xyzw-4xyzw+2xyzw-xzw
-6xyzw+16xyzw-12xyzw+2xyzw+xzw+6xyzw-21xyzw+19xyzw-4xyzw-2xyzw+10xyzw-10xyzw
+2xyzw+xzw-3xyzw+4xyzw-xyzw-xzw+7xyzw-9xyzw+2xyzw-5xyzw+6xyzw-xyzw+xyzw-2xyzw
+xyzw-3xyzw+6xyzw-3xyzw+3xyzw-6xyzw+3xyzw-xyzw+2xyzw-xyzw-xyzw+2xyzw-xyzw+2xzw
+3xyzw-12xyzw+12xyzw-3xyzw-2xzw-3xyzw+20xyzw-23xyzw+6xyzw+xyzw-12xyzw+14xyzw
-3xyzw-2xzw+5xyzw-7xyzw+2xyzw+5xzw-12xyzw+22xyzw-10xyzw+yzw-2xzw+9xyzw-20xyzw
+10xyzw-yzw-2xzw-3xyzw+2xyzw+xzw+5xyzw-3xyzw-xzw+2xyzw-3xyzw+xyzw+xzw-5xyzw
+7xyzw-2xyzw+4xyzw-5xyzw+xyzw+xzw-2xyzw+3xyzw-xyzw-5xzw+5xyzw-13xyzw+8xyzw
-yzw+3xzw-4xyzw+15xyzw-10xyzw+yzw+xw-xyw+3xzw+4xyzw-3xyzw-5xzw-7xyzw+9xyzw
-2yzw+zw+xz+xyz-xyz-xz-2xyz+2xyz-x+xy-xz-xyz+xyz+3xz+2xyz-4xyz+yz-z+1
- Наконец, после переписывания терминов обратно в алфавитном порядке, я разбил уравнение на более мелкие части, которые можно было бы ввести в WolframAlpha, чтобы получить упрощенные фрагменты, которые были в основном склеены обратно вместе ... В конце концов мой арифметический эквивалент
(w AND NOT(x) AND NOT(y)) OR (w AND NOT(z)) OR (NOT(w) AND x AND z) OR (NOT(w) AND y) OR (x AND y) OR (NOT(x) AND NOT(z))
привело к 4wxyz-wxy-3wxz+wx-2wyz+wz-2xyz+xy+2xz-x+yz-z+1
; который, когда я проверил его по моей исходной таблице истинности для сегмента А, добавив значения 0 или 1 для шестнадцати различных возможностей от 0000
до 1111
, дал точные результаты, которые я определил ...
Теперь мне просто нужно повторить этот процесс с другими шестью сегментами ... [вздох]
Надеюсь, это поможет кому-нибудь еще, если подумать о математическом сокращении булевого уравнения ...