Алгоритм Форда-Фалкерсона
От: almaz0  
Дата: 21.10.14 14:16
Оценка:
Решаю задачу покрытия доминошками клетчатой фигуры (произвольной формы). Для этого пытаюсь применить поиск максимального потока: каждую клетку соединяем ребром с соседними (от 0 до 4), добавляем исток (из него рёбра веса 1 в каждую чёрную клетку), и исток (В него ИЗ каждой белой клетки рёбра веса 1). От чёрной клетки к белым соседям (если есть) рёбра имеют вес 1, обратные веса 0. Любой поток сквозь такой граф соответствует укладке доминошин на фигуре, максимальный поток — максимальная укладка.

Для поиска максимального потока использую алгоритм Форда-Фалкерсона с выбором кратчайшего пути. Задача не проходит по времени (реализация графа через списки смежности, через матрицу пробовал — не прошла по памяти). Есть ли более быстрые алгоритмы для решения этой задачи ? Или просто я криво реализовал Форда-Фалкерсона ? Код могу дать, он загружен в файле у меня в профиле, как присоединить файл к сообщению — не знаю. Использую язык C/C++ (от C++ только выделение динамической памяти).
максимальный поток граф алгоритм форда-фалкерсона
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.