Я нахожусь в стороне от попыток сгладить требования от клиента для механизма ценообразования в розничной среде. Мы определили механизм ценообразования как действующий по набору правил ценообразования, который устанавливает новые ценовые точки для купленных товаров на основе существующих товаров, уже находящихся в корзине покупок.Шаблоны проектирования и алгоритмы применения правил к фактам
Простой правило цены может быть ПОЛУЧИТЬ КРЫШКУ 40% OFF. Более сложное правило может быть ПОЛУЧИТЕ БЕСПЛАТНУЮ ШИРИНУ, КОГДА ВЫ ПОКУПАЕТЕ 2 ПАНТЕРА И ПОСЛЕДНЕЕ ПОСЛЕДНЕЕ $ 30.
Общая отраслевая практика применения этих правил, по-видимому, является конечной лучшей ценой для клиента, но оказалось, что, возможно, потребуется вариант ранжирования, а также вариант укладки.
Ранжирование позволит использовать правило, которое иначе проиграло бы, чтобы выиграть. Stacking позволит нескольким правилам выиграть.
Я рассмотрел многие из сообщений здесь о SO относительно двигателей правил, и мне нужна помощь в определении того, должен ли я рассматривать один из этих инструментов как часть моего проекта или если не какие шаблоны проектирования и алгоритмы могут быть применимы к дизайн.
Понятно, что это потенциально проблема NP, и количество предметов (фактов), с которыми я буду иметь дело, может превышать 100+ за транзакцию с переоценкой, требуемой при каждом добавлении нового элемента.
Любопытный, какой метод вы в конечном итоге происходит с? Это был правильный выбор? –
Мы создали собственный механизм правил, который в конечном итоге использовал множество методов для решения проблемы. У меня нет информации, чтобы поделиться с нами манжетой, поскольку это было решено и реализовано более 7 лет назад. В итоге мы использовали какой-то подход к локализации и применяли взвешивание к локализации. Затем мы использовали алгоритм маршрутизации с наименьшей стоимостью, чтобы определить наилучшую комбинацию ценовых сделок. Готовая работа оказалась одним из моих любимых проектов - мы написали ее как независимый модуль, который можно было использовать в других местах. Правила + набор входных данных -> набор выходных данных. – Bill