C # общая схема поиска графа - PullRequest
4 голосов
/ 02 декабря 2010

Я много раз кодировал различные алгоритмы поиска по графику (A *, DFS, BFS и т. Д.).Каждый раз единственное реальное различие заключается в фактических состояниях поиска, по которым я выполняю поиск, и в том, как новые состояния генерируются из существующих.

Теперь я столкнулся с еще одним проектом, требующим значительных поисков, и хотел бы избежатьнеобходимость кодировать и снова отлаживать общий алгоритм поиска.Было бы здорово, если бы я мог определить класс состояний поиска, включая информацию для генерации последовательных состояний, эвристических затрат и т. Д., И просто подключить его к какой-либо существующей структуре поиска, которая может сделать для меня всю тяжелую работу.Я знаю, что алгоритмы не особенно сложны в коде, но всегда достаточно хитрости, чтобы это раздражало.

Существует ли что-нибудь подобное?Я не мог ничего найти.

Ответы [ 2 ]

6 голосов
/ 02 декабря 2010

Возможно QuickGraph будет интересен.

QuickGraph предоставляет общие структуры данных и алгоритмы направленного / ненаправленного графа для .Net 2.0 и выше.QuickGraph поставляется с такими алгоритмами, как поиск по глубине, поиск по дыханию, поиск A *, кратчайший путь, k-кратчайший путь, максимальный поток, минимальное связующее дерево, наименьшие общие предки и т. Д.

1 голос
/ 02 декабря 2010

Звучит как идеальный вариант использования Делегата или Лямбда-выражения.

Использование лямбда-выражений для обхода дерева - C #
http://blog.aggregatedintelligence.com/2010/05/using-lambda-expressions-for-tree.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...