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