thedeemon: (office)
[personal profile] thedeemon
А вот задачка, может кто подскажет, как такие решаются.
Есть набор из 65000 множеств, в каждом множестве от 1 до 35000 элементов (элементы - 16-битные целые числа), причем распределение размеров весьма неравномерное: среднее число элементов около 50, медианное - 13, т.е. большая часть множеств имеет менее 20 элементов, но есть и содержащие десятки тысяч. Мне нужно уменьшить этот набор путем объединения "похожих" множеств так, чтобы минимизировать сумму размеров множеств, но с таким ограничением: объединение множеств A,В,С... в некое Х возможно лишь тогда, когда размер получающегося Х не более чем в К раз (скажем, К=4) больше, чем размер каждого из А,В,С... Т.е., например, нельзя объединять множество из 10 элементов с множеством из 100. Объединять непересекающиеся множества нет смысла, а чем сильнее множества пересекаются ("похожи"), тем выгоднее их объединить.

Самое оптимальное решение не требуется, можно предлагать эвристики. Наивные переборные решения многовато операций и/или памяти требуют. Желательно уложиться в 2 гига памяти и час процессорного времени.

Date: 2014-02-27 12:50 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
крайне любопытная задача, да

sample data будет?

Date: 2014-02-27 01:19 pm (UTC)
From: [identity profile] sorhed.livejournal.com
Можно сгенерировать в три секунды. Генерируешь число в power-law distribution, t = 1 / (random(0..1)^(1/α)) (альфу подобрать по вкусу), это будет размер множества. Заполняешь его случайными числами, можно тоже в power-law, чтобы было много похожих. Должно работать.

Date: 2014-02-27 01:21 pm (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Резонно, хотя не уверен что именно оно

Date: 2014-02-27 02:37 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Вот прореженные в 8 раз данные:
http://stuff.thedeemon.com/lj/sample.json.gz

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 28th, 2026 08:48 pm
Powered by Dreamwidth Studios