Я тестирую различные модели/алгоритмы TSP. Сейчас я использую полную матрицу смежности, заполненную случайными значениями от 1 до 100, которая представляет собой полный направленный граф.C++ генерирует случайные графики, подходящие для TSP
Я ищу более строгий подход, который позволил бы мне попробовать различные виды случайных графов, таких как Erdos-Renyi, сети малого мира и сети, свободные от масштаба.
Я знаю, что мне, возможно, придется переключиться на списки смежности для новых графиков.
Мой подход будет генерировать случайный граф, а затем гарантировать, что существует гамильтонов путь, необходимый для того, чтобы проблема была действительным экземпляром TSP. Возможно ли, или дешевле просто попытаться решить неразрешимый экземпляр (при условии, что все методы прекратятся в таком экземпляре)?
BTW Я думал об использовании библиотеки Boost Graph, но я не знаком с ней, и, возможно, есть что-то более подходящее. Предложения по альтернативам приветствуются, но не следует считать основной сферой этого вопроса.
Мне не нужен решатель TSP, мне нужно что-то, чтобы помочь в создании приемлемых проблем.
Спасибо.
Интересно. Хотите добавить некоторые детали? В Википедии есть лишь небольшой абзац, рассказывающий об гамильтоновском пути. – Agostino
@Agostino: Почему ваш график направлен? – Bytemain
Потому что он представляет собой асимметричный TSP. Я также намерен решить симметричный вариант. Я ищу генераторы графов и способ распознать, какие графы представляют разрешимые экземпляры. – Agostino