Доказательство неоптимальности отображения Карно

Я был бы признателен за помощь в поиске литературы, посвященной оптимальности K-карты.

Я понимаю, как, например, вы можете сопоставлять выражения SOP (сумма произведений) и K-карту, и почему в целом вы ожидаете, что выражение, оптимизированное для K-карты, будет проще, поскольку нахождение максимальной группировки единиц соответствует нахождению некоторых избыточностей в наивном выражении SOP.

Я смутно вижу, что метод К-карты может не давать оптимальных решений, потому что кажется, что единственное, что мы на самом деле делаем, — это пользуемся дистрибутивными и тождественными (А + А' = 1) свойствами булевой алгебры. Но я не очень понимаю, какие алгебраические операции мы не выполняем с K-картой, которые могли бы позволить нам достичь более оптимального решения.

В результате я не знаю, как начать доказательство, которое показало бы, что K-карты не всегда оптимальны.

Я пытался прочитать: это, но в этой статье просто цитируется, что проблема поиска оптимального булева выражения находится в NP, и я думаю, что автор просто неявно говорит, что K-карты не могут быть оптимальными, так как как алгоритм они не выполняются за NP-время.

Почему K-карты неоптимальны, а не только в качестве «контрпримера»… на самом деле, почему? Можете ли вы либо доказать это мне, либо направить меня к доказательству?


person user1623303    schedule 24.08.2012    source источник
comment
Нет, но я понимаю, почему ты так думаешь. Я изучаю машинные структуры по одной из старых книг моего отца, и этот вопрос беспокоит меня.   -  person user1623303    schedule 24.08.2012
comment
ладно, круто. У меня около 80% успеха при классификации домашнего задания. Возможно, мне нужно немного настроить мои алгоритмы.   -  person smcg    schedule 24.08.2012


Ответы (1)


Что вы считаете оптимальным? K-карта дает вам оптимальные уравнения только в форме SOP или POS. Так что это зависит от того, что вы хотите.

Невыполненные алгебраические операции включают, например, Distributivity of ∧ over ∨. Применение этого правила может дать вам функцию с меньшим количеством терминов.

K-карта не даст вам уравнений, использующих, например, xor, поскольку в результирующих уравнениях используются только or, and и not. Итак, если я возьму таблицу истинности, полученную из функции (где ^ равно xor):

lambda a, b, c, d: a ^ b ^ c ^ d

результирующая таблица истинности не будет иметь прямоугольников, и форму SOP можно будет считать неоптимальной:

lambda a, b, c, d: (not a and b and c and d) or (not a and not b and not c and d) or (not a and not b and c and not d) or (not a and b and not c and not d) or (a and b and c and not d) or (a and b and not c and d) or (a and not b and c and d) or (a and not b and not c and not d)

таблица истинности и k-карта

Если вы используете только or и and и ваша функция ввода короче, чем функция вывода, вы используете круглые скобки в своем вводе. Если это так, вы также сможете исключить некоторые переменные из выходных данных k-карты (используя логическую алгебру), и вы получите не менее короткое уравнение.

Обобщение: минимизация булевой функции аналогична поиску уравнения для любого другого ряда чисел. Всегда будет несколько решений. Но какая функция самая простая? Я мог бы сказать: «Дайте мне функцию, которая возвращает 1 вместо 0, 2 вместо 1, 4 вместо 2 и 8 вместо 3». Вы могли бы сказать, что «функция pow(2,x)». И я мог бы сказать: «Неправильно! Я думал о 1 ‹‹ x». Все значения, в которых функции не равны, находятся за пределами области спецификации. Они соответствуют «не знаю» в К-карте.

Когда я говорю: «Моя функция проще, потому что я просто исключаю все термины», вы можете сказать: «Но если я добавлю дополнительную переменную, и она не будет следовать вашему шаблону, ваша функция станет слишком громоздкой и сложной, моя просто по-прежнему следует шаблону SOP или POS».

person Janus Troelsen    schedule 26.11.2012