Работа с очень большой проблемой TSP (более 80 000 элементов) - PullRequest
1 голос
/ 07 марта 2019

Проблема заключается в следующем:


Входной текстовый файл будет содержать N строк, каждая из которых представляет книгу.Каждая книга будет иметь G жанров, связанных с ней с 1 <= G <= 100. </p>

Вы хотите заказать эти книги с точки зрения фактора интереса.Несколько слишком похожих книг скучны, а слишком разные книги могут привести посетителей в замешательство.Таким образом, оценка для каждой пары книг равна MIN (жанры, уникальные для книги i, жанры, уникальные для книги i + 1, жанры, общие для книг).

Существует несколько файлов, в одном из которых содержится 80 000 книг


Я новичок в оптимизации (это мой первый раз, когда я работаю над такой проблемой), и первое, о чем я подумал, - это просто создать массив NxN 2-d с оценками от и до каждой книги (узел) и на каждом шаге выбирайте лучшую из возможных книг для добавления к «пути».

Однако из-за масштабов проблемы я не смог создать такой большой массив.Вместо этого я разбил проблему на 8 секций по 10 000 книг в каждой и смог продолжить эту идею.К сожалению, время, необходимое для завершения бега, довольно велико (больше часа).Хотя оценка была довольно приличной.

Я попробовал Имитационный отжиг, где вы случайно переключали две книги.Я использовал температуру 100000 и скорость охлаждения 0,0005.Это также заняло много времени и дало худшую оценку, чем другой подход.

Мне было интересно, есть ли способ улучшить эти подходы (с точки зрения времени) или есть лучший подход / алгоритмза решение этой проблемы?

Заранее спасибо!

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