Мне нужно написать программу на python, которая минимизирует булеву функцию, но суть в том, что мне нужно использовать алгоритмы поиска, например A * или более простой алгоритм BFS или что-то в этом роде.Я написал программу с использованием итеративного углубления, она решает все проблемы, но она слишком медленная (ограничение составляет 20 с для каждой проблемы).
Итак, я написал другую программу с использованием алгоритма A * (нам сказали, что если мы хотим получить более высокую оценку, мы должны использовать этот), но мне удалось сделать его в 10 раз медленнее, чем тот, который использует итеративное углублениеи это потому, что я не могу понять правильную эвристику для алгоритма.Я не могу понять, каковы критерии эффективного минимизации (хорошая эвристика).
ПРОБЛЕМА:
Вам дан список списков ([[0,1,0,1],[...], [...], [....], ...]), представляющие таблицу истинности (последний элемент во внутреннем списке представляет значение функции).Напишите программу, которая находит минимальную дизъюнктивную форму булевой функции, используя только алгоритмы поиска (пример A *, BFS, IDA *, DFS, ..).Для решения каждой проблемы у вас есть 20 секунд.