1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 144
|
|
1 | |
Репрезентативная выборка. Алгоритм25.09.2018, 13:04. Показов 743. Ответов 2
Метки нет (Все метки)
Есть несколько наборов объектов.
В каждом наборе объекты одного типа. У объектов есть свойства. Комбинация включает по одному экземпляру из каждого набора. Задача: вычислить некоторые величины по каждой из возможных комбинаций (A,B,C,D....). Величины вычисляются по значениям свойств экземпляров, по алгебраическому выражению первой степени. ========================================================================== Реальная задача: есть Наборы: 1. рядовых кирпичей(допустим 100шт), 2. Утеплителя(30шт), 3. Облицовочных кирпичей(50шт) нужно определить для данных наборов: 1. минимальную и максимальную толщину стенки р.кирпич+утеплитель+обл.кирпич. здесь просто используем св-во толщина(ширина) составляем все комбинации и ищем мин,макс. 2. минимальное и максимальное сопротивление теплопередаче по формуле: сумма(дельта_i/лямбда_i), т.е. суммируем послойно. но дельта это не просто св-во толщина, а например для кладки в 1,5 кирпича это будет комбинация: ширина+длина кирпича, т.е. для расчета теплопередаче 3-слойной стенки с рядовой верстой в 1,5 кирпича мы должны использовать три свойства: ширина, длина, лямбда. 3. для данных заданных min и max сказать - есть ли хоть одна комбинация которая удовлетворит фильтру "толщина" и "сопротивление теплопередаче". Т.е. распределение значений свойств в наборах не является нормальным, и может быть произвольным. Например после анализа всех комбинаций мы можем сказать что стенка толщиной t=0,21м-0,25м,R=2,3-2,5, для данных наборов существует, а с R=3,0-3,1 -нет. Хотя максимум по R для данных наборов может быть и 4,0. Просто потому что не будет комбинации с R=3,0-3,1. Ну и собственно вишенка: Сейчас задача решена полным перебором, прекалькуляцией. В рантайме выполняется только фильтрация по комбинациям. Время на такое решение экспоненциально зависит от количества товаров в каждом наборе. Сервак прорешивает комбинации в не часпиковое для сайта время(ночью) но время просчета неуклонно растет, с каждым пополнением таблицы товаров... собственно начал писать алгоритм "получение репрезентативной выборки для данного набора по данным свойствам", на входе - набор по одному товару, список свойств, к-е участвуют в вычислениях. Задаю шаг дисперсии - значение шага с которым рассматривается значение св-ва от min до max. Написал тесты на результаты для полной и дисперсной выборки. Пока алгоритм слишком толстый. Вся суть в том чтобы уйти от просчета кучи "одинаковых кирпичей" т.е. наиболее распространен рядовой кирпич 120х250х88, с какой то там лямбдой. Ну колеблется она в пределах 10%. Т.е. нужно 99% таких кирпичей не включать в комбинации. Но хотелось бы знать есть ли общее решение для подобной оптимизации... Для наглядности, понимания нарисовал картинку - набор 270шт, 3 свойства, над столбцами кол-во элементов набора с данным значением. И результаты тестов по набору из 5 вариантов конструкций стен. Сейчас добился сокращения времени в 2 раза, но хотелось бы больше. Это питон. Про Сишную "оптимизацию" знаю. Хотелось бы эффективности алгоритмической. Исходники мутные...Основная функция https://yadi.sk/i/UlRv8zmZL5vR1A Спасибо, всем откликнувшихся.
0
|
25.09.2018, 13:04 | |
Ответы с готовыми решениями:
2
Unix. Выборка нужной даты, временно работал алгоритм - но теперь работает не так, как нужно Выборка без ключевых слов/Выборка без столбцов/Выборка с условием Выборка уникальных записей с максимальными датами, и затем выборка по найденому Выборка задолженностей по таблице (выборка строк с пустыми ячейкам даты оплаты) для отчета |
1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 144
|
|
25.09.2018, 14:50 [ТС] | 2 |
все, вопрос снят ) Сообразилось.
что-то последнее время - как попросишь совета, сразу "картинка" становится ясной и простой.
0
|
Модератор
3051 / 2193 / 459
Регистрация: 26.03.2015
Сообщений: 8,469
|
|
27.09.2018, 14:51 | 3 |
0
|
27.09.2018, 14:51 | |
27.09.2018, 14:51 | |
Помогаю со студенческими работами здесь
3
Выборка из Combobox, причем выборка должна быть частичной Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар) Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм Алгоритм устранения непродуктивных нетерминалов, алгоритм построения недостижимых символов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |