Re: Минимизация числа строк Квайном-Мак Класски
От: adontz Грузия http://adontz.wordpress.com/
Дата: 18.03.02 14:32
Оценка:
Здравствуйте Nikulina, Вы писали:

N>Есть табличка 10*10. Заполняется случайным образом. Три состояния: 0, 1, и галочка . Требуется отобрать строчки таким образом, чтобы в каждом столбце была бы по крайней мере одна галочка, а число строк было минимальным.

N>Предположительно "6-ой пункт метода Квайна-Мак Класски"

Кроме рекурсии
Добавлять строки по одной до тех пор пока не заполнятся все 10 столбцов или не кончатся строки.
если строка не добавляет стобцов с галочками не добавлять её.
если нашли решение сравнить с предыдушим если строк меньше запомнить.

потребуется (в худшем случае) 10! = 3628800 попыток что ещё более или менее приемлемо

для динамических и волновых методов потребуется судя по всему памяти порядка 10!^2 = 13168189440000 что уже НЕ приемлемо

Можно составить граф из 3628800 вершин соеденить рёбрами переходы (добавление той или инной строки) и искать кратчайший путь от состояния где чалочек нет к состоянию где галочки есть памяти порядка 13168189440000 операций столько же

Так что старая добрая рекурсия, впрочем если больше 10x10 тогда и ей туговато
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.