In informatica, una regola di produzione (o semplicemente regola) è un formalismo per la rappresentazione della conoscenza e per la trasformazione di strutture simboliche. Originariamente introdotte dal matematico Emil Post per descrivere sistemi formali di manipolazione di stringhe, le regole di produzione sono successivamente divenute l'elemento centrale dei sistemi a regole e dei sistemi esperti nell'intelligenza artificiale, oltre che delle grammatiche formali descritte da Noam Chomsky.
In termini generali, una regola formalizza una relazione d'inferenza o una trasformazione condizionata nella forma:
SE ALLORA oppure anche
dove rappresenta la condizione (o antecedente) e rappresenta l'azione o la nuova informazione prodotta (o conseguente).
Nell'ambito dell'ingegneria della conoscenza, l'antecedente è generalmente formato da una congiunzione () o disgiunzione () di condizioni o pattern da riscontrare nello stato corrente del sistema:
Quando lo stato attuale soddisfa le condizioni stabilite nell'antecedente, la regola diventa attivabile. L'esecuzione del conseguente determina la modifica dello stato, mediante l'asserzione di nuovi fatti, la cancellazione di dati esistenti o la produzione di azioni verso l'esterno.
In logica matematica una teoria (o base di conoscenza) può essere composta da assiomi in forma di fatti e regole ossia clausole definite (o di Horn) costruite a partire da formule atomiche (atomi). In informatica questo formalismo è alla base dei programmi della programmazione logica.
Nelle grammatiche formali, una regola di produzione esprime la sostituzione di simboli alfabetici nella forma , definendo la derivazione delle stringhe di un linguaggio formale.
Nei sistemi basati su regole, la gestione e l'applicazione del corpo di regole sono affidate a un algoritmo denominato motore inferenziale. L'esecuzione avviene tipicamente all'interno di un ciclo a tre fasi (Match-Resolve-Act):
Per ottimizzare la fase computazionalmente onerosa di match, si fa largo uso dell'algoritmo Rete sviluppato da Charles Forgy, che costruisce un grafo aciclico orientato per valutare in modo efficiente le relazioni tra regole e fatti dinamici.
L'elaborazione delle regole di produzione può seguire due direzioni logiche fondamentali:
I sistemi a regole avanzati integrano meccanismi per gestire la conoscenza incerta, vaga o probabilistica. Tra questi, il modello dei fattori di certezza (certainty factors, CF) associa uno scalare sia alle premesse che alle regole stesse:
SE (con ) ALLORA (con )Il fattore di certezza risultante per la conclusione è dato da:
Tale approccio è stato reso popolare da sistemi storici come MYCIN per la diagnosi medica in presenza di incertezza, oltre che dall'applicazione della logica fuzzy.