|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
Быстрый модуль для задачи коммивояжёра21.11.2022, 12:41. Показов 612. Ответов 8
Метки нет (Все метки)
Суть проблемы - отсортировать список картинок (одинакового размера) так чтобы соседи были максимально похожи.
Сейчас у меня боттлнек (самое долгое по вычислениям) - это непосредственно сама сортировка. Матрицу смежности сделал через sklearn.metrics.pairwise.manhattan_dista nces (на выходе матрица numpy.ndarray) В качестве решалки Коммиваяжора пока взял python_tsp.heuristics, но данное решение меня не удовлетворяет по производительности, хоть оно и эврестическое. Да, точное решение для меня не обязательно, "хорошее" приближенное тоже подойдет. Какой модуль Питона посоветуете ? Из альтернатив есть вариант просто выбирать картинки по одной, выбирая следующую как самую подходящую из оставшихся. Но хотелось бы не так топорно подходить к проблеме Картинок порядка 500 тысяч 500х700, в идеале, конечно, хотелось бы их целиком (приблизительно) отсортировать, но пока рассматриваю вариант сортировки только внутри небольших отрезков. Думал про всяких "хэши", но пока пришел к выводу что они не дают требуемого результата. "Хэши" для поиска "похожих" картинок не работают точно, мне нужно учитывать метрику расстояния между картинками, а хэш далек от нее. Пытался выдумывать свой хэш, но ничего хорошего не вышло.
0
|
|
| 21.11.2022, 12:41 | |
|
Ответы с готовыми решениями:
8
Быстрый модуль для рисования графиков Необходимо разработать модуль по генерации файлов с вариантами задач по математике Задача коммивояжера, TSP, задача на нахождение кратчайших путей |
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||
| 22.11.2022, 03:14 | ||
|
wingblack,
Эвристик много можно придумать, вопрос соотношения времени/качества. Можете погуглить LKH for TSP. Возможно есть библиотеки.
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|||
| 23.11.2022, 01:21 [ТС] | |||
|
В самом начале работы над задачей требовалось делать относительно быстро, чтобы за относительно короткое время сформировать видео-архив. Для таких условий в худшем случае подходили отрезки по 100 картинок, но тогда сортировка почти не имеет смысла на таком малом отрезке. После разных попыток пришел к выводу сначала сделать видео-архив (в отличном качестве сжатия), а потом уже написать программу которая будет не спеша сортировать индексы в таком архиве, с хранением в БД и возможностью перезапуска с продолжением. На данный момент задача разбилась на несколько более мелких, самая крупная - 250 тысяч картинок (дальнейшее уменьшение пока не предвидится). А вообще с этим архивом была мысль о возможности как-то использовать группировку картинок. Т.е. мысль - с одной стороны брать на сравнение случайные пары картинок, с другой стороны сравнивать между собой наиболее близких соседей одной картинки. Тогда и матрица смежности может быть разреженная, особенно если еще и удалить часть наиболее крупных весов. А то действительно - если строить полную матрицу смежности это файлик ого-го какой большой будет Хорошо, посмотрю LKH, реализация на C внушает доверие, только пока полностью не понял как ему данные подготовить.
0
|
|||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 23.11.2022, 04:46 | |
|
wingblack, а чем вам кластерный анализ не подходит?
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 23.11.2022, 18:58 [ТС] | ||
|
Обозрительно про кластеризацию знаю, но на практике не было необходимости использовать
0
|
||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||
| 23.11.2022, 19:10 | ||
|
0
|
||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 23.11.2022, 20:27 [ТС] | ||
|
Группировка по схожести - как идея чтобы пришлось вычислять и хранить меньше ребер. Но без опыта в кластеризации я не могу сказать что кластеризация тут применима. Ну не вижу я это в алгоритме "вычислить расстояние от текущей картинки А ко всем картинкам В(i), где В - картинки находящиеся в некотором радиусе от картинок С(j), где C - картинки в некотором радиусе от А" Ну и да, тот момент что список или матрицу смежности еще надо построить, причем операция произвольного порядка чтения - весьма дорогая (но это так, к слову).
0
|
||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|||
| 23.11.2022, 20:47 | |||
|
0
|
|||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 23.11.2022, 23:16 [ТС] | ||
|
- вычисление веса ребер для случайных пар вершин - для каждой вершины вычислить веса ребер между ее ближайшими соседями, как вариант - вычисление ребер в некоторой "окрестности" (в рамках уже построенного графа) текущей вершины - если количество ребер у вершины достаточно много - удалить часть самых "тяжелых" - повторять до достижения некоторого критерия, будь то время выполнения или отсутствие улучшение самого худшего из лучших расстояний на протяжении нескольких итераций. Что же до кластерного анализа, то, в моем понимании, кластеризация используется когда стоит задача разделить точки на небольшое количество групп. А тут, получается, или таких групп нет вообще (по условию задачи), либо нужно считать что каждая точка образует вокруг себя отдельную группу "лучшие друзья" (если интерпретировать мои предыдущие неполные формулировки), т.е. количество групп огромно, и вообще не вписывается в типичные примеры задач по кластеризации (группировке) точек. Причем изначально у нас нет полной картины, поскольку вычисление весов полносвязного графа не только несколько долгая процедура, но и под сами веса потребуется достаточно много памяти, которой компьютер не сможет оперировать единовременно, а каждый раз запрашивать веса через базу данных - очередные накладные расходы.
0
|
||
| 23.11.2022, 23:16 | |
|
Помогаю со студенческими работами здесь
9
Задача коммивояжера Задачи коммивояжера
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|