9
votes

Quels motifs / motifs fonctionnent le mieux pour développer la règle / le moteur de décision

Je travaille sur un moteur de décision / d'évaluation de la règle. Par exemple:

entrée: client et toutes les infractions effectuées par le client

sortie: conséquences des infractions

Un cas d'échantillon serait:

Entrée: CLIENT (JHONNY CHIMPO, 999-00-1111), Infractions (Broke Windows, Boss giflé, Botter Team Lead dans son aine)

sortie: obtient le glissement rose

Donc, la pièce de code que je veux écrire évalue différentes infractions sur la base de règles de chaque infraction et d'une infraction combinée. Le code actuel est juste un labyrinthe de Si et d'autres déclarations. Je suis sûr que de tels problèmes d'entreprise sont courants. Quelle conception / modèle d'entreprise est généralement utilisée pour résoudre un problème comme celui-ci?

Est-ce le modèle de spécification? Je veux que le code soit ouvert pour l'extension, propre et flexible.


1 commentaires

Voulez-vous en écrire un? Jess Jessrules.com


6 Réponses :


-1
votes

Je pense que vous essayez de développer un système expert. Vous pouvez vérifier le terme, puis vérifier les langages de programmation appropriés en tant que prolog + etc.


3 commentaires

Je n'essaie pas de construire un système expert.


@PerpetualCoder En fait, ce que vous avez énuméré est précisément un système expert.


Un système expert n'est-ce pas aussi une machine d'apprentissage pour faire un travail spécifique?



3
votes

Je peux vous suggérer un outil que nous avons utilisé pour résoudre un problème similaire.

Jetez un coup d'oeil à jboss Brools: http://www.jboss.org/drols/

C'est un BRMS: Système de gestion des règles d'entreprise

Voici une vidéo introductive: http://www.jboss.com/products / Plateformes / BRMS /


1 commentaires

J'essaie de développer dans la plate-forme .NET +1 pour mentionner le grand produit



3
votes

essentiellement des règles commerciales ressemblent à xxx

Qu'en est-il de la catégorisation de toutes les infractions par sévérité à l'aide de scores, peut-être un bonus supplémentaire pour des "mauvais arbitres" fréquents, certaines infractions peuvent devenir barrées temporelles et quelle que soit la nécessité .

Puis un brouillon d'un algorithme pourrait être:

  • Somme de toutes les scores d'un client (pondéré)
  • comparer au maximum

    Ce serait directement en avant à l'aide de structures de données au lieu de nombreuses (éventuellement profondément imbriquées) si..then..elez des choses.


1 commentaires

Le code actuel que nous avons est le labyrinthe de if-boucles




0
votes

Vous pouvez essayer quelque chose de similaire à Ce "Moteur de règles" basé sur l'événement "


0 commentaires

0
votes

Je pense que tout moteur de règle à base d'algorithme à rééquipier fonctionnerait pour votre cas. Vous pouvez essayer des bourses.


0 commentaires