Алгоритм Куайна – Маккласки

Алгоритм Куайна-МакКласки ( QMC ), также известный как метод простых импликант , представляет собой метод, используемый для минимизации булевых функций , который был разработан Уиллардом В. Куайном в 1952 году. [ 1 ] [ 2 ] и расширен Эдвардом Дж. Маккласки в 1956 году. [ 3 ] В качестве общего принципа этот подход уже был продемонстрирован логиком Хью Макколлом в 1878 году: [ 4 ] [ 5 ] [ 6 ] было доказано Арчи Блейком в 1937 году. [ 7 ] [ 8 ] [ 9 ] [ 6 ] и был заново открыт Эдвардом В. Самсоном и Бертоном Э. Миллсом в 1954 году. [ 10 ] [ 6 ] и Раймонд Дж. Нельсон в 1955 году. [ 11 ] [ 6 ] Также в 1955 году Пол В. Абрахамс и Джон Г. Нордаль [ 12 ] а также Альберт А. Маллин и Уэйн Г. Келлнер [ 13 ] [ 14 ] [ 15 ] [ 16 ] предложил десятичный вариант метода. [ 17 ] [ 14 ] [ 15 ] [ 16 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ]
Алгоритм Куайна-МакКласки функционально идентичен отображению Карно , но табличная форма делает его более эффективным для использования в компьютерных алгоритмах, а также дает детерминированный способ проверки достижения минимальной формы логического F. Иногда его называют методом табулирования.
Алгоритм Куайна-МакКласки работает следующим образом:
- Нахождение всех простых импликант функции.
- Используйте эти основные импликанты в таблице простых импликантов, чтобы найти основные основные импликанты функции, а также другие основные импликанты, необходимые для покрытия функции.
Сложность
[ редактировать ]Хотя алгоритм Куайна – МакКласки более практичен, чем отображение Карно , при работе с более чем четырьмя переменными, он также имеет ограниченный диапазон использования, поскольку проблема, которую он решает, является NP-полной . [ 22 ] [ 23 ] [ 24 ] Время работы алгоритма Куайна – МакКласки растет экспоненциально с увеличением количества переменных. Для функции n переменных число простых импликант может достигать , [ 25 ] например, для 32 переменных может быть более 534 × 10 12 основные импликанты. Функции с большим количеством переменных приходится минимизировать с помощью потенциально неоптимальных эвристических методов, из которых эвристический логический минимайзер Espresso был фактическим стандартом в 1995 году. [ нужно обновить ] [ 26 ] Для одного естественного класса функций , то точная сложность поиска всех простых импликантов стала лучше понятна: Милан Моссе, Гарри Ша и Ли-Янг Тан открыли почти оптимальный алгоритм для поиска всех простых импликантов формулы в конъюнктивной нормальной форме . [ 27 ]
Второй шаг алгоритма сводится к решению задачи покрытия множества ; [ 28 ] На этом этапе алгоритма могут возникнуть NP-сложные случаи этой проблемы. [ 29 ] [ 30 ]
Пример
[ редактировать ]Вход
[ редактировать ]В этом примере входными данными является булева функция с четырьмя переменными: который оценивается как о ценностях и , оценивается как неизвестное значение на и , и чтобы везде (где эти целые числа интерпретируются в двоичной форме для ввода в для краткости обозначений). Входные данные, которые оцениваются как называются минтермсами. Мы кодируем всю эту информацию, записывая
Это выражение говорит, что выходная функция f будет равна 1 для минтермов. и (обозначается термином «m») и что нас не волнует результат и комбинации (обозначаются термином «d»). Символ суммирования обозначает логическую сумму (логическое ИЛИ или дизъюнкция) всех суммируемых членов.
Шаг 1: поиск основных импликантов
[ редактировать ]Сначала мы запишем функцию в виде таблицы (где «x» означает «неважно»):
А Б С Д ж м0 0 0 0 0 0 м1 0 0 0 1 0 м2 0 0 1 0 0 m3 0 0 1 1 0 м4 0 1 0 0 1 м5 0 1 0 1 0 м6 0 1 1 0 0 м7 0 1 1 1 0 м8 1 0 0 0 1 м9 1 0 0 1 х м10 1 0 1 0 1 м11 1 0 1 1 1 м12 1 1 0 0 1 м13 1 1 0 1 0 м14 1 1 1 0 х м15 1 1 1 1 1
Из этой таблицы можно легко сформировать выражение канонической суммы произведений , просто суммируя минтермы (опуская ненужные термины ), где функция оценивается как единица:
- f A,B,C,D = A'BC'D' + AB'C'D' + AB'CD' + AB'CD + ABC'D' + ABCD.
что не является минимальным. Поэтому в целях оптимизации все минтермы, имеющие единицу, сначала помещаются в таблицу минтермов. В эту таблицу также добавлены ненужные термины (имена в скобках), поэтому их можно комбинировать с минтермами:
Число
из 1 сМинтерм Двоичный
Представительство1 м4 0100 м8 1000 2 (м9) 1001 м10 1010 м12 1100 3 м11 1011 (м14) 1110 4 м15 1111
На этом этапе можно начинать комбинировать минтермы с другими минтермами в соседних группах. Если два термина отличаются только одной цифрой, эту цифру можно заменить тире, указывающим, что цифра не имеет значения. Термины, которые больше нельзя комбинировать, отмечены звездочкой ( * ). Например 1000
и 1001
можно объединить, чтобы дать 100-
, что указывает на то, что оба минтерма подразумевают, что первая цифра равна 1
и следующие два 0
.
Число
из 1 сМинтерм 0-куб Импликанты размера 2 1 м4 0100 м(4,12) -100 * м8 1000 м(8,9) 100- — м(8,10) 10-0 — м(8,12) 1-00 2 м9 1001 м(9,11) 10-1 м10 1010 м(10,11) 101- — м(10,14) 1-10 м12 1100 м(12,14) 11-0 3 м11 1011 м(11,15) 1-11 м14 1110 м(14,15) 111- 4 м15 1111 —
При переходе от размера 2 к размеру 4 обработайте -
в качестве значения третьего бита. Сопоставьте -
это первое. Термины представляют продукты, и для объединения двух терминов продукта они должны иметь одинаковые переменные. Одна из переменных должна быть дополнена в одном члене и не дополнена в другом. Остальные присутствующие переменные должны совпадать. Итак, чтобы сопоставить два термина, -
должны совпадать, и все остальные цифры, кроме одной, должны быть одинаковыми. Например, -110
и -100
можно объединить, чтобы дать -1-0
, как может -110
и -010
дать --10
, но -110
и 011-
не может, поскольку -
не совпадают. -110
соответствует BCD', а
011-
соответствует A'BC, а BCD' + A'BC не эквивалентно термину продукта.
Число
из 1 сМинтерм 0-куб Импликанты размера 2 Импликанты размера 4 1 м4 0100 м(4,12) -100 * — м8 1000 м(8,9) 100- м(8,9,10,11) 10-- * — м(8,10) 10-0 м(8,10,12,14) 1--0 * — м(8,12) 1-00 — 2 м9 1001 м(9,11) 10-1 — м10 1010 м(10,11) 101- м(10,11,14,15) 1-1- * — м(10,14) 1-10 — м12 1100 м(12,14) 11-0 — 3 м11 1011 м(11,15) 1-11 — м14 1110 м(14,15) 111- — 4 м15 1111 — —
Примечание. В этом примере ни один из терминов в таблице импликантов размера 4 не может быть объединен в дальнейшем. В общем, этот процесс следует продолжать (размеры 8, 16 и т. д.) до тех пор, пока не перестанут комбинироваться термины.
Шаг 2: основная импликантная диаграмма
[ редактировать ]Ни один из терминов не может быть объединен дальше этого, поэтому на этом этапе мы создаем необходимую таблицу простых импликант. Сбоку идут только что сгенерированные основные импликанты (это те, которые отмечены знаком «). * " на предыдущем шаге), а сверху идут минтермы, указанные ранее. Неважные термины не размещаются сверху — они опущены в этом разделе, поскольку не являются обязательными входными данными.
4 8 10 11 12 15 ⇒ А Б С Д м(4,12) # ⇒ — 1 0 0 м(8,9,10,11) ⇒ 1 0 — — м(8,10,12,14) ⇒ 1 — — 0 м(10,11,14,15) # ⇒ 1 — 1 —
Чтобы найти основные основные импликанты, мы ищем столбцы только с одним «✓». Если в столбце есть только один символ «✓», это означает, что минтерм может быть покрыт только одним основным импликантом. Этот главный импликант очень важен .
Например: в первом столбце с минтермом 4 стоит только один «✓». Это означает, что m(4,12) существенно (поэтому отмечено # ). В Minterm 15 также есть только один «✓», поэтому m(10,11,14,15) тоже важно. Теперь все столбцы с одним "✓" закрыты. Строки с минтермами m(4,12) и m(10,11,14,15) теперь можно удалить вместе со всеми столбцами, которые они покрывают.
Вторая основная импликанта может быть «покрыта» третьей и четвертой, а третья основная импликанта может быть «покрыта» второй и первой, и, таким образом, ни одна из них не является существенной. Если основная импликанта существенна, то, как и следовало ожидать, ее необходимо включить в минимизированное логическое уравнение. В некоторых случаях основные основные импликанты не охватывают все минтермы, и в этом случае могут быть использованы дополнительные процедуры сокращения диаграммы. Самая простая «дополнительная процедура» — метод проб и ошибок, но более систематический способ — метод Петрика . В текущем примере существенные основные импликанты не обрабатывают все минтермы, поэтому в этом случае существенные импликанты можно объединить с одним из двух несущественных, чтобы получить одно уравнение:
- f A,B,C,D = BC'D' + AB' + AC [ 31 ]
или
- f A,B,C,D = BC'D' + AD' + AC
Оба этих окончательных уравнения функционально эквивалентны исходному подробному уравнению:
- f A,B,C,D = A'BC'D' + AB'C'D' + AB'C'D + AB'CD' + AB'CD + ABC'D' + ABCD' + ABCD.
Алгоритм
[ редактировать ]Шаг 1: Нахождение главных импликантов
[ редактировать ]Приведенный ниже псевдокод рекурсивно вычисляет простые импликанты по списку минтермов логической функции. Он делает это, пытаясь объединить все возможные минтермы и отфильтровывая минтермы, которые были объединены, до тех пор, пока не перестанут выполняться слияния минтермов и, следовательно, не будут найдены основные импликанты функции.
// Computes the prime implicants from a list of minterms. // each minterm is of the form "1001", "1010", etc. function getPrimeImplicants(list minterms) is primeImplicants ← empty list merges ← new boolean array of length equal to the number of minterms, each set to false numberOfmerges ← 0 mergedMinterm, minterm1, minterm2 ← empty strings for i = 0 to length(minterms) do for c = i + 1 to length(minterms) do minterm1 ← minterms[i] minterm2 ← minterms[c] // Checking that two minterms can be merged if CheckDashesAlign(minterm1, minterm2) && CheckMintermDifference(minterm1, minterm2) then mergedMinterm ← MergeMinterms(minterm1, minterm2) primeImplicants.Add(mergedMinterm) numberOfMerges ← numberOfMerges + 1 merges[i] ← true merges[c] ← true // Filtering all minterms that have not been merged as they are prime implicants. Also removing duplicates for j = 0 to length(minterms) do if merges[j] == false && primeImplicants Contains minterms[j] then add minterms[j] to primeImplicants // if no merges have taken place then all of the prime implicants have been found so return, otherwise // keep merging the minterms. if numberOfmerges == 0 then return primeImplicants else return getPrimeImplicants(primeImplicants)
В этом примере CheckDashesAlign
и CheckMintermDifference
Функции выполняют необходимые проверки для определения возможности объединения двух минтермов. Функция MergeMinterms
объединяет минтермы и добавляет тире там, где это необходимо.
function MergeMinterms(minterm1, minterm2) is mergedMinterm ← empty string for i = 0 to length(minterm1) do //If the bits vary then replace it with a dash, otherwise the bit remains in the merged minterm. if minterm[i] != minterm2[i] then mergedMinterm ← mergedMinterm + '-' else mergedMinterm ← mergedMinter + minterm1[i] return mergedMinterm function CheckDashesAlign(minterm1, minterm2) is for i = 0 to length(minterm1) do // If one minterm has dashes and the other does not then the minterms cannot be merged. if minterm1[i] != '-' && minterm2[i] == '-' then return false return true function CheckMintermDifference(minterm1, minterm2) is // minterm1 and minterm2 are strings representing all of the currently found prime implicants and merged // minterms. Examples include '01--' and '10-0' m1, m2 ← integer representation of minterm1 and minterm2 with the dashes removed, these are replaced with 0 res ← m1 ^ m2 return res != 0 && (res & res - 1) == 0
Шаг 2: Основная импликантная диаграмма
[ редактировать ]Приведенный ниже псевдокод можно разделить на две части:
- Создание диаграммы основных импликант с использованием основных импликант
- Чтение таблицы основных импликантов, чтобы найти основные основные импликанты.
Создание основной импликантной карты
[ редактировать ]Диаграмма простых импликант может быть представлена словарем, где каждый ключ является основным импликантом, а соответствующее значение представляет собой пустую строку, которая будет хранить двоичную строку после завершения этого шага. Каждый бит двоичной строки используется для представления тиков в основной диаграмме импликант. Первичную импликантную диаграмму можно создать с помощью следующих шагов:
- Переберите каждый ключ (основной импликант словаря).
- Замените каждое тире в главном импликанте на
\d
код символа. При этом создается регулярное выражение, которое можно проверять по каждому минтерму в поисках совпадений. - Перебрать каждый минтерм, сравнивая регулярное выражение с двоичным представлением минтерма. Если есть совпадение, добавьте
"1"
к соответствующей строке в словаре. В противном случае добавьте"0"
. - Повторите эти действия для всех основных импликантов, чтобы создать завершенную диаграмму основных импликантов.
При написании в псевдокоде описанный выше алгоритм выглядит следующим образом:
function CreatePrimeImplicantChart(list primeImplicants, list minterms) primeImplicantChart ← new dictionary with key of type string and value of type string // Creating the empty chart with the prime implicants as the key and empty strings as the value. for i = 0 to length(primeImplicants) do // Adding a new prime implicant to the chart. primeImplicantChart.Add(primeImplicants[i], "") for i = 0 to length(primeImplicantChart.Keys) do primeImplicant ← primeImplicantChart.Keys[i] // Convert the "-" to "\d" which can be used to find the row of ticks above. regularExpression ← ConvertToRegularExpression(primeImplicant) for j = 0 to length(minterms) do // If there is a match between the regular expression and the minterm than append a 1 otherwise 0. if regularExpression.matches(primeImplicant) then primeImplicantChart[primeImplicant] += "1" else primeImplicantChart[primeImplicant] += "0" // The prime implicant chart is complete so return the completed chart. return primeImplicantChart
Функция полезности, ConvertToRegularExpression
, используется для преобразования основного импликанта в регулярное выражение для проверки совпадений между импликантом и минтермами.
function ConvertToRegularExpression(string primeImplicant) regularExpression ← new string for i = 0 to length(primeImplicant) do if primeImplicant[i] == "-" then // Add the literal character "\d". regularExpression += @"\d"; return regularExpression
Нахождение основных основных импликантов
[ редактировать ]Используя функцию, CreatePrimeImplicantChart
, определенный выше, мы можем найти основные простые импликанты, просто перебирая столбец за столбцом значений в словаре, и где один "1"
найдено, то найдена существенная основная импликанта.
См. также
[ редактировать ]- Каноническая форма Блейка
- Алгоритм Бухбергера - аналог алгоритма алгебраической геометрии.
- метод Петрика
- Качественный сравнительный анализ (QCA)
Ссылки
[ редактировать ]- ^ Куайн, Уиллард Ван Орман (октябрь 1952 г.). «Проблема упрощения функций истинности». Американский математический ежемесячник . 59 (8): 521–531. дои : 10.2307/2308219 . JSTOR 2308219 .
- ^ Куайн, Уиллард Ван Орман (ноябрь 1955 г.). «Способ упростить функции истинности». Американский математический ежемесячник . 62 (9): 627–631. дои : 10.2307/2307285 . hdl : 10338.dmlcz/142789 . JSTOR 2307285 .
- ^ Маккласки, Эдвард Джозеф младший (ноябрь 1956 г.). «Минимизация булевых функций» . Технический журнал Bell System . 35 (6): 1417–1444. дои : 10.1002/j.1538-7305.1956.tb03835.x . hdl : 10338.dmlcz/102933 . Проверено 24 августа 2014 г.
- ^ Макколл, Хью (14 ноября 1878 г.). «Исчисление эквивалентных утверждений (Третья статья)» . Труды Лондонского математического общества . с1-10(1):16–28. дои : 10.1112/plms/s1-10.1.16 .
- ^ Лэдд, Кристина (1883). «Об алгебре логики». В Пирсе, Чарльз Сандерс (ред.). Исследования по логике . Бостон, США: Little, Brown & Company . стр. 17–71. п. 23:
[...] Если приведение [выражения к простейшей форме] не очевидно, это можно облегчить, взяв отрицательное выражение, сократив его, а затем восстановив его до положительной формы. [...]
- ^ Jump up to: а б с д Браун, Фрэнк Маркхэм (ноябрь 2010 г.) [27 октября 2010 г.]. «Макколл и минимизация» . История и философия логики . 31 (4). Тейлор и Фрэнсис : 337–348. дои : 10.1080/01445340.2010.517387 . ISSN 1464-5149 . S2CID 216590641 . Архивировано из оригинала 15 апреля 2020 г. Проверено 15 апреля 2020 г.
- ^ Блейк, Арчи (1938) [1937]. Канонические выражения в булевой алгебре (Диссертация) (Литографированное изд.). Чикаго, Иллинойс, США: Библиотеки Чикагского университета . п. 36. с. 36:
[...] этот метод был известен Пирсу и его ученикам [...] Он упоминается в нескольких местах в «Исследованиях по логике» членами Университета Джона Хопкинса , 1883 г. [...]
(ii+60 страницы) - ^ Блейк, Арчи (ноябрь 1932 г.). «Канонические выражения в булевой алгебре». Бюллетень Американского математического общества . Тезисы докладов: 805.
- ^ Блейк, Арчи (июнь 1938 г.). «Исправления канонических выражений в булевой алгебре » . Журнал символической логики . 3 (2). Ассоциация символической логики : 112–113. дои : 10.2307/2267595 . ISSN 0022-4812 . JSTOR 2267595 . S2CID 5810863 .
- ^ Самсон, Эдвард Уолтер; Миллс, Бертон Э. (апрель 1954 г.). Минимизация схемы: алгебра и алгоритмы для новых булевых канонических выражений . Бедфорд, Массачусетс, США: Кембриджский исследовательский центр ВВС . Технический отчет AFCRC TR 54-21.
- ^ Нельсон, Раймонд Дж. (июнь 1955 г.). «Простейшие нормальные функции истинности». Журнал символической логики . 20 (2). Ассоциация символической логики : 105–108. дои : 10.2307/2266893 . JSTOR 2266893 . S2CID 32920372 . (4 страницы)
- ^ «Добро пожаловать на страницу памяти Джона «Джека» Дж. Нордаля, 14 июня 1933 г. ~ 20 ноября 2017 г. (84 года)» . Похоронное бюро Джеллисона и услуги кремации. Архивировано из оригинала 5 мая 2020 г. Проверено 5 мая 2020 г.
- ^ Маллин, Альберт Алкинс ; Келлнер, Уэйн Г. (1958). Написано в Университете Иллинойса, Урбана, США, и на факультете электротехники Массачусетского технологического института , Массачусетс, США. «Тест на вычет для логических функций» (PDF) . Труды Академии наук штата Иллинойс (Учебный меморандум). 51 (3–4). Спрингфилд, Иллинойс, США: 14–19. S2CID 125171479 . Архивировано (PDF) из оригинала 5 мая 2020 г. Проверено 5 мая 2020 г. [1] (6 страниц) (Примечание. В своей книге Колдуэлл датирует это ноябрём 1955 года как учебный меморандум. Поскольку в другой работе Абрахамса/Нордаля Маллин датирует их работу 1958 годом, а классный меморандум также датирован ноябрем 1955 года, это может быть ошибка копирования.)
- ^ Jump up to: а б Колдуэлл, Сэмюэл Хоукс (1 декабря 1958 г.) [февраль 1958 г.]. «5.8. Операции с десятичными символами». Написано в Уотертауне, Массачусетс, США. Коммутационные схемы и логическое проектирование . 5-е издание, сентябрь 1963 г. (1-е изд.). Нью-Йорк, США: John Wiley & Sons Inc., стр. 162–169. ISBN 0-47112969-0 . LCCN 58-7896 . п. 166:
[...] Приятно отметить, что эта трактовка основана на работе двух студентов, изучавших коммутационные схемы в Массачусетском технологическом институте. Они обсуждали этот метод независимо, а затем сотрудничали в подготовке классного меморандума: П. В. Абрахам и Дж. Г. Нордаль [...]
(xviii + 686 страниц) (NB. Для первого крупного трактата о десятичном методе в этой книге иногда это вводит в заблуждение). известная как «десятичная таблица Колдуэлла».) - ^ Jump up to: а б Маллин, Альберт Алкинс (15 марта 1960 г.) [19 сентября 1959 г.]. Написано в Университете Иллинойса, Урбана, США. Фишер, Харви И.; Экблоу, Джордж Э.; Грин, ФО; Джонс, Рис; Круденье, Фрэнсис; МакГрегор, Джон; Сильва, Пол; Томпсон, Милтон (ред.). «Два применения элементарной теории чисел» (PDF) . Труды Академии наук штата Иллинойс . 52 (3–4). Спрингфилд, Иллинойс, США: 102–103. Архивировано (PDF) из оригинала 5 мая 2020 г. Проверено 5 мая 2020 г. [2] [3] [4] (2 страницы)
- ^ Jump up to: а б Маккласки, Эдвард Джозеф младший (июнь 1960 г.). «Альберт А. Маллин и Уэйн Г. Келлнер. Тест на вычет для булевых функций. Труды Академии наук штата Иллинойс, том 51, № 3 и 4, (1958), стр. 14–19». Журнал символической логики (обзор). 25 (2): 185. дои : 10.2307/2964263 . JSTOR 2964263 . S2CID 123530443 . п. 185:
[...] Результаты этой статьи представлены в более доступной книге С.Х. Колдуэлла [...]. В этой книге автор отдает должное Маллину и Келлнеру за разработку манипуляций с десятичными числами.
(1 страница) - ^ Абрахамс, Пол Уильям; Нордаль, Джон «Джек» Г. (ноябрь 1955 г.). Модифицированная процедура сокращения Куайна – Маккласки (Меморандум класса). Кафедра электротехники Массачусетского технологического института , Массачусетс, США.
{{cite book}}
: CS1 maint: местоположение отсутствующего издателя ( ссылка ) (4 страницы) (Примечание. В некоторых источниках авторами указаны как « PW Авраам » и « IG Nordahl », название также упоминается как « Модифицированная процедура сокращения МакКласки – Куайна »). - ^ Филдер, Дэниел К. (декабрь 1966 г.). «Классная редукция булевых функций». Транзакции IEEE по образованию . 9 (4). ИИЭР : 202–205. Бибкод : 1966ITEdu...9..202F . дои : 10.1109/TE.1966.4321989 . eISSN 1557-9638 . ISSN 0018-9359 .
- ^ Кеммерер, Вильгельм [на немецком языке] (май 1969 г.). «I.12. Теория: Минимизация булевых функций». Написано в Йене, Германия. Во Фрюхауфе, Ганс [на немецком языке] ; Чемберлен, Вильгельм; Шредер, Курц; Винклер, Хельмут (ред.). Цифровые автоматы – теория, структура, технология, программирование . Электронные вычисления и правила (на немецком языке). Том 5 (1-е изд.). Берлин, Германия: Akademie-Verlag GmbH . стр. 98, 103-104. Лицензия № 202-100/416/69. Артикул № 4666 ES 20 K 3-й стр. 98:
[...] В 1955 году процедура была изменена на более удобную десятичную систему счисления ( П. В. Абрахам и И. Г. Нордаль в [ Колдуэлл ]). [...]
(Примечание: существует также второе издание 1973 года.) - ^ Холдсворт, Брайан; Вудс, Клайв (2002). «3.17 Десятичный подход к упрощению Куайна – МакКласки булевой алгебры» . Проектирование цифровой логики (4-е изд.). Newnes Books / Elsevier Science . стр. 65–67. ISBN 0-7506-4588-2 . Проверено 19 апреля 2020 г.
{{cite book}}
: CS1 maint: игнорируются ошибки ISBN ( ссылка ) (519 страниц) [5] - ^ Маджумдер, Алак; Чоудхури, Барнали; Мондал, Абир Дж.; Джайн, Кундж (30 января 2015 г.) [09 января 2015 г.]. Исследование метода Куайна Маккласки: новый подход к минимизации булевой функции, основанный на десятичных манипуляциях . Международная конференция по электронному дизайну, компьютерным сетям и автоматизированной проверке (EDCAV), 2015 г., Шиллонг, Индия (доклад конференции). Департамент электроники и связи, Национальный технологический институт инженерии, Аруначал-Прадеш, Юпия, Индия. стр. 18–22. дои : 10.1109/EDCAV.2015.7060531 . Архивировано из оригинала 8 мая 2020 г. Проверено 8 мая 2020 г. [6] (Примечание. В этой работе не упоминается уровень техники по десятичным методам.) (5 страниц)
- ^ Масек, Уильям Дж. (1979). Некоторый NP-полный набор, покрывающий задачи . неопубликовано.
- ^ Чорт, Себастьян Лукас Арне (1999). Сложность минимизации формул дизъюнктивной нормальной формы (магистерская диссертация). Университет Орхуса.
- ^ Уманс, Кристофер ; Вилла, Тициано; Санджованни-Винсентелли, Альберто Луиджи (5 июня 2006 г.). «Сложность двухуровневой логической минимизации». Транзакции IEEE по автоматизированному проектированию интегральных схем и систем . 25 (7): 1230–1246. дои : 10.1109/TCAD.2005.855944 . S2CID 10187481 .
- ^ Чандра, Ашок К.; Марковский, Джордж (1978). «О числе главных импликантов» . Дискретная математика . 24 (1): 7–11. дои : 10.1016/0012-365X(78)90168-1 .
- ^ Нельсон, Виктор П.; Нэгл, Х. Трой; Кэрролл, Билл Д.; Ирвин, Дж. Дэвид (1995). Анализ и проектирование цифровых логических схем (2-е изд.). Прентис Холл . п. 234. ИСБН 978-0-13463894-2 . Проверено 26 августа 2014 г.
- ^ Моссе, Милан; Ша, Гарри; Тан, Ли-Ян (2022). «Обобщение леммы о выполнимости кодирования и ее приложения» . DROPS-IDN/V2/Document/10.4230/LIPIcs.SAT.2022.9 . Замок Дагштуль – Центр информатики Лейбница. дои : 10.4230/LIPIcs.SAT.2022.9 .
- ^ Фельдман, Виталий (2009). «Трудность приближенной двухуровневой логической минимизации и обучения PAC с помощью запросов на членство» . Журнал компьютерных и системных наук . 75 : 13–25 [13–14]. дои : 10.1016/j.jcss.2008.07.007 .
- ^ Гимпель, Джеймс Ф. (1965). «Метод создания логической функции, имеющей произвольную предписанную таблицу простых импликантов». Транзакции IEEE на компьютерах . 14 : 485–488. дои : 10.1109/PGEC.1965.264175 .
- ^ Пауль, Вольфганг Якоб [на немецком языке] (1974). «Булевы минимальные многочлены и проблемы покрытия». Acta Informatica (на немецком языке). 4 (4): 321–336. дои : 10.1007/BF00289615 . S2CID 35973949 .
- ^ Логической пятницы Программа
Дальнейшее чтение
[ редактировать ]- Кертис, Герберт Аллен (1962). «Глава 2.3. Метод МакКласки». Новый подход к проектированию коммутационных схем . Серия Bell Laboratories (1-е изд.). Принстон, Нью-Джерси, США: D. van Nostand Company, Inc., стр. 90–160. ISBN 0-44201794-4 . OCLC 1036797958 . S2CID 57068910 . ISBN 978-0-44201794-1 . ковчег:/13960/t56d6st0q. (viii+635 страниц) (Примечание: эта книга была переиздана Чин Джи в 1969 году.)
- Кудер, Оливье (октябрь 1994 г.). «Двухуровневая логическая минимизация: обзор» (PDF) . Интеграция, Журнал СБИС . 17–2 (2): 97–140. дои : 10.1016/0167-9260(94)00007-7 . ISSN 0167-9260 . Архивировано (PDF) из оригинала 10 мая 2020 г. Проверено 10 мая 2020 г. (47 страниц)
- Джадхав, Виттал; Бучаде, Амар (8 марта 2012 г.). «Модифицированный метод Куайна-Маккласки». arXiv : 1203.2289 [ cs.OH ]. (4 страницы)
- Креншоу, Джек (19 августа 2004 г.). «Все о Куайне-Маккласки» . Embedded.com . Архивировано из оригинала 10 мая 2020 г. Проверено 10 мая 2020 г.
- Томашевский, Себастьян П.; Челик, Ильгаз У.; Антониу, Джордж Э. (декабрь 2003 г.) [05 марта 2003 г., 9 апреля 2002 г.]. «Минимизация логических функций на основе WWW» (PDF) . Международный журнал прикладной математики и информатики . 13 (4): 577–584. Архивировано (PDF) из оригинала 10 мая 2020 г. Проверено 10 мая 2020 г. [7] [8] (7 страниц)
- Душа, Адриан (01 октября 2008 г.) [сентябрь 2007 г.]. «Математический подход к задаче булевой минимизации». Качество и количество . 44 : 99–113. дои : 10.1007/s11135-008-9183-x . S2CID 123042755 . Номер статьи: 99 (2010). [9] (22 страницы)
- Душа, Адриан (2007). «Усиление Куайна-Маккласки» (PDF) . Университет Бухареста . Архивировано (PDF) из оригинала 12 мая 2020 г. Проверено 12 мая 2020 г. (16 страниц) (Примечание.
Внешние ссылки
[ редактировать ]- Учебное пособие по методу Куайна-Маккласки и Петрика.
- Полностью проработанный пример можно найти по адресу: http://www.cs.ualberta.ca/~amaral/courses/329/webslides/Topic5-QuineMcCluskey/sld024.htm.