Nwlapcug.com


Come costruire un motore delle regole



Un motore delle regole è un software che elabora una richiesta secondo un database delle regole. In un sistema di motore di regole, l'utente seleziona un insieme di regole e quindi invia una "richiesta", che viene elaborata secondo le regole. I risultati di questa procedura sono poi segnalati dal sistema. Questo modello di elaborazione di informazioni è utile in una varietà di applicazioni.

Prolog

Il modo migliore per capire come funzionano i motori di regole è quello di imparare il linguaggio di programmazione Prolog. Il linguaggio Prolog è costituito da un motore di regole e una serie di convenzioni su come scrivere regole. Imparare come funziona il Prolog vi insegna come funziona un motore di regole..--e tutti i problemi che sorgono con motori di regole come tornando indietro e come rappresentare fatti e regole. Dopo le regole sono state scritte, Prolog è dato un'istruzione che tenta di trovare nel database dei fatti. Se non è un dato di fatto, ma è la conclusione di una regola, gli antecedenti della regola diventano le nuove istruzioni di ricerca. Ricorsione e backtracking procedere fino a quando o le regole sono soddisfatte o non possono essere soddisfatte, e quindi il sistema di Prolog pronuncia l'istruzione originale true, false o indecidibile.

Architettura del programma

Se il Comitato di progetto lo consente, si dovrebbe scrivere il tuo motore di regole nel prologo. Se non, probabilmente sembrerà molto come Prolog - fanno tutti i motori di regole. Nella prima parte del progetto, scrivere i fatti. Questa parte è come un database. Prossima scrittura che le regole - le regole devono essere raggruppate di conclusione. Se "A e B implica X" e "C e D implica X" pure, quindi queste due regole sono circa X e devono essere raggruppate. X è definito o descritto da A e B così come da C e D. Il motore di regole cercherà prima nel database per vedere se la richiesta corrisponde a una voce nel database. In questo caso, il sistema risponde "Sì". Altrimenti le regole motore sguardi alle conclusioni di tutte le regole..--se non esiste una corrispondenza, il sistema risponde "No". Se l'istruzione corrisponde a X, due percorsi verranno considerati: A e B e C e D. Se perseguendo A e B non porta da nessuna parte, il sistema "backtracks" e ritiene C e D. utilizzando Prolog rende questo facile, perché il motore delle regole è incorporato nel linguaggio.

Test del sistema

Quando il funzionamento del motore regola Guarda un'istruzione, tenta di "terra" l'istruzione. In logica, questo significa trovare un link (attraverso le regole) dall'istruzione ai fatti. Se l'istruzione (o la sua negazione) è nei fatti, si è fatto. In caso contrario, quindi verificare se l'istruzione è la conclusione di una regola. In caso contrario, quindi non può essere decisa l'istruzione. Se l'istruzione corrisponde alla conclusione di una regola, è possibile sostituire l'istruzione di obiettivo con gli antecedenti della regola. Questo sta facendo un link andando indietro attraverso una regola. Se la ricerca non riesce, potrebbe essere necessario tornare indietro e considerare una regola diversa cui conclusione corrisponde l'istruzione. È consigliabile testare il sistema dandogli istruzioni progressivamente più complesse. Provare prima una dichiarazione che corrisponde a un dato di fatto nel database. Quindi utilizzare un'istruzione che richiede solo una regola. Quindi utilizzare un'istruzione che richiede il backtracking, ecc.