Je suis en train d'essayer de définir les exigences d'un client pour un moteur de tarification dans un environnement de vente au détail. Nous avons défini le moteur de tarification comme fonctionnant sur un ensemble de règles de tarification qui établit de nouveaux points de prix pour les articles achetés en fonction des articles existants déjà dans le panier.Création de modèles et d'algorithmes pour appliquer des règles aux faits
Une simple règle de prix pourrait être OBTENEZ UNE CHEMISE 40% DE RABAIS. Une règle plus complexe pourrait être OBTENEZ UNE CHEMISE GRATUITE QUAND VOUS ACHETEZ 2 PANTALONS ET DÉPENSEZ AU MOINS 30 $.
La pratique générale de l'industrie pour appliquer ces règles semble être le meilleur prix final pour le client, mais il est apparu qu'il pourrait être nécessaire d'avoir une option de classement ainsi qu'une option d'empilage. Le classement permettra une règle qui, autrement, serait perdante pour gagner. Empiler permettrait à plusieurs règles de gagner. J'ai passé en revue de nombreux articles sur SO concernant les moteurs de règles et j'ai besoin d'aide pour déterminer si je devrais examiner l'un de ces outils dans le cadre de ma conception ou sinon quels modèles et algorithmes de conception pourraient être applicables à la conception. Il est clair que c'est potentiellement un problème NP, et le nombre d'éléments (faits) que je vais traiter pourrait dépasser 100+ par transaction avec la réévaluation nécessaire chaque fois qu'un nouvel élément est ajouté.
Curieux quelle méthode avez-vous fini par aller avec? Était-ce le bon choix? –
Nous avons créé notre propre moteur de règles qui a fini par utiliser une variété de techniques pour résoudre le problème. Je n'ai pas d'informations à partager ici, car cela a été résolu et mis en œuvre il y a plus de 7 ans. Nous avons fini par utiliser une approche de localisation et appliquer une pondération aux localisations. Nous avons ensuite utilisé un algorithme de type routage à moindre coût pour déterminer la meilleure combinaison de prix. Le travail fini s'est avéré être un de mes projets préférés - nous l'avons écrit comme un module indépendant qui pourrait être utilisé ailleurs. Règles + jeu d'entrées -> jeu de sortie payant. – Bill