2009-11-06 12 views
16

Qual è la differenza tra un motore di regole e un sistema esperto?Regole Sistema motore contro esperto

Esempio 1: Supponiamo di avere un programma che determina la data di scadenza di una nuova patente di guida. Prende input come data di scadenza del visto, numero di passaporto, compleanno, ecc. Determina la data di scadenza della patente di guida da questo input. Può anche dare un errore se l'input non ha abbastanza identificazioni valide per consentire una nuova patente di guida.

Esempio2: Diciamo che sto creando una versione online del gioco Monopoly. Voglio la possibilità di cambiare le regole del gioco (diciamo $ 400 per il passaggio o nessuno può comprare le proprietà fino a che non atterrano sulla stessa proprietà due volte, ecc.). Ho un modulo nel codice per gestire queste regole.

Sono questi entrambi i motori di regole o sono sistemi esperti? Entrambi sembrano così simili. È solo un sinonimo?

risposta

13

Il "motore di inferenza" (quello che credo si chiami il "motore delle regole") è parte di un sistema esperto. L'altra parte è la "base di conoscenza" (la tua lista di regole, le cose che conosce, quelle che finora ha capito, ecc.)

Il motore di inferenza è la parte che effettivamente usa le tue regole e i fatti noti per inferire le cose.

Nei tuoi due esempi sopra, stai parlando di sistemi esperti. Una specie di.

Ti darò un terzo esempio. GNU make è un motore di inferenza . Se viene fornita una serie di regole di compilazione e file datati, può capire cosa deve essere ricostruito, ma deve essere detto a tutte quelle cose. Il tuo sistema di compilazione che include i makefile, gli script associati e si crea da solo è un sistema esperto .

Ho trovato una spiegazione dettagliata online here, ma è forse un po 'troppo dettagliata per un neofita.

+0

grazie, mi sono chiesto molto tempo su questa differenza –

1

Penso che la differenza sia semantica e solo un po 'di più.

Un "sistema esperto" implica che il sistema include la codifica per il prelievo del cervello dell'esperto, cioè per trasformare la conoscenza di un dominio di un esperto nella serie di regole interne del programma.

Portalo via e direi che quello che rimane è un "motore di regole". Anche se è anche possibile costruire un sistema esperto che non si basa su un motore di regole.

2

Un "sistema esperto" indica in genere una particolare applicazione che comprende un insieme di conoscenze specialistiche su un determinato dominio del problema. Un sistema esperto può o non può utilizzare un motore di regole come parte della sua implementazione.

0

Questo è probabilmente vecchio. Ma la terminologia del motore delle regole, a volte è un nome assegnato ai ragionatori semantici o . Possono essere visti come un'estensione o una generalizzazione dei motori di inferenza .

E come answered by T.E.D, il motore di inferenza è solo una parte di un sistema esperto , l'altra essendo la base conoscenze. La base di conoscenza è l'assioma o la verità dell'intero sistema, e il motore di inferenza è ciò che prenderà questi assiomi per derivare nuove "verità".

+0

si prega di collegamento al discorso T.E.D si fa riferimento a. –

+1

@MartinThoma - (Blush). Beh, vedi ... sta parlando della risposta accettata. Non sono stato invitato a fare ** un ** TED talk in realtà, ma sarebbe divertente. –

+0

Hhahahah, non ho visto la tua risposta –