Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Алгоритм минимизации логической функции


Автор: nightguest 11.10.2006, 19:33
Hе знаю с которой стороны подойти к решению задачи подобного вида
Есть строка которая содержит функцию, к примеру, такого вида
(A1 and (B1 or B2 or B3 or B4 or B5 or B6)) or (A2 and (B1 or B2 or B3 or B4 or B5 or B6)) or ... or (A35 and (B1 or B2 or B3 or B4 or B5 or B6)) 
длинной примерно в 1800 символов. Хочется сделать ее покороче, то есть нужно упростить данную функцию. И вот тут я не знаю как подойти к решению дальше, решал подобные задачи в уни для 3-5 переменных а вот как реализоват програмно и для таких размеров не могу придумать, то есть теоретически понимаю что надо строить как учили KV-diagramm, но для этого надо таблицы истинности а для 30-50 переменных она получится немного крупновата.
Кто нибудь может подсказать как подобное решать или лучше не трогать и пусть остается длинная строка?


Автор: podval 11.10.2006, 20:28
Осилишь?

http://en.wikipedia.org/wiki/Quine-McCluskey_algorithm

http://www.dei.isep.ipp.pt/~acc/bfunc/

http://sourceforge.net/projects/quinessence/

Автор: nightguest 12.10.2006, 12:18
Спасибо за ответ! Помогло понять что для моего числа переменных эти методы не подходят - нужно искать что-то другое, точнее пока оставлю как есть. 

Автор: IvanoffAndrey 15.10.2006, 17:50
Рекомендую поиск ядров импликант.

Автор: esperant0 15.10.2006, 18:07
Общего метода нет. Ибо возможно экспоненциальное разрастание в процессе минимизации

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)