Логично предположить, что для решетки и других конкретных графов есть формулы количества циклов, но судя по датам расчетов на том сайте, они именно таки циклы считают перечислением (и задача трудоемкая). А может я и ошибаюсь.
Да, ошибаетесь. Я Вас уверяю, что для решётки размером
не существует никакой формулы. Более того, скорее всего она в принципе не может быть записана средствами имеющегося на сегодня математического аппарата так, чтобы по ней можно было что-то посчитать. Указанное мной число циклов вычислялось
методом динамического программирования. А число циклов, например, в ферзевом графе размером
, которое равно 39741746126749664, тоже вычислялось таким методом, но по немного иначе. Формулы там тоже нет. У меня по этой теме даже
конкурс был, а в
итогах я приводил такой алгоритм.
Цитата:
Вы правы, подразумевалась как-раз библиотека с графами, имеющими небольшое число циклов, чтобы их можно было достаточно просто проверить (и соответственно надежно), но при этом имеющих порядки нескольких десятков (и может в перспективе больше).
Ну ясно. Тогда вряд ли чем-то ещё помогу.
Цитата:
Дело в том, что программа не может знать, граф какого типа она получает, даже если это
- это все равно, что очень удачный перебор. Или нет?
Я поэтому у Вас и спрашиваю про цели решения данной задачи. Дело в том, что решать задачу для произвольного графа эффективно невозможно. Это направление умерло еще 40 лет назад. Сейчас если кому-то нужно посчитать или перечислить циклы, как правило он заранее знает, какого вида у него граф и использует эту информацию как априорно заданную. Соответственно, алгоритм работает только в графах специального вида, но зато на сотни-тысячи порядков быстрее, чем обычный классический перебор из учебников.
А по теме, нет, никаких больше идей у меня для Вас нет.