Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / равномерное распределение объектов на основе совпадения характеристик / 12 сообщений из 12, страница 1 из 1
31.05.2012, 10:15
    #37819060
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
Всем добрый день.
Есть практическая задача.

Имеется набор объектов (порядка сотни), обладающих характеристиками (до 8шт).
Харатеристики имеют фиксированный набор значений.
Требуется разложить объекты как можно равномернее в двухуровневое дерево по признаку совпадения характеристик.
Например 100объектов равномерно раскладываются по 10шт в 10 узлов.
Объекты в одном узле должны по возможности иметь наибольшее количество совпадающих значений характеристик.
Но не менее одной.

Пока додумался до того, что надо построить матрицу (100*100) и в ячейках посчитать количество совпадающих значений характеристик.
А дальше куда двигаться? Отсортировать по похожести?
...
Рейтинг: 0 / 0
31.05.2012, 10:29
    #37819082
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
oleg_mВсем добрый день.
Есть практическая задача.

Имеется набор объектов (порядка сотни), обладающих характеристиками (до 8шт).
Харатеристики имеют фиксированный набор значений.
Требуется разложить объекты как можно равномернее в двухуровневое дерево по признаку совпадения характеристик.
Например 100объектов равномерно раскладываются по 10шт в 10 узлов.
Объекты в одном узле должны по возможности иметь наибольшее количество совпадающих значений характеристик.
Но не менее одной.

Пока додумался до того, что надо построить матрицу (100*100) и в ячейках посчитать количество совпадающих значений характеристик.
А дальше куда двигаться? Отсортировать по похожести?
1) Проясните первое выделенное. Так, как написано, задачу решает раскладывание объектов по 1 шт. в 100 узлов.
2) Проясните второе выделенное. N объектов узла должны все разделять одно и то же значение хотя бы одной характеристики, или любые два объекта из N должны разделять одно и то же значение хотя бы одной характеристики?
...
Рейтинг: 0 / 0
31.05.2012, 10:44
    #37819103
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
Abstraction,
1) "самое равномерное распределение" это 10 узлов по 10 элементов в каждом, но самый идеальный случай. Исходная задача формулируется так: пользователь в два клика выбирает один элемент из сотни. Именно два клика. Поэтому максимально удобно сначала выбрать один из 10 узлов, а затем в данном узле выбрать один из 10 объектов.

Понятно, что идеальная картина 10*10 на реальных данных вряд ли получится. Вполне нормальным было бы наличие от 5 до 12 узлов,
и не во всех узлах будет ровно 10 объектов, пусть даже от 3 до 15.

2) прошу прощения, действительно неточно написал.
Все элементы в одном узле должны иметь общее значение хотя бы в одной характеристике.

Понимаю, что в общем случае может не получится небольшое количество узлов.
Этот вариант я рассмотрю отдельно.


В общем-то отвечая на ваши вопросы я понял, что надо начать с выбора 10 узлов.
т.е. выбрать 10 максимально непохожих объектов и разложить их по 10 узлам.
А далее можно перебирать оставшиеся 90 объектов и определять, в какой из 10 узлов он больше всего подходит...

Но это что называется алгоритм "методом последовательных проходов и многочисленных ветвлений".
Нет ли чего-то более изящного, вроде транспортной задачи ЗЛП?
...
Рейтинг: 0 / 0
31.05.2012, 10:53
    #37819121
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
Исходя из вышеописанного, мне кажется, что возможны случаи, полностью перечёркивающие подход "двух кликов".
Пусть выделена группа в 10 элементов с общим значением некоторой характеристики. Пусть есть 11-й элемент. имеющий то же значение этой характеристики, но сильно отличающийся от этой группы по остальным характеристикам, и в то же время похожий по остальным характеристикам на другую группу, вследствие чего в неё и отнесённый.
После первого клика по первой характеристике клиент получит группу, в которой этого элемента не будет. А если нужен именно он?

Почему вместо деления на группы Вы не хотите пойти стандартным путём фильтрации?
...
Рейтинг: 0 / 0
31.05.2012, 11:08
    #37819156
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
AkinaИсходя из вышеописанного, мне кажется, что возможны случаи, полностью перечёркивающие подход "двух кликов".
Пусть выделена группа в 10 элементов с общим значением некоторой характеристики. Пусть есть 11-й элемент. имеющий то же значение этой характеристики, но сильно отличающийся от этой группы по остальным характеристикам, и в то же время похожий по остальным характеристикам на другую группу, вследствие чего в неё и отнесённый.
После первого клика по первой характеристике клиент получит группу, в которой этого элемента не будет. А если нужен именно он?
мысль понял. Отвечаю: клиент не выберет данную группу, потому что в названии группы будут выведены все совпадающие характеристики, а 11ый элемент будет с ними "сильно не похож".


AkinaПочему вместо деления на группы Вы не хотите пойти стандартным путём фильтрации?
поясните пожалуйста.
Если вы про быстрый поиск - фильтрация предполагает другие действия, вроде нажатий клавиатуры (которой может не быть на коммуникаторе, но быть на PC), а также переключения между регистрами клавиатуры. т.к. значения характеристик содержат цифры, русские и англ. символы, спец.символы вроде слеша, звездочки и т.п.
...
Рейтинг: 0 / 0
31.05.2012, 11:20
    #37819188
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
oleg_m,

1) Предлагаю численный критерий: если есть N объектов, разбитых на G групп, n i - число элементов в i группе, то минимизируется "результат" N*G+Σ i n i 2 . (При "10 по 10" получится 2000 и это минимум, при "100 по 1" получится 10100)
2) У нас есть 8 свойств, каждое разбивает наше множество на классы эквивалентности. Каждая группа содержится в каком-то из классов эквивалентности.
3) (черновой вариант) Сопоставим каждому объекту восьмёрку чисел - численности соответствующих классов эквивалентности, плюс "вес" - максимальное из этих чисел. Пока не кончились объекты, выберем объект с минимальным "весом"; выделим в группу до 10 элементов из его класса эквивалентности (выбирая объекты с минимальными "весами" / выбирая случайные объекты / пытаясь выбрать объекты так, чтобы по окончании выбора минимальный из оставшихся "весов" был максимален, если их больше 10); пересчитаем численности классов эквивалентности и "веса" в оставшемся множестве.
По окончании разбиения, для наименьшей по численности группы проверить возможность поместить её элементы в другие группы; если это возможно, проверить, уменьшит ли это "результат"; если да - уничтожить группу; повторить для следующей по численности группы.
...
Рейтинг: 0 / 0
31.05.2012, 11:59
    #37819292
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
Abstraction, спасибо.
Сейчас попробуем собрать воедино все идеи что возникли (мы тут тоже активно обсуждали разные подходы)
...
Рейтинг: 0 / 0
31.05.2012, 17:26
    #37820122
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
oleg_mпоясните пожалуйста.
Если вы про быстрый поиск
Нет, не про него.

У Вас 8 характеристик. Пользователь на экране видит 8 строк - по строке на характеристику. Ниже - грид с записями.
В каждой строке имеется несколько радиобатонов (в скобках отмечу - красивее делать в выде залипающей кнопки). Каждый - с одним из наиболее часто встречающихся значений этой характеристики по всему массиву. И последний - остальное.

Как только юзер выбирает радиобатон одним кликом мыша - список тут же отфильтровывается по выбранному значению. Выбрал второй - колиество строк в гриде стало ещё меньше... если мы имеем 8 характеристик и 100 записей с вариативностью пусть даже по 4 значения на характеристику, то выбор максимум 2 радиобатонов оставит на экране буквально 5-10 записей, включая нужную пользователю.
...
Рейтинг: 0 / 0
31.05.2012, 18:40
    #37820289
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
oleg_mПока додумался до того, что надо построить матрицу (100*100) и в ячейках посчитать количество совпадающих значений характеристик.
А дальше куда двигаться? Отсортировать по похожести?
В науке это называется Кластерный Анализ. Начни читать отсюдова про методы.

http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7

Выбери для начала самый простой.
Попробуй реализовать. Может подойдет.
...
Рейтинг: 0 / 0
31.05.2012, 21:33
    #37820453
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
Akina, спасибо.
Идею с радибаттонами оценил, рассмотрим как вариант.
...
Рейтинг: 0 / 0
31.05.2012, 21:35
    #37820457
oleg_m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
mayton,
ну конечно! data mining как один из вариантов.
Вертелась какая-то мысль в голове, никак не мог вспомнить, что мне эта задача напоминает.

Спасибо что напомнили.
...
Рейтинг: 0 / 0
01.06.2012, 12:40
    #37821328
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
равномерное распределение объектов на основе совпадения характеристик
oleg_m, вообще-то я про дата-майнинг не говорил. Это еще более глубокая постановка.
Извлечение знаний. А у тебя насколько я понял просто классификация.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / равномерное распределение объектов на основе совпадения характеристик / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]