AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2013, 18:46   #1  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Задачка на подумать из практики
На прошлой работе в компании Manzanagroup у меня была следующая задача.
Мы делали программу лояльности.
Карты, баллы и прочее.

В лояльности существует группы баллов.
То есть за определенную покупку вы получаете баллы, соответственно правилам начисления.
Каждое правило начисляет баллы на определенную группу.
Таким образом у Вас получается баланс баллов, который разбит на сегменты.

Теперь мы хотим потратить баллы, но определенную группу можно списывать только на определенные товары.


пример.
купили сникерс и воду бонаква

баллы за сникерс можно тратить на любой товар, а баллы за бонаква только на бонаква.
Теперь я пришел еще раз в магазин и хочу снова купить сникерс и воду бонаква.
Но теперь хочу оплатить их теми баллами, что у меня есть.
Если я начну оплачивать воду бонаква, баллами сникерса, то я не смогу оплатить сникерс.

Теперь представим промышленный вариант, где групп баллов несколько и в чеке много позиций.
Вопрос, как расчитать, сколько максимально можно списать баллов?
Баллы всегда в целых числах и нельзя списать 1,5 балла или 1,10


или еще пример.

У нас есть матрица

NxM

где N кол-во позиций чека, а M группы баллов

если эту группу баллов нельзя использовать для этой позиции чека в матрице стоит 0.

во всех остальных ячейках у нас неизвестно.
И известно сумма для каждой позиции и общая сумма для всех групп баллов.


Цель заполнить матрицу так, чтобы сумма в каждой строке не должна превышать сумму группу,
сумма в каждом столбце не должна превышать сумма за позицию в чеке.
И цель сделать так, чтобы сумма всех элементов в матрице была максимальна.
__________________
Мой блог https://procrm.tv
Старый 20.12.2013, 21:21   #2  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Классические задачи дискретного программирования
1. упрощенная задача о назначении целей (кол-во переборов уменьшено информацией о том, какие баллы к какой группе товара принадлежат). Решение в лоб: отсортировать товары по группам применимости баллов, сначала тратим спец баллы, потом обычные. Если речь идет об одном чеке.
2. при условии, что числа целые, это задача о ранце. Только добавятся итерации по подбору значений для каждой ячейки. Минус решения перебором большое кол-во итераций, но можно попробовать прикрутить метод приближения непрерывными задачами множителями Лагранжа, чтобы сократить кол-во итераций.
А как решали вы?
__________________
Sapere aude
Старый 20.12.2013, 23:14   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
По сути вопроса Diman уже высказался, а я немного позанудствую

Для чего нужна такая система лояльности при которой свою выгоду клиент не может рассчитать самостоятельно до покупки? Мне казалось что размер скидки должен стимулировать клента на покупку, а не быть, возможно приятной, но неожиданностью при подсчете итоговой суммы. Бедные продавцы-консультанты. Так и вижу их с маркером в руках объясняют клиенту как сформировалась итоговая сумма в чеке и рисуют описанную вами матрицу

К тому же, в общем случае стратегия максимизации скидки в отдельно взятом чеке может оказаться не самым выгодным вариантом для клиента по совокупности нескольких чеков. Система не может знать о планах клиента на будущие покупки, выбирая какую из групп балов потратить сейчас.

Не лучше ли сложную математику применять не в момент реализации скидки - траты балов, а в момент их (балов) начисления?
Целью разделения балов на группы является стимулирование клиента к покупке в следующий раз того же товара (группы товаров)? Тогда можно оставить единые универсальные балы, но рассчитывать количество начисляемых балов с учетом прошлых покупок клиента. Этакая накопительная система получения балов в разрезе групп товаров.
Если понадобится, то можно ещё ограничить максимальный процент скидки для каждой категории товаров в отдельности. И даже тогда порядок расчета скидки останется более прозрачным.
Старый 20.12.2013, 23:42   #4  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Не лучше ли сложную математику применять не в момент реализации скидки - траты балов, а в момент их (балов) начисления?
Целью разделения балов на группы является стимулирование клиента к покупке в следующий раз того же товара (группы товаров)? Тогда можно оставить единые универсальные балы, но рассчитывать количество начисляемых балов с учетом прошлых покупок клиента. Этакая накопительная система получения балов в разрезе групп товаров.
Если понадобится, то можно ещё ограничить максимальный процент скидки для каждой категории товаров в отдельности. И даже тогда порядок расчета скидки останется более прозрачным.
Видел описание похожей системы, которая пыталась вывести персональное кол-во баллов по конкретному покупателю, чтобы стимулировать на дальнейшие покупки на основе статистики по каждому покупателю. Довольно сложная софтина и модели, которые в ней применялись, внедрялась отдельно поверх ERP
__________________
Sapere aude
Старый 21.12.2013, 05:03   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,254 / 980 (37) +++++++
Регистрация: 03.04.2002
Разогнать отдел маркетинга к чертям собачим! Смысл баллов в мотивации покупателя. Если понять тяжело, средний покупатель не поймет. А без понимания это превращается в хаотичную раздачу халяв.
Гораздо ценнее собирать историю покупок. Чтобы можно было делать персональные спец. предложения. Но в таком случае баллы являются своеборазной платой клиенту за то, что он пользуется карточкой, т.е. помогает отделу маркетинга собирать о себе информацию.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: mazzy (10).
Старый 21.12.2013, 09:43   #6  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Я решал иначе, чего то мне кажется, что рюкзак тут не подойдет. и алгоритм с сортировкой баллов не сработает.
Эти варианты я продумывал.
Еще есть другие варианты решения?
здесь может так случиться, что могут быть доп ограничения какие-нибудь и Вы не сможете представить это в виде матрицы.
Мне лично дали задачу решить матрицу, потом пояснили суть, и мне без матрицы было проще решать.

За каждую покупку товара у Вас есть некие доп. баллы.
И Вы стимулируете человека эти сделать следуюшую покупку, чтобы эти баллы потратить.
Логично, что необходимо сначала тратить те баллы, которые для него уникальны и только ему походят, но что делать если нельзя такие однозначно найти.
3 товара, 3 группы, при этом каждая группа срабатывает на 2 товара и все пары товаров различны.
Здесь не решить жадностью и полный перебор не подойдет из-за скорости.
__________________
Мой блог https://procrm.tv

Последний раз редактировалось g.Naukovych; 21.12.2013 в 09:48.
Старый 21.12.2013, 11:20   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
что делать если нельзя такие однозначно найти.
Вам нужно формальное обоснование выбора приоритета одной группы балов над другой? Возьмите в качестве критерия например дату получения этих балов. Правда это не будет иметь никакого маркетингового значения, но вы же решаете чисто программистскую задачу
Старый 21.12.2013, 17:01   #8  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
Я решал иначе, чего то мне кажется, что рюкзак тут не подойдет. и алгоритм с сортировкой баллов не сработает.
Эти варианты я продумывал.
Еще есть другие варианты решения?
здесь может так случиться, что могут быть доп ограничения какие-нибудь и Вы не сможете представить это в виде матрицы.
Мне лично дали задачу решить матрицу, потом пояснили суть, и мне без матрицы было проще решать.
Почему не подойдет?
Матрица тут вообще не причем. Значения матрицы есть аргументы целевой функции и ограничений. Составляете систему уравнений и вперед.

Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
Логично, что необходимо сначала тратить те баллы, которые для него уникальны и только ему походят, но что делать если нельзя такие однозначно найти.
3 товара, 3 группы, при этом каждая группа срабатывает на 2 товара и все пары товаров различны.
Здесь не решить жадностью и полный перебор не подойдет из-за скорости.
Нет разницы, значит они одинаковые и можно выбирать любой.
Про жадность речи не было. Про экономию времени курить множители Лагранжа, как и предлагал.
Решение в лоб было на тех условиях, которые вы представили. Общее решение - задача о выборе целей.
Конечно, вышепредложенные задачи общие и к ним придется прикрутить ваши ограничения.
Можете попробовать на любом мат пакете либо Excel + Solver

Интересно все таки увидеть ваше решение. Хотя бы в общем виде. Потому что вопрос "Как решать?", ни разу не вопрос. Хочется от вас увидеть ответ на вопрос "Что решать?"
__________________
Sapere aude

Последний раз редактировалось Diman; 21.12.2013 в 18:01.
Старый 21.12.2013, 19:56   #9  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Посмотрел клиентов Manzana Group. Из знакомых только Кораблик, Киа, Тойота и Лукойл.
Жаль что нет кого-то к кому можно было бы завтра зайти и и попросить рассчитать бонусы при помощи:
Цитата:
баланс баллов, который разбит на сегменты
Цитата:
задача о назначении целей
Цитата:
решить матрицу
Цитата:
Составляете систему уравнений и вперед
Кстати, когда я учился в институте (более 20 лет назад), в нашем ВУЗе при решении оптимизационных задач приняты были подходы не на основ матриц (созданных на целевой функции и ограничениях), а на основе преобразований Лапласа, решения задачи в комплексной области и преобразовании ответа назад в область реальных чисел.
Есть большое желание подойти к консультанту в торговом зале и попросить его решить задачу при помощи перехода в область комплексных переменных.
Старый 21.12.2013, 21:07   #10  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
на основе преобразований Лапласа, решения задачи в комплексной области и преобразовании ответа назад в область реальных чисел.
Имеете ввиду дискретное преобразование Z/D? Так в чем же дело, предлагайте функцию и может быть такое решение устроит ТС.

Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Есть большое желание подойти к консультанту в торговом зале и попросить его решить задачу при помощи перехода в область комплексных переменных.
Попробуйте, расскажете
__________________
Sapere aude
Старый 21.12.2013, 20:24   #11  
Serge Kotov is offline
Serge Kotov
Участник
 
275 / 152 (6) ++++++
Регистрация: 06.10.2004
Адрес: Moscow
Действительно, как справедливо заметили уважаемые товарищи выше, схема "мотивации покупателя" выглядит сомнительно.

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

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

Правило номер один (для маркетолога) может звучать так: "Точность прогнозирования реакции покупателя обратно пропорциональна степени сложности схемы расчета баллов "программы лояльности."
__________________
Феномен управления www.men-c.com
Старый 21.12.2013, 23:40   #12  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Я решил эту задачу алгоритмом поиска максимального потока.

Общее решение таково.
У нас есть 1 вершина - неограниченный источник баллов.
есть вершины - группы баллов.
от первой вершины до каждой вершины группы баллов протягиваем ребро (трубу).
пропускная способность каждой трубы равна сумме доступных баллов для группы.

Далее у нас есть вершины - позиции.
Если эту групу баллов можно потратить на эту позицию, то соединяем вершины ребром (трубой)
Пропускная способность ребра устанавливается как бесконечность (очень большое число)
далее создаем еще одну вершину (сток).
соединяем вершины позиций с вершиной сток. пропускная способность каждого ребра (трубы) равна стоимости позиции.
теперь у нас система труб. Пускаем воду в эту систему и понимаем сколько по какой трубе течет.
Отсюда можно понять, сколько какой группы баллов будет тратиться.
__________________
Мой блог https://procrm.tv
Старый 22.12.2013, 00:26   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
По-моему, при такой схеме первыми будут расходоваться группы с большим количеством балов, и не факт что это будут более уникальные группы. Разве нет?
Старый 22.12.2013, 13:35   #14  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
Я решил эту задачу алгоритмом поиска максимального потока.
.
Тоже вариант.
__________________
Sapere aude
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задачка Link Курилка 4 22.03.2012 14:47
Задачка по математике klimova_m Курилка 2 29.04.2009 09:16
Дурацкая задачка Роман Кошелев Курилка 3 29.02.2008 15:02
Сколько я стою? %)) Ижа Курилка 194 17.06.2005 09:53
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:06.