37
B1 Sistemi a regole Paolo Salvaneschi 1 B1_1 V1.3 Sistemi a regole Intelligenza Artificiale Paolo Salvaneschi Università di Bergamo Facoltà di Ingegneria Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale

Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 1

B1_1 V1.3

Sistemi a regole

Intelligenza Artificiale

Paolo Salvaneschi

Università di BergamoFacoltà di Ingegneria

Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie.Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall’ autore.

Sono graditi commenti o suggerimenti per il miglioramento del materiale

Page 2: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 2B1 Sistemi a regole Paolo Salvaneschi 2

• Tecnologie per l’inferenza logica• Programmazione logica• Sistemi di produzioni (sistemi a regole)• Architettura di un sistema a regole• Forward e backward chaining• Sviluppo di sistemi a regole

INDICE

Page 3: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 3B1 Sistemi a regole Paolo Salvaneschi 3

Tecnologie per l’inferenza logica

• La logica:– sistema per la rappresentazione formale del

ragionamento– formalismo di rappresentazione e regole di

derivazione sintattica (regole di inferenza)

Page 4: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 4B1 Sistemi a regole Paolo Salvaneschi 4

Tecnologie per l’inferenza logica

• Utilizzando una logica scriviamo:– Una base di conoscenza– Un insieme di fatti

• Ci si può chiedere se, dato un nuovo fatto, questo sia una conseguenza logica rispetto alla base di conoscenza ed ai fatti preesistenti

• Ci si può chiedere quali nuovi fatti possono essere conseguenze logiche rispetto alla base di conoscenza ed ai fatti preesistenti

Page 5: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 5B1 Sistemi a regole Paolo Salvaneschi 5

Tecnologie per l’inferenza logica

• Tecnologia dei sistemi basati sulla rappresentazione della conoscenza e sull’inferenza logica– La logica del primo ordine e l’inferenza in FOL sono

la base per la realizzazione delle relative tecnologie– Sono aggiunti altri aspetti (es. funzioni di calcolo o

input/output)– Tecnologie:

– Programmazione logica (Prolog)– Sistemi di produzioni (sistemi a regole)

Page 6: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 6B1 Sistemi a regole Paolo Salvaneschi 6

Programmazione logica

• Programmazione logica (Prolog)– Backward chaining (dept first,backtracking)– Funzioni di calcolo e input/output– Modifica della KB (assert, retract)– Negation as failure (¬ P è provato se il

sistema fallisce nel provare P)

Page 7: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 7B1 Sistemi a regole Paolo Salvaneschi 7

Sistemi di produzioni (sistemi a regole)

• Sistemi di produzioni (sistemi a regole)(XCON configuratore computer DEC; sistemi esperti; linguaggio OPS-5)– Forward chaining– Forward chaining efficiente (algoritmo RETE)– Funzioni di calcolo e input/output– Gestione della propagazione di fatti irrilevanti

– Utilizzo di algoritmi backward chaining– Selezione delle regole da attivare (conflict set)

Page 8: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 8B1 Sistemi a regole Paolo Salvaneschi 8

Sistemi di produzioni (sistemi a regole)

Insieme di regole del tipo:if <condizione> then <conclusione/azione>

Antecedente Conseguente

KB Base di conoscenza Motore inferenziale

Deriva ciò che è implicato logicamentedalla base di conoscenza KB

Page 9: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 9B1 Sistemi a regole Paolo Salvaneschi 9

madre(x) = madre(y) madre(x) = madre(y) padre(x) = padre(y) padre(x) = padre(y) Maschio(x) Femmina(x) ⇒ ⇒

Fratello(x, y) Sorella(x, y)

• Esempio di regoleif <condizione> then <conclusione/azione>

Sistemi di produzioni (sistemi a regole)

Page 10: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 10B1 Sistemi a regole Paolo Salvaneschi 10

Architettura di un sistema a regole

Base di regole (KB)“memoria a lungo termine”

Memoria di lavoro (fatti)“memoria a breve termine”

Interprete

• Base di regole Contiene tutte le regole di produzione

• Memoria di lavoro Memorizza lo stato raggiunto dal processo di risoluzione di un problema – i fatti conosciuti

• Interprete Applica un meccanismo di inferenza alle regole ed ai fatti per risolvere il problema

Page 11: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 11B1 Sistemi a regole Paolo Salvaneschi 11

Architettura di un sistema a regole

• Memoria di lavoro– La memoria di lavoro contiene la rappresentazione

dei fatti specifici– Le regole operano sulla memoria di lavoro – Le condizioni sono istanziate sulla base dei fatti

specifici– Le azioni comportano tipicamente l’asserzione o la

ritrattazione di fatti specifici nella memoria di lavoro (oltre ad altro, es. output)

Page 12: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 12B1 Sistemi a regole Paolo Salvaneschi 12

Sistemi di produzioni (sistemi a regole)

madre(x) = madre(y)padre(x) = padre(y)Femmina(x)⇒Sorella(x, y)

Femmina(Amelia)Femmina(Alba)(madre(Amelia) = Paola)(madre(Alba) = Paola)(padre(Amelia) = Mario)(padre(Alba) = Mario)

Regole Fatti

Interprete

madre(Amelia) = madre(Alba)padre(Amelia) = padre(Alba)Femmina(Amelia) ⇒ Sorella(Amelia, Alba)

madre(Alba) = madre(Amelia)padre(Alba) =padre(Amelia)Femmina(Alba) ⇒ Sorella(Alba, Amelia)

Sorella(Amelia, Alba)Sorella(Alba, Amelia)

Due regole istanziate da attivare (in questo caso due istanziazioni della

stessa regola)

Fatti

Page 13: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 13B1 Sistemi a regole Paolo Salvaneschi 13

Sistemi di produzioni (sistemi a regole)

(defrule sorella(padre ?x ?p)(padre ?y ?p)(madre ?x ?m)(madre ?y ?m)(femmina ?x)=>

(assert (sorella ?x ?y)))

(femmina Amelia)(femmina Alba)(madre Alba Paola)(madre Amelia Paola)(padre Alba Mario)(padre Amelia Mario)

• Regole e fatti nella sintassi di JESS?x = Amelia?y = Alba?p = Mario?m = Paola

Page 14: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 14B1 Sistemi a regole Paolo Salvaneschi 14

Architettura di un sistema a regole

• Pattern matcher– determina l'insieme delle regole potenzialmente

eseguibili (nel caso di forward chaining: le regole il cui antecedente è soddisfatto dai fatti contenuti nella memoria di lavoro)

Base di regole (KB)“memoria a lungo termine”

Memoria di lavoro (fatti)“memoria a breve termine”

InterpretePattern Matcher

Page 15: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 15B1 Sistemi a regole Paolo Salvaneschi 15

(defrule NomeDellaRegola "commento"(pattern_1)(pattern_2). . . (pattern_N)=>(action_1). . .(action_M))

Regole(defrule R_nonno "regola chetrova i nonni"(padre ?x ?y)(padre ?y ?z)=>(assert (nonno ?x ?z)))

Fatti(padre mario luca)(padre luca alberto)

Assegnazioni?x = mario ?y = luca ?z = alberto

Fatto aggiunto dopo l’esecuzione della regola istanziata(nonno mario alberto)

• Pattern matcher

Architettura di un sistema a regole

Page 16: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 16B1 Sistemi a regole Paolo Salvaneschi 16

Architettura di un sistema a regole

• Agenda– Il sistema mantiene un’agenda delle regole

istanziate– Da cui seleziona le regole da attivare che

producono nuovi fatti nella memoria di lavoro

Base di regole (KB)“memoria a lungo termine”

Memoria di lavoro (fatti)“memoria a breve termine”

Interprete Agenda

Page 17: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 17B1 Sistemi a regole Paolo Salvaneschi 17

Architettura di un sistema a regole

• Ciclo di esecuzione (fino a quando l’agenda èvuota)– determina l'insieme delle regole

potenzialmente eseguibili– aggiorna l’agenda– sceglie ed attiva una regola– aggiorna la memoria di lavoro

Page 18: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 18B1 Sistemi a regole Paolo Salvaneschi 18

Architettura di un sistema a regole

• Problemi:– Evitare i cicli infiniti riattivando istanziazioni di

regole già attivate (le regole devono essere inserite nell’agenda solo in presenza di fatti nuovi)

– Inefficienza del confronto diretto, ad ogni ciclo, di tutte le regole con tutti i fatti (algoritmi efficienti: RETE)

Page 19: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 19B1 Sistemi a regole Paolo Salvaneschi 19

Architettura di un sistema a regole

• Schema di funzionamento

FIREesegui l'azione associata alla regola

CONFLICT_RESOLUTIONseleziona la regola da applicare

MATCHdetermina l'insieme delle regole applicabili (cioè le regole il cui

antecedente è soddisfatto dai fatti contenuti nella memoria di lavoro)

Sono state identificate delle regole?

Tra le azioni c’è stop?

sino

sino

Forward chaining

Page 20: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 20B1 Sistemi a regole Paolo Salvaneschi 20

Architettura di un sistema a regole

• Match– Unificazione / algoritmi efficienti (RETE): determina

l'insieme delle regole il cui antecedente è soddisfatto dai fatti contenuti nella memoria di lavoro

– Produce un insieme di regole potenzialmente attivabili• Possono essere individuate più regole attivabili• Una regola può dar luogo anche a più istanziazioni

attivabili

• Fire– Esegue il conseguente della regola

Page 21: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 21B1 Sistemi a regole Paolo Salvaneschi 21

Architettura di un sistema a regole

• Conflict resolution– Sono potenzialmente eseguibili più regole

• Prima soluzione: sono eseguite tutteSignificato: esegue tutte le inferenze basate su fatti conosciuti anche se sono irrilevanti per gli scopi che si vogliono raggiungere

• Seconda soluzione: si adotta una strategia di controllo (un criterio per scegliere quale delle regole potenzialmente eseguibili - conflict set – deve essere effettivamente eseguita)

Page 22: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 22B1 Sistemi a regole Paolo Salvaneschi 22

Architettura di un sistema a regole

• Conflict resolution– Nessuna duplicazione.

Non si esegue la stessa regola sullo stesso argomento due volte

– Accensione in ordine di attivazioneLa regola attivata più di recente è accesa per ultima (FIFO, Breadth First)

– Vicinanza temporaleLa regola attivata più di recente è accesa per prima (LIFO, Depth First)

Page 23: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 23B1 Sistemi a regole Paolo Salvaneschi 23

Architettura di un sistema a regole

• Conflict resolution– Specificità

Si preferiscono regole più specifiche

– PrioritàSi preferiscono regole con priorità più alta assegnata esplicitamente

Page 24: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 24B1 Sistemi a regole Paolo Salvaneschi 24

Architettura di un sistema a regole

• Strategie di esplorazione della base di regole– Forward chaining

(in avanti) o controllo guidato dai dati– Backward chaining

(all'indietro) o controllo guidato dal goal G.

Page 25: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 25B1 Sistemi a regole Paolo Salvaneschi 25

Forward e backward chaining

Strategia forward (in avanti) o controllo

guidato dai dati

Page 26: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 26B1 Sistemi a regole Paolo Salvaneschi 26

Forward e backward chaining

Strategia backward(all'indietro) o controllo

guidato dal goal G.

Page 27: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 27B1 Sistemi a regole Paolo Salvaneschi 27

Forward e backward chaining

Misure

Allarmi

R1-R7 regoledi decisione

AND

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

Page 28: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 28B1 Sistemi a regole Paolo Salvaneschi 28

Forward e backward chaining

Strategia forward (in avanti) o controllo

guidato dai dati

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

Idea: Il processo di ragionamento è direttodai dati che sono propagati attraversola base di conoscenza, deducendo nuovi fatti

Page 29: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 29B1 Sistemi a regole Paolo Salvaneschi 29

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio

R6

ALLARMElieve

R1

Rotazionesignificativa

ALLARMEgrave

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

Gestione della propagazione di fatti irrilevanti

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio

R6

ALLARMElieve

R1

Rotazionesignificativa

ALLARMEgrave

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

Page 30: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 30B1 Sistemi a regole Paolo Salvaneschi 30

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

La regola attivatapiù di recente è accesa per ultima (FIFO, Breadth First)Es. Sono attivate nell’ordine R2 e R4E’ accesa per prima R2

Conflict set Regola accesaR4 R2 R2R4 R4R6 R5 R5R6 stop

Page 31: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 31B1 Sistemi a regole Paolo Salvaneschi 31

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

La regola attivatapiù di recente è accesa per prima (LIFO, Depth First)Es. Sono attivate nell’ordine R2 e R4E’ accesa per prima R4

Conflict set Regola accesaR4 R2 R4R6 R5 R2 R6R7 R5 R2 R7R5 R2 stop

Page 32: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 32B1 Sistemi a regole Paolo Salvaneschi 32

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6, 100

ALLARMElieve, STOP

R1, 10

Rotazionesignificativa

ALLARMEgrave, STOP

R4, 50

R3, 10R5, 50

R2, 10

Misura 1Fuori soglia

Misura 2Fuori soglia

R7, 100

E’ accesa la regola a priorità più alta tra le attivate

Conflict set Regola accesaR2 R4 R4R2 R5 R6 R6R2 R5 R7 R7R2 R5 stop

ordinata per priorità

Page 33: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 33B1 Sistemi a regole Paolo Salvaneschi 33

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7 Strategia backward(all'indietro) o controllo

guidato dal goal G.

Page 34: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 34B1 Sistemi a regole Paolo Salvaneschi 34

Forward e backward chaining

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

M1 >10 M2 >15 E1 alto D2 <-20

Spostamin atto

ALLARMEmedio, STOP

R6

ALLARMElieve, STOP

R1

Rotazionesignificativa

ALLARMEgrave, STOP

R4

R3R5

R2

Misura 1Fuori soglia

Misura 2Fuori soglia

R7

Idea: procedere all’indietro dall’obiettivo G:per dimostrare G tramite KB, verifica se G è già dimostrato. Se non lo è, dimostra tramite KB tutte le premesse di una regola che ha G come conclusione

G

G1

G2

Page 35: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 35B1 Sistemi a regole Paolo Salvaneschi 35

Forward e backward chaining

R4

R1 R2

R3

R5

OR

Quale si sceglietra R1 e R2 ?

Es. la prima regola attivata. Se fallimento si ritorna indietro e si prova la successiva

(Esplorazione depth first dell’albero AND / OR)

Page 36: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 36B1 Sistemi a regole Paolo Salvaneschi 36

Sviluppo di sistemi a regole

• Motivazioni per utilizzare un sistema a regole– E’ richiesta una significativa capacità di prendere

decisioni– Le regole decisionali sono potenzialmente

complesse– Le regole cambiano nel tempo– Il codice è mantenuto nel tempo

Page 37: Sistemi a regole - Università degli studi di Bergamo a...Architettura di un sistema a regole • Problemi: – Evitare i cicli infiniti riattivando istanziazioni di regole già attivate

B1 Sistemi a regole Paolo Salvaneschi 37B1 Sistemi a regole Paolo Salvaneschi 37

Sviluppo di sistemi a regole

• Note di Ingegneria del Software relativamente ai sistemi a regole“Ingegneria della conoscenza” ????????– Analisi dei requisiti / Specifiche incerte– Processo di sviluppo iterativo– Componente da integrare con altre tecnologie– Linguaggio dichiarativo e motore di inferenza: piacevole– Base di regole grande e meccanismi di controllo embedded

nel motore di inferenza e nei suoi parametri (es. priorità di accensione delle regole nel conflict set): spiacevole; codice complesso difficile da capire

– Sistemi basati su modelli