Construcció d’un Sistema Expert per caracteritzar el risc de...
Transcript of Construcció d’un Sistema Expert per caracteritzar el risc de...
Construcció d’un Sistema Expert per
caracteritzar el risc de contaminació del sòl
utilitzant l’eina FuzzyTech
TITULACIÓ: Enginyeria Tècnica en Informàtica de Gestió
AUTORS: Alejandra Godia González
DIRECTORS: Dra. Aida Valls, Dra. Marta Schuhmacher
DATA: Juny / 2008.
Departament d’Enginyeria Informàtica i Matemàtiques
2
AGRAÏMENTS Aquest projecte s’ha pogut fer gràcies al suport del projecte espanyol CTM2007-
64490/TECNO (/Desarrollo de un modelo de evaluación de
exposición y riesgo por la aplicación de fangos de depuradoras en suelo
agrícola, basado en un sistema experto neuro-fuzzy integrado en SIG/).
Personalment vull agrair a la meva família que m’ha estat donant suport durant tot el
projecte, a l’Aida Valls per confiar en mi i tirar en davant aquest projecte, i finalment, a
la Marta Schumacher per l’interès que ha mostrat a l’hora d’ajudar-me en tot el
possible.
3
1 INTRODUCCIÓ............................................................................................................ 5 1.1 FUZZYTECH......................................................................................................... 7 1.2 OBJECTIUS PFC................................................................................................... 9 1.3 ESTRUCTURA DEL DOCUMENT ..................................................................... 9
PART I. CONCEPTES TEÒRICS ................................................................................. 11 2. LÒGICA FUZZY ....................................................................................................... 11
2.1 OPERACIONS ..................................................................................................... 12 2.1.1 COMPLEMENTACIÓ.................................................................................. 12 2.1.2 UNIÓ ............................................................................................................. 13 2.1.3 INTERSECCIÓ ............................................................................................. 14
2.2 FUZZYFICACIÓ ................................................................................................. 15 2.3 DEFUZZYFICACIÓ............................................................................................ 16
3. SISTEMES EXPERTS DIFUSOS ............................................................................. 20 3.1 INTRODUCCIÓ ALS SISTEMES EXPERTS.................................................... 20 3.2 ADQUISICIÓ DEL CONEIXEMENT ................................................................ 23 3.3 AVANTATGES I INCONVENIENTS DELS SISTEMES EXPERTS .............. 25 3.4 SISTEMES EXPERTS DIFUSOS ....................................................................... 26
3.4.1 GRAU DE SATISFACCIÓ DE L’ANTECEDENT ..................................... 26 3.4.2 APLICACIÓ D’UNA REGLA...................................................................... 28 3.4.3 OBTENCIÓ DE LA CONCLUSIÓ .............................................................. 30
3.5 AVANTATGES I INCONVENIENTS DELS SISTEMS EXPERTS DIFUSOS 32 3.6 SISTEMA EXPERT EN FUZZYTECH .............................................................. 32
3.6.1 DEFINIR LES VARIABLES D’ENTRADA ............................................... 32 3.6.2 DEFINIR LES VARIABLES DE SORTIDA ............................................... 35 3.6.3 DEFINIR LES VARIABLES INTERMITGES ............................................ 36 3.6.4 DEFINIR EL BLOC DE REGLES ............................................................... 37
4. ELS SISTEMES NEURO-FUZZY ............................................................................ 41 4.1 FUNCIONAMENT D’UNA NEURONA............................................................ 41 4.2 LA NEURONA ARTIFICIAL ............................................................................. 42
4.2.1 TOPOLOGIES .............................................................................................. 43 4.2.2 FUNCIONAMENT ....................................................................................... 44 4.2.3 APRENENTATGE........................................................................................ 44 4.2.4 AVANTATGES I INCONVENIENTS DE LES XARXES NEURONALS 48
4.3 NEURO-FUZZY EN GENERAL ........................................................................ 49 4.4 AVANTATGES I INCONVENIENTS DEL SISTEMA NEURO-FUZZY........ 50 4.5 NEURO-FUZZY A FUZZYTECH..................................................................... 50
4.5.1 CONFIGURACIÓ......................................................................................... 50 4.5.2 EXECUCIÓ................................................................................................... 52
PART II. APLICACIÓ AL CAS DE LA CATEGORITZACIÓ DEL RISC DE CONTAMINACIÓ D’UN SÒL ..................................................................................... 55 5. ADQUISICIÓ DEL CONEIXEMENT ...................................................................... 55
5.1 SISTEMA EXPERT PREVI ................................................................................ 55 5.1.1 APROFITAMENT ........................................................................................ 56
5.2 DETERMINACIÓ DE LES REGLES ................................................................. 58 6. DISSENY I IMPLEMENTACIÓ EN FUZZYTECH ................................................ 60
6.1 CARACTERITZACIÓ DE LA FONT DE CONTAMINACIÓ .......................... 60 6.1.1 Descripció del projecte .................................................................................. 60 6.1.2 Estructura del sistema.................................................................................... 60 6.1.3 Variables........................................................................................................ 61 6.1.4 Blocs de Regles ............................................................................................. 69
4
6.2 VECTORS DE TRANSFERÈNCIA.................................................................... 76 6.2.1 Descripció del projecte .................................................................................. 76 6.2.2 Estructura del Sistema ................................................................................... 76 6.2.3 Variables........................................................................................................ 77 6.2.4 Blocs de Regles ............................................................................................. 82
6.3 SUBJECTES A PROTEGIR ................................................................................ 88 6.3.1 Descripció del projecte .................................................................................. 88 6.3.2 Estructura del Sistema ................................................................................... 88 6.3.3 Variables........................................................................................................ 89 6.3.4 Bloc de Regles ............................................................................................... 92
6.4 SISTEMA EXPERT JUNT .................................................................................. 96 7. JOC DE PROVES DEL SISTEMA EXPERT ........................................................... 98
7.1 ESTUDI D’UN CAS DETALLADAMENT........................................................ 98 7.2 CARACTERITZACIÓ DE LA FONT DE CONTAMINACIÓ ........................ 101 7.3 VECTORS DE TRANSFERÈNCIA.................................................................. 107 7.4 SUBJECTES A PROTEGIR .............................................................................. 110 7.5 SISTEMA EXPERT JUNT ................................................................................ 112
8. ESTUDI DE L’ÚS DE LES TÈCNIQUES NEURO-FUZZY EN AQUEST PROBLEMA ................................................................................................................ 116 9. CONCLUSIONS ...................................................................................................... 119 10. VALORACIÓ PERSONAL DEL PROJECTE FINAL DE CARRERA............... 121 11. TREBALL FUTUR ................................................................................................ 122 12. REFERÈNCIES...................................................................................................... 123
12.1 Bibliografia....................................................................................................... 123
5
1 INTRODUCCIÓ El sòl és un recurs natural, però no sempre renovable. Per aquest motiu i per què en les
últimes dècades els sòls han patit una forta degradació per la contaminació humana, la
Unió Europea va establir la protecció del sòl i el va integrar com un recurs natural amb
el qual s’ha de vigilar [CEC, 2002]. Al 1998 es va fer una llei a Espanya on les
comunitats autònomes havien de fer un estudi dels seus sòls, mirar quins d’aquests són
contaminats i aplicar la tècnica per remeiar-ho més adient.
Per a aconseguir remeiar un sòl el primer pas consisteix en detectar-ne el nivell de risc
de contaminació. La valoració del risc de sòls contaminats implica l’avaluació del perill,
de la toxicitat i de l’exposició. El resultat de la valoració del risc d’un sòl és un nivell de
risc dins d’un rang predeterminat de valors. Així doncs, el procés de valoració del risc
consisteix en classificar un sòl dins d’una categoria a partir dels valors d’un conjunt de
variable. Fins ara, els mètodes de classificació que avaluaven els sòls contaminants
consistien en comparar els resultats analítics de certes variables amb uns valors límit
establerts pels governs i determinar si existia risc o no (dues categories). Si els resultats
analítics d’un sòl no superaven els límits establerts, es considerava que no era necessària
cap acció de remediació.
Com es pot veure, es tracta d’una aproximació massa simple per a un problema
mediambiental complex que depèn de molts factors que estan interrelacionats. Per
exemple la percepció del nivell de risc canviarà molt si ens fixem amb condicions
hidràuliques, o amb els processos físics, químics i biològics associats. Per tant, és
necessari tenir en compte tots els paràmetres que influeixen en la contaminació en el sòl
per poder determinar el nivell de risc.
A [Asante-Duah, 1998] s’estableix que les activitats que s’han de fer són: la
identificació de les fonts de la contaminació, la definició dels camins dels moviments
del contaminant, la identificació de poblacions potencialment en risc, la determinació
dels productes químics específics de gran preocupació, la determinació de la freqüència
de les exposicions del receptor als agents contaminadors ambientals, l’avaluació dels
nivells d’exposició del contaminant, la determinació de la resposta del receptor a les
exposicions químiques, i la valoració d’impactes o del dany resultant d’exposicions del
receptor al producte químic.
6
La informació recopilada en totes aquestes activitats té un cert grau d’imprecisió
associada. La imprecisió apareix quan els valors amb els que treballem no són
magnituds exactes, sinó que treballem amb valors aproximats (més o menys 15 mg/litre)
o amb valors qualitatius (poca quantitat). No s’ha de confondre imprecisió amb
incertesa. Parlem d’incertesa d’un enunciat quan la informació disponible per avaluar-lo
no és complerta. Per exemple, no hem pogut mesurar l’alçada del Joan tot i que
s’assembla a la del Pere que és de 1,60, per tant l’enunciat “L’altura del Joan és 1,65”
creiem que és correcte però és incert ja que no tenim suficient informació per saber si
aquest és el valor exacte o no.
Si es tenen en compte tots aquests factors es necessita manegar una gran quantitat de
dades simultàniament, que a més presenten imprecisió, això fa que el procés de
classificació dels sòls es compliqui. Per aquest motiu, hi ha una necessitat de
desenvolupar noves tecnologies computacionals que permetin el procés manegament de
la imprecisió i facilitin la caracterització del risc de llocs contaminats.
El grup AGA (Anàlisi i Gestió Ambiental) de la Universitat Rovira i Virgili porta uns
quants anys treballant en aquest tema. Un dels projectes de recerca actuals pretén
utilitzar eines de suport a la presa de decisions per millorar l’activitat de determinar si
un sòl és contaminat.
En aquest sentit, el 2005 es va presentar un altre projecte de final de carrera que
utilitzava un sistema expert difús per caracteritzar el risc de contaminació dels sòls
[García,2005].
El sistemes difusos permeten definir variables lingüístiques per treballar amb valors
imprecisos. Els sistemes experts (SE) imiten el comportament dels experts i es basen en
un conjunt de regles que relacionen les variables d’un problema, i permeten classificar-
lo.
En aquest sistema expert difús, el coneixement en forma de regles va ser proporcionat
per membres del grup AGA. El sistema es va implementar ad-hoc en Java. Les proves
inicials van donar molt bones expectatives, doncs resulta ser una aproximació adequada
del problema, que permet distingir diversos nivells de risc (es consideraven 4
categories) i a més és una eina fàcil d’utilitzar per usuaris no informàtics [Kumar,
2006].
Ara bé, degut a la complexitat d’aquest domini, els estudis posteriors han donat més
informació als experts, que fan que s’hagi de modificar el coneixement introduït en el
7
sistema. A més, s’ha comprovat que certs casos no es resolen de forma satisfactòria,
possiblement pels paràmetres d’implementació del sistema. A l’hora de voler introduir
aquests canvis s’han trobat diverses dificultats. En resum, podem dir que aquest
software té els següents inconvenients:
• L’execució no és eficient degut a les estructures de dades internes.
• El manteniment del codi és impossible ja que la implementació no segueix els
patrons habituals en sistemes de regles, i a més no està documentat.
• No s’utilitza cap motor d’inferència estàndards, i el model implementat no està
prou documentat i no es té seguretat de que els paràmetres siguin correctes.
Per aquest motiu, s’ha decidit implementar de nou el sistema expert utilitzant una eina
estàndard de construcció de sistemes experts difusos com és l’entorn FuzzyTech.
Cal comentar que la dificultat principal en la construcció d’aquest sistema expert és la
falta d’una base de casos resolts. Es disposa de molt pocs exemples de casos resolts que
indiquin els diferents nivells de risc de contaminant, i tampoc que utilitzin totes les
variables. Com s’explicarà més endavant, la manca de casos d’exemple fa que no es
pugui utilitzar cap mètode d’Intel·ligència Artificial per aprendre les regles que formen
el sistema expert, i que aquestes hagin de ser definides manualment pels experts a partir
de la formalització del seu coneixement del domini. Igualment, la manca d’exemples fa
que no es puguin usar les eines d’optimització de sistemes experts, com els sistemes
Neuro-Fuzzy, que necessiten una gran quantitat d’exemples resolts per poder comprovar
si les regles són adequades o no.
1.1 FUZZYTECH
FuzzyTech és un entorn de desenvolupament per a sistemes difusos que permet el
disseny d’un sistema difús i l’optimització del mateix utilitzant un entrenament basat en
xarxes neuronals.
És un programa comercial desenvolupat per INFORM GmbH, que és una companyia
fundada pel professor Zimmermann, que va ser un dels més reputables del món dels
investigadors en l’àrea de la lògica fuzzy per més de 20 anys. [www.fuzzytech.com].
El FuzzyTech facilita la tasca de construir sistemes experts difusos. Aquesta eina
incorpora un motor d’inferència i té una interfície gràfica molt potent i fàcil d’entendre.
Això permet construir sistemes experts de forma molt ràpida. L’execució del SE és
8
ràpida i compleix amb els estàndards per al desenvolupament del sistema de la lògica
fuzzy.
Aquest entorn de desenvolupament permet:
• La definició del sistema expert: introduint les variables, les regles i els operadors
que defineixen el comportament del sistema.
• Debugar un sistema expert: hi ha diversos mètodes per poder comprovar si el
sistema expert funciona com tu vols, és a dir pots fer un joc de proves i utilitzar-
lo de diferents maneres.
• La documentació d’un sistema expert: el sistema permet generar tota la
documentació de forma automàtica i ho guarda en un document on hi ha totes
les variables amb les seves gràfiques, totes les regles que hi ha, etc.
• Millora del sistema expert amb tècniques Neuro-Fuzzy: és una eina on s’utilitza
xarxes neuronals per millorar el sistema expert creat.
• La generació de codi: fuzzyTech genera una solució completa de lògica fuzzy en
codi font. Es pot utilitzar aquest codi font per compilar i enllaçar amb el codi
principal que es tingui, cridant el sistema de lògica fuzzy com una funció simple.
Depenent de la edició, es pot generar codi en C, codi font en assemblador per a
processadors, o blocs de funció per a controladors de lògica programable.
• Programabilitat i adaptació: fuzzyTech ve amb una interfície de programació
d’aplicacions que et permet controlar la majoria de les funcions en fuzzyTech del
teu software. Aquest API és subministrat com un DLL anomenat FTRCU
(Unitat de Control Remot de fuzzyTech) el qual conté totes les funcions que
necessites per integrar completament el fuzzyTech amb el teu programa.
Cal destacar que FuzzyTech és el líder del mercat en lògica fuzzy ja que ha permès
exitosament més aplicacions de lògica fuzzy que qualsevol altra eina. També perquè és
autoritzat per molts fabricants de sistema de control. Una altra raó per ser líder és que
reparteix més ràpid i més sistemes compactes que qualsevol altra eina de lògica fuzzy.
9
1.2 OBJECTIUS PFC L’objectiu d’aquest PFC és construir un sistema expert difús que ens ajudi a decidir
quin és el nivell de risc ambiental d’un sòl contaminat utilitzant l’entorn de
desenvolupament FuzzyTech.
Aquest objectiu es pot descompondre en els següents subobjectius:
• Adquirir els coneixements del tema, és a dir, entendre i aprendre la matèria
relacionada amb sistemes experts i amb xarxes neuronals.
• Obtenir i modelar el coneixement del domini, utilitzant com a base del projecte
final de carrera “Sistema experto para la priorización de suelos contaminados”
[García, 2005], i el suport dels experts del grup AGA..
• Aprendre a utilitzar l’entorn de desenvolupament de FuzzyTech, tant en la part
de sistemes experts com en la de Neuro-Fuzzy.
• Dissenyar i construir el Sistema Expert usant totes les eines de FuzzyTech.
1.3 ESTRUCTURA DEL DOCUMENT
Aquest document s’estructura en dues parts. La primera presenta els conceptes teòrics
que s’han estudiant en el projecte final de carrera, i també presenta l’eina FuzzyTech en
general. La segona part està centrada en l’aplicació pràctica d’aquests coneixements i
d’aquesta eina al cas de la categorització del risc de contaminació del sòl.
En el capítol 2 s’expliquen els conceptes bàsics de la lògica difusa (Fuzzy), que seran
utilitzats posteriorment. El capítol 3 està dedicat a l’explicació dels sistemes experts
difusos que utilitzarem en aquest projecte. En aquest capítol s’explica com crear el
sistema expert utilitzant l’eina FuzzyTech. En el capítol 4 es fa una introducció al
sistema Neuro-Fuzzy on s’especifica el funcionament de les neurones, i on s’explica
com crear un sistema neuronal fuzzy amb l’eina FuzzyTech. Dintre del capítol 5 podem
trobar l’explicació de la estructura del Sistema Expert que hem creat i les diferents
formes de crear les regles. En el capítol 6 estan definides i explicades totes les variables
i regles utilitzades en el Sistema Expert creat. El capítol 7 està dedicat a comprovar el
seu bon funcionament amb els jocs de proves pertinents. En el capítol 8 es fa un estudi
d’un petit Sistema Expert dels que hem creat aplicant-li les tècniques del Neruo-Fuzzy
10
per comprovar si millora. Al capítol 9 trobem les conclusions d’aquest PFC. En el
capítol 10 la valoració personal del projecte final de carrera realitzat. El capítol 11 està
dedicat a possibles millores d’aquest PFC per un futur. I finalment, en el capítol 12
trobem totes les referències utilitzades per elaborar aquest PFC.
11
PART I. CONCEPTES TEÒRICS
2. LÒGICA FUZZY
La lògica Fuzzy [Zadeh, 1965] ens permet manegar i processar certs tipus d’informació
en els quals es presenten termes inexactes i imprecisos.
En els conjunts clàssics (també anomenats nítids) o pertanys a un conjunt o no hi
pertanys, no es val un terme mig. Per tant, la pertinença és binària: cert o fals.
En canvi, amb els conjunts difusos podem utilitzar una pertinença graduada, és a dir,
que un element pot estar en diferents conjunts amb un cert grau. Si tenim l’interval [0,1]
on 0 vol dir que no hi pertany en absolut al conjunt, i 1 que hi pertany completament.
Podem dir que un element pertany al conjunt A amb 0,2 i al conjunt B amb 0,8. Com
més gran és la pertinença al conjunt, més gran és el valor assignat.
La funció que defineix un conjunt difús es diu funció de pertinença. Aquesta funció
donat un element del domini retornarà el valor corresponent que estarà en l’interval
[0,1]. Per tant, la funció de pertinença µ sobre el domini de referència D és de la
següent forma:
:µ D → [0,1]
Tenim un exemple de pertinença en la figura 1 on s’indica quan una persona és “alta” en
relació als metres que medeix:
Figura 1. Exemple de funció de pertinença ALT
12
2.1 OPERACIONS
Sobre els conjunts nítids es defineixen diverses operacions matemàtiques com la unió,
la intersecció, el complement, la cardinalitat, etc. Els conjunts difusos tenen les
mateixes operacions, però generalitzades pel cas de pertinença difusa..
A continuació expliquem les operacions que seran utilitzades posteriorment en el
Sistema Expert difús.
2.1.1 COMPLEMENTACIÓ
Aquesta funció ens permet construir el complementari d’un conjunt difús en un domini
D.
La pertinença d’un element al complementari és una funció que anomenem N – funció
de negació. Aquesta funció, quan el valor de l’element sigui 1 ens retornarà 0, per tant
N(1)=0.
N com funció ha de complir aquestes condicions:
• N(1)=0 i N(0)=1 són les condicions de contorn.
• per tot a,b en [0,1], si a≤ b aleshores N(a)≥N(b) és la condició de monotonia.
• per tot a en [0,1], N(N(a))=a és la condició d’involució.
Però hi ha infinites funcions que satisfan totes aquestes condicions. Això fa que mentre
pels conjunts nítids hi ha una única manera de fer el complementari, en els conjunts
fuzzy n’hi ha tantes com funcions N que satisfan les condicions anteriors.
Seguint amb l’exemple de l’alçada d’una persona, la complementació del conjunt µALT
(Figura 1) és el conjunt µno-ALT, representat a la figura 2.
13
Figura 2. Complement del conjunt ALT
2.1.2 UNIÓ
En aquesta operació, com tractem amb dos conjunts hi haurà dos graus de pertinença
que es combinen. La unió s’anomena t-conorma i donats els dos valors en l’interval
[0,1] en retornarà un altre en el mateix interval sent la unió. Aquesta funció ha de
complir les següents condicions:
• S(a,b) = S(b,a) (commutativa)
• S(a,S(b,c))=S(S(a,b),c) (associativa)
• si a≤ c i b≤ d llavors S(a,b)≤S(c,d) (monotonia)
• S(a,0)=a (element neutre)
Si fem una unió de la funció de pertinença de l’alçada quan considerem que és alt, i el
seu complementari queda representat en la figura 3.
Figura 3. Unió del conjunt ALT i del seu complementari
14
Els diversos operadors que compleixen les condicions anteriors són molts, els més
habituals són:
• Max: per cada valor del domini de referència, es tria la màxima pertinença als
conjunts que s’uneixen.
),max(),( babaS =
• BSum: per cada valor del domini de referència, se sumen els valors de
pertinença a tots els conjunts que s’uneixen, utilitzant un límit d’1 com a llindar
superior.
)1,min(),( babaS +=
2.1.3 INTERSECCIÓ
Com passa amb la unió, tenim dues funcions de pertinença amb les quals construirem
la funció de pertinença del conjunt intersecció. Aquesta funció l’anomenem T (t-norma)
i ha de complir les següents condicions:
• T(a,b) = T(b,a) (commutativa)
• T(a,T(b,c))=T(T(a,b),c) (associativa)
• si a≤ c i b≤ d llavors T(a,b)≤T(c,d) (monotonia)
• T(a,1)=a (element neutre)
Si fem la intersecció de la funció de pertinença de l’alçada quan considerem que és alt, i
el seu complementari queda com en la figura 4.
Figura 4. Intersecció del conjunt ALT amb el seu complementari
15
Les T-normes més conegudes són :
• Min: per cada valor del domini de referència, es tria la mínima pertinença als
conjunts que s’uneixen.
),min(),( babaT =
• Producte: per cada valor del domini de referència, se multipliquen els valors de
pertinença a tots els conjunts que s’uneixen.
babaT *),( =
2.2 FUZZYFICACIÓ
La fuzzyficació és el procés amb el qual transformem les variables numèriques del món
real a les variables fuzzy. Aquesta traducció la podem fer mitjançant les variables
lingüístiques.
Una variable lingüística pren com a valors paraules en llenguatge natural que
s’interpreten després mitjançant conjunts difusos.
La variable lingüística ve definida per quatre elements:
1. El nom de la variable lingüística. Per exemple l’alçada.
2. Els valors lingüístics que pot prendre la variable. Per exemple, si continuem amb
l’exemple de l’alçada li podem definir els valors lingüístics com el conjunt
{baix, mig, alt}. A cada element del conjunt se l’anomena terme lingüístic.
3. Univers de discurs sobre el qual pren valors la variable. És a dir, és el domini de
referència en el qual podem interpretar els termes lingüístics. Per exemple, amb
l’alçada el terme “baix” es pot interpretar amb uns certs valors numèrics en el
domini dels nombres reals. D’aquesta manera, l’univers de discurs de l’alçada és
un subconjunt de nombres reals.
4. Funció semàntica que a cada valor lingüístic li assigna un conjunt difús sobre el
domini de referència. Per exemple, al terme “alt” li assignarem l’alçada a partir
de 1,70 metres.
La fuzzyficació ens permet que si nosaltres tenim un individu amb alçada 1,70, enlloc
de raonar usant aquest valor precís, fem el raonament usant el valor lingüístic “alt”.
La variable lingüística corresponent a l’alçada, amb els seus termes lingüístics “baix”,
“mig” i “alt” està representada a la Figura 5:
16
Figura 5. Funció semàntica de l’alçada
Quan ja tenim la variable lingüística definida, es pot transformar qualsevol valor
numèric del seu domini de referència en el seu corresponent valor difús. Per exemple,
per una persona amb alçada de 2m li assignarem el valor “alt”. A un nen que medeix 1,2
m li donarem el valor “baix”, i a una altra que medeixi 1.5 li donarem el terme “mig”.
Tanmateix, en alguns casos el valor pot pertànyer a més d’un conjunt. Per exemple, una
persona amb alçada de 1.4 m pertany al concepte “baix” amb valor 0.3 i al concepte
“mig” amb valor 0.7. Si haguéssim d’escollir un sol terme, li assignaríem el de
pertinença més elevada, en aquest cas estatura “mitja”, però habitualment els sistemes
basats en lògica difusa permeten mantenir la informació de pertinença a les diferents
variables i treballar amb totes elles a la vegada. Així ho fan els sistemes experts difusos.
2.3 DEFUZZYFICACIÓ La defuzzyficació consisteix en traduir els valors difusos a valors del món real. És el
procés invers a la fuzzyficació.
Hi ha diferents formes de fer aquesta traducció. Suposem que tenim una variable
lingüística amb 4 termes, i que de cadascun hem fet un tall al seu conjunt difús a
diferents alçades, indicant que la seva activació es dona en diferents nivells.
Concretament, els termes “curta” i “extra_llarga” estan tallats a 0, és a dir, no el volem
considerar. El terme “mitja” està tallat a 0.55, i el terme “llarga” a 0.15, tal com es veu a
la Figura 6.
17
Figura 6. Conjunt difús a defuzzificar
Volem trobar el valor del domini de referència que millor representa el conjunt difús
format per la unió de “mitja” i “llarga”, segons la seva activació. Els 3 mètodes de
defuzzificació més habituals són:
• Mitjana del màxim (MoM): busca el terme lingüístic que s’ha activat més i
d’aquest es queda amb el punt del mig. Representat en la figura 7.
Figura 7. Mètode Mitjana del Màxim
Com estem utilitzant MoM el resultat és 45, ja que ens quedem amb el punt del
mig del terme amb l’activació màxima.
• Centre de màxims (CoM): és la mitjana ponderada dels màxims valors assolits
en cada terme lingüístic. Representat en la figura 8.
18
Figura 8. Mètode Centre de Màxims
En aquest gràfic ens mostra que s’ha activat les variables Mitja i Llarga. El
màxim que s’ha activat de Mitja és de 0.55 i agafem el valor del centre que és
45. De Llarga s’ha activat un màxim de 0.15, i el valor del centre és 70. El
centre de Curta és 15 i el de Extra_llarga és 87.5. Per tant, aplicant el CoM el
resultat és 50.36 el qual l’obtenim fent aquest càlcul:
(15 x 0) + (45 x 0.55) + (70 x 0.15) + (87.5 x 0)
0.55 + 0.15 • Centre de l’àrea (CoA): a vegades també s’anomena centre de gravetat (CoG), és
la mitjana dels valors del domini, cadascun ponderat segons la seva pertinença al
conjunt que estem defuzzyficant. La diferència amb la resta és que aquest
considera tots els punts del rang d’activació, no solament el centre. Aquest
mètode normalment és el més utilitzat. Representat en la figura 9.
Figura 9. Mètode Centre de l’Àrea
19
És el mateix gràfic que l’anterior, però aquest amb el model de defuzzyficació CoA.
Com podem veure, agafa tots els punts. La fórmula per calcular-ho és la següent:
20
3. SISTEMES EXPERTS DIFUSOS
3.1 INTRODUCCIÓ ALS SISTEMES EXPERTS Els Sistemes Basats en el Coneixement imiten les principals característiques de la
intel·ligència humana i la seva capacitat per resoldre problemes com el comportament
racional orientat a objectes, el comportament flexible i adaptatiu en funció de l’entorn, i
la capacitat d’aprendre de l’entorn i de l’experiència. [Newe,1990]
Els Sistemes Experts (SE) són Sistemes Basats en el Coneixement on el seu objectiu és
resoldre problemes específics i complexes en un determinat domini, que habitualment
són solucionats per experts humans.
Els sistemes experts són programes que incorporen l’experiència d’un expert humà dins
d’un camp restringit i delimitat, amb els quals podem donar una solució a un problema
plantejat com si es tractes d’un expert humà. I tenir experts humans en un domini és
molt costós tant en temps com en diners. [Haton, 1992]
Els sistemes experts utilitzen el raonament per poder donar una solució a partir de la
descripció d’un problema concret.
L’esquema d’un Sistema Expert es composa de 3 blocs, tal com es mostra a la figura 10.
21
Coneixement Dades del problema del domini concret
Figura 10. Esquema d’un SE.
• BASE DE CONEIXEMENT
Una base de coneixement conté el coneixement d’un domini específic,
codificat en forma de regles. El coneixement que hi ha a la base de
coneixement ens ajuda a resoldre un problema plantejat.
Les regles són del tipus “si condicions llavors conclusió” , és a dir, una
regla és aplicable si es compleixen les seves condicions.
El procés d’adquisició del coneixement és el punt més complex de la
construcció del SE, i el tractarem més endavant.
Els antecedents de les regles normalment apareixen lligats amb
conjuncions ja que és més fàcil recobrir tot el domini d’aplicació del
sistema. Però les premisses també es poden combinar mitjançant
conjuncions, disjuncions o es poden negar amb negacions.
• MEMÒRIA DE TREBALL
A la memòria de treball també se l’anomena base de dades o base de fets.
En la memòria de treball hi han les dades del problema plantejat que cal
resoldre.
Memòria de treball
Base de coneixement
Motor d’inferència
Solució
22
Aquesta memòria també pot emmagatzemar els raonaments utilitzats per
arribar a la solució durant l’execució del SE.
• MOTOR D’INFERÈNCIA
És l’algoritme encarregat de decidir quines de les regles que hi ha a la
base de coneixement cal utilitzar, a partir de les dades que hi ha a la
memòria de treball, i aplicar-les per arribar a una conclusió. Aquest
procés s’anomena procés de raonament.
La finalitat del motor d’inferència és arribar a una solució acceptable.
Hi ha tres tipus de raonament:
1. Raonament cap endavant: també el podem anomenar raonament
deductiu que consisteix en aplicar les regles que satisfan les
condicions (les aplicables) a les dades d’entrada i anar obtenint
conclusions que ens permeten activar altres regles fins trobar la
solució.
2. Raonament cap endarrere: també anomenat inductiu que
consisteix en partir d’una hipòtesi de solució del problema, que és
l’objectiu, i buscar si aquesta hipòtesi es pot satisfer amb les
condicions de les dades inicials.
3. Raonament híbrid: consisteix en combinar raonaments cap
endavant i cap endarrere. Aprofita les dades inicials i la guia de
l’objectiu per agilitzar el procés de raonament. El cicle és utilitzar
el raonament cap endavant i després cap endarrere tantes vegades
com sigui necessari. Per implementar-ho es podem utilitzar meta-
regles.
Quan construïm un sistema difús hem de tenir en compte que les regles que creéssim
han d’agafar tot el domini d’aplicació, que és la part del problema que volem tractar.
Normalment es fa una partició del domini i es defineixen les regles sobre aquesta
partició.
23
3.2 ADQUISICIÓ DEL CONEIXEMENT Quan parlem d’Enginyeria del Coneixement ens referim a la construcció, al
manteniment i al desenvolupament dels sistemes basats en el coneixement [Kendal,
2007].
Una de les tasques més importants de l’Enginyeria del Coneixement és l’Adquisició del
Coneixement, que es pot dividir en les següents subtasques:
• Identificació del problema: primer s’ha de determinar si el problema es pot
resoldre mitjançant les tècniques dels Sistemes Basats en el Coneixement, és a
dir que el problema no es pugui solucionar de manera algorítmica. També s’ha
de poder accedir a totes les fonts de coneixement necessàries.
El següent pas és buscar les fonts de coneixement necessàries per al
desenvolupament del sistema on les més comunes són els experts humans en el
domini del problema, llibres i manuals que explicitin el problema i tècniques de
resolució i exemples de casos resolts. Amb aquestes fonts es podran fer els
passos que permeten la resolució del problema i també l’avaluació.
L’enginyer de coneixement i l’expert realitzen una descripció on s’especifica els
objectius, motivacions, estratègies de resolució i la corresponent justificació, i
les fonts de coneixements.
• Conceptualització: necessitem detallar els elements bàsics del problema per
descobrir les relacions que hi ha entre ells. En particular, és necessari observar
com l’expert resol problemes típics i a partir d’aquests extreure principis
generals que poden ser aplicats en diferents contexts.
També s’ha de descompondre el problema en subproblemes, realitzant un
anàlisis fins que l’enginyer del coneixement identifica els conceptes que
defineixen el problema i pot fer una relació jeràrquica de les diferents fases de
resolució fins els operadors de raonament més elementals. D’aquesta forma
aconseguirem fer la estructura del domini i les diferents relacions entre els seus
components.
• Formalització: s’han de considerar tots els diferents esquemes de raonament
que es poden utilitzar per la resolució del problema.
En aquesta fase també s’ha d’analitzar la certesa i la completitut de la informació
disponible, dependències temporals, o la fiabilitat i consistència de la
24
informació. S’ha de descobrir quines parts del coneixement constitueixen fets
segurs i quins no.
• Implementació: s’ha de decidir el mode concret de representar el coneixement
per a que s’adapti a les estratègies de resolució que es necessiten i les relacions
entre els diferents conjunts de coneixement.
En aquesta fase es definiran les regles, i es descobriran problemes i
incompletituts que obligaran a revisar fases anteriors.
• Prova: s’ha de triar un conjunt de casos resolts representatius i amb aquests s’ha
de comprovar el funcionament del sistema. En aquesta fase és on es
descobreixen errors que permetran corregir anàlisis anteriors. Els errors poden
ser falta de regles, incompletitut, falta de correcció, etc.
Per poder fer l’adquisició del coneixement, existeixen diferents mètodes:
• Aquells que estan basats en la interacció entre un expert i un enginyer del
coneixement: quan l’enginyer és l’encarregat d’extreure el model del domini i
els coneixements que tenen sobre aquest l’expert. Després l’enginyer pot
construir les regles directament, o bé, amb un arbre de decisió que és una
estructura en forma d’arbre on cada node és un atribut i tindrà tants fills com
valors pot tenir aquell atribut. Quan arribem a un node que no té fills, és una
solució del problema.
• Les eines automàtiques d’adquisició del coneixement: l’expert humà utilitza un
programa per ajudar-lo a extreure el seu coneixement. Cada programa dependrà
molt del domini en el qual es treballa, però tindrà unes parts comunes com les
variables d’entrada, les de sortida, regles que es poden fer directament o amb un
arbre de decisió i el programa analitza les regles (atributs no utilitzats, solucions
no obtenibles, situacions no cobertes per cap regla, regles inconsistents, etc.)
• Els basats en l’aprenentatge automàtic: l’aprenentatge automàtic ha de partir
d’una primera representació del coneixement proporcionada pels experts en
forma d’exemples de casos resolts. D’aquesta forma, l’expert no ha d’explicar i
organitzar tot el seu coneixement, sinó buscar bons exemples per a que el
sistema adquireixi el coneixement del domini. Tanmateix, és difícil decidir
quina és la forma òptima per organitzar la informació sobre un domini i quins
són els exemples més adequats per a l’entrenament.
25
3.3 AVANTATGES I INCONVENIENTS DELS SISTEMES EXPERTS Els sistemes experts tenen moltes avantatges, les més significatives són les següents:
• Utilització en dominis concrets.
• Adequats amb dominis poc estructurats o anàrquics.
• Eficaços amb les tasques de diagnòstic i classificació.
• Capacitat d’autoexplicació de les seves deduccions, el que els converteix en
grans eines per a l’aprenentatge.
• Facilitat de comunicació amb l’usuari. Són molt interactius, cosa que fa que
l’interfície amb l’usuari sol ser en llenguatge natural.
• Permeten cert tipus d’extensions, com per exemple, el tractament de la
informació imprecisa, inexacta o aproximada.
Però els sistemes experts també tenen inconvenients i els més usuals són:
• Fragilitat ja que quan hi ha una situació que no està coberta per la base de
coneixement, o pel conjunt de regles, són incapaços de donar una resposta
raonable.
• Dificultat amb el control: els experts posseeixen coneixements (o estratègies) per
utilitzar el seu coneixement. A aquest tipus de coneixement s’anomena
metaconeixement i se li suposa situat en un nivell conceptual diferent del que
conté el coneixement sobre el domini.
• Baixa reutilització de les bases de coneixement ja que la tasca d’adquirir el
coneixement és quasi artesanal i dependent de l’expert i del domini. Aquestes
característiques fan que sigui molt difícil reutilitzar parcial o totalment una base
de coneixement.
• Incapacitat d’aprendre: la majoria de sistemes experts són incapaços d’aprendre
de les seves pròpies experiències. El resultat dels problemes és una informació
molt útil que hauria d’aprofitar-se per millorar les capacitats cognitives del
sistema.
• Problemàtica de l’adquisició del coneixement: la transferència del coneixement
dels experts humans al sistema expert sol tenir grans dificultats, com hem dit
abans.
26
• Problema de validació: el procés de validació dels sistemes experts és altament
complicat ja que s’ha de verificar que no existeixin inconsistències en la base de
coneixement, ni cicles deductius tancats, i en general, que el funcionament del
sistema sigui correcte.
3.4 SISTEMES EXPERTS DIFUSOS
Els sistemes difusos són sistemes experts on les regles es defineixen mitjançant conjunts
difusos. [Torra, 2006]
Una regla difusa, en general, està formada per una premissa que es defineix en termes
de variables lingüístiques i una conclusió que també està definida en termes lingüístics.
Recordem que la regla és si premissa llavors conclusió. Per exemple:
si distància és mitja i quantitat de població és baixa llavors risc baix.
En la construcció d’un sistema difús volem que la partició del domini sigui difusa, és a
dir, que un element pot pertànyer a més d’un conjunt, però les pertinences han de ser
parcials ja que la suma de les pertinences ha de ser 1.
Quan construïm el sistema, hem de decidir quines són les variables de sortida i les
variables d’entrada. Després haurem de definir per a cadascuna els seus termes
lingüístics, el seu domini, i els conjunts difusos corresponents. Després hem de definir
les t-normes, t-conormes i el procediment de defuzzyficació que utilitzarem. A
continuació es detalla el funcionament del sistema expert difús, tal i com s’explica a
[Torra, 2006].
3.4.1 GRAU DE SATISFACCIÓ DE L’ANTECEDENT
El grau de satisfacció de l’antecedent d’una regla és el grau en què la regla s’activarà.
La forma de calcular aquest grau és mirant la pertinença dels valors de les variables als
conjunts difusos que apareixen en l’antecedent i després combinant les pertinences amb
les conjuncions que utilitzem en l’antecedent.
Considerem una regla amb n variables d’entrada X1,...,Xn de la forma:
si X1 és t1,a i X2 és t2,b i X3 és t3,c i ... i Xn és tn,z llavors Y és tY,o
27
on ti,j és un terme lingüístic de Xi (suposem que el conjunt difús associat al terme ti,j és
µ i,j) i on tY,o és un terme lingüístic de la variable de sortida Y.
Aleshores, quan en un instant concret coneixem el valor de cada variable Xi (denotarem
aquests valors per xi), podem avaluar la certesa de les expressions “Xi és ti,j” per a
cadascuna de les variables. Per fer-ho s’ha de mirar en quin grau el valor xi satisfà el
conjunt µ i,j. Això és µ i,j(xi). Per tant, per a la regla anterior podem calcular:
µ 1,a(x1), µ 2,b(x2), µ 3,c(x3),..., µ n,z(xn)
Per finalitzar s’ha de calcular la t-norma que nosaltres volem:
T(µ 1,a(x1), µ 2,b(x2), µ 3,c(x3),..., µ n,z(xn))
Exemple: Si tenim les següents funcions de pertinença :
Figura 11. Funcions de pertinença
28
Aquestes funcions de pertinença són:
I la regla és: si ε és MP i ε∆ és MP-∆ llavors vc és PN
Fiquem que ε està en 3 i ε∆ està en 8,5
Llavors el grau de certesa de ε és µ MP(3)=(3-2,5)/(5-2,5)=0,2
I el grau de certesa de ε∆ és µ MP-∆ (8,5)=(8,5-7,5)/(10-7,5)=0,4
Ara els combinem mitjançant una t-norma, i considerem el mínim, per tant: T(µ MP(3),
µ MP-∆ (8,5)) = min(0,2, 0,4) = 0,2
En la figura 12 es dóna una representació de la gràfica del càlcul de la satisfacció de la
regla:
Figura 12. Càlcul de satisfacció d’una regla
3.4.2 APLICACIÓ D’UNA REGLA
Quan hem calculat el grau de satisfacció de l’antecedent, el següent pas és obtenir la
conclusió de la regla.
Quan l’antecedent se satisfà plenament, la conclusió serà la mateixa que tenim en la
regla, però quan no se satisfà plenament l’antecedent, la conclusió és una modificació
del que apareix en la regla.
Si suposem que el grau en què se satisfà l’antecedent és α , la conclusió de la regla serà
el conjunt difús que hi apareix truncat amb el valor d’α . Això és, si tenim com abans:
si X1 és t1,a i X2 és t2,b i X3 és t3,c i ... i Xn és tn,z llavors Y és tY,o
29
Si suposem que µ y,0 és el conjunt associat a tY,o , aleshores, la conclusió de la regla és el
conjunt difús:
µ (x) = min (α ,µ Y(x) )
on α = T(µ 1,a(x1), µ 2,b(x2), µ 3,c(x3),..., µ n,z(xn)).
Continuant amb l’exemple anterior:
Com que la funció de pertinença de la conclusió vc és PN és:
I com la satisfacció de la regla era 0,2, aleshores tenim que el procés d’aplicació de la
regla és el següent:
Figura 13. Procés d’aplicació d’una regla
I la representació gràfica de la conclusió de la regla és la següent:
Figura 14. Funció de pertinença corresponent a la conclusió de la regla
30
3.4.3 OBTENCIÓ DE LA CONCLUSIÓ
Per obtenir la conclusió quan tenim un conjunt de regles, el que fem és aplicar el mateix
procés d’aplicació per a cadascuna de les regles. Això ens retornarà un conjunt difús per
a cadascuna de les regles. La conclusió del conjunt de regles es defineix com la unió de
les conclusions.
Si l’antecedent d’una regla no es compleix, la conclusió és el conjunt buit. Això farà
que en fer la unió de les conclusions aquestes regles no tinguin cap participació en la
conclusió final.
Seguint amb l’exemple anterior:
El valor de l’ε és 3 i el de l’ ε∆ és 8,5 només es satisfan quatre regles i són:
En la figura 15 es mostra gràficament l’aplicació de cadascuna d’aquestes regles
utilitzant una funció de pertinença que és el resultat de tot el sistema:
31
Figura 15. Aplicació de les regles R1, R2, R3 i R4
La unió de totes les conclusions de les regles anteriors utilitzant la t-conorma màxima és
la següent:
Figura 16. Unió de les conclusions amb la t-conorma màxima
32
Però com a conclusió tenim un conjunt difús i normalment es vol que la variable de
sortida sigui un valor real. Aquest pas és el de defuzzyficació que ja hem explicat.
Seguint amb l’exemple:
Per finalitzar-lo i donar un valor real podem utilitzar el procés de defuzzyficació centre
d’àrea ja explicat. Si fem el seu càlcul ens dona un resultat de -1,563636.
3.5 AVANTATGES I INCONVENIENTS DELS SISTEMS EXPERTS DIFUSOS A part dels avantatges i inconvenients dels sistemes experts tradicionals, esmentats a la
secció 3.3, l’inconvenient més important és que s’han de fixar molts paràmetres per
construir un sistema expert difús. Quan s’han definit les regles hem de donar una funció
de pertinença per a cada terme, després hem de definir les t-normes, t-conormes i el
procediment de defuzzyficació que farem servir. I l’avantatge és que podem raonar amb
informació imprecisa.
3.6 SISTEMA EXPERT EN FUZZYTECH En aquest projecte fi de carrera s’utilitzarà l’eina FuzzyTech per construir sistemes
experts. En aquesta secció explicarem quins són els passos que s’ha de seguir per
construir un sistema expert en FuzzyTech.
Els passos que cal seguir són:
1. Definir les variables d’entrada
2. Definir les variables de sortida
3. Definir les variables intermitges
4. Definir els blocs de regles
3.6.1 DEFINIR LES VARIABLES D’ENTRADA
Per crear una variable d’entrada s’ha de clicar al menú l’opció Edit i després New
Variable i surt una pantalla on s’ha de definir la variable lingüística (Figura 17).
33
Després s’ha de ficar el nom que es vol per aquella variable lingüística, i escollir Input
Interface. Després s’ha de triar com es vol definir la variable:
Figura 17. Definició d’una variable lingüística d’entrada
1. Variable d’entrada amb funció de pertinença: marcar Compute MBF com
està en la Figura 17. Després es determina el rang dels valors de la
variable. El següent pas és ficar el número de termes que te la variable
lingüística (que pot ser “low, medium, high”, “negative, zero, positive”,
“small, medium, large”, “decrease, steady, increase” i “close, medium,
far”). En el mateix pas també s’ha de definir la seva semàntica, és a dir,
la funció de pertinença, que pot ser simètrica o asimètrica (Figura 18).
34
Figura 18. Definir característiques de la variable
L’últim pas per tenir ben definida la variable és definir els punts de la
funció de pertinença de cada terme (Figura 19).
Figura 19. Definir funció de pertinença
2. Variable d’entrada difusa: es marca Fuzzy en l’apartat de mètodes.
Aquesta és una variable on els valors que ens arribaran seran directament
els valors difusos, per tant, no caldrà fer el pas de fuzzyficació (en la
Figura 17 és el segon mètode de la llista). El següent pas només ha de
determinar quin número de termes té i la seva semàntica, de la mateixa
forma que en la variable d’entrada amb funció de pertinença.
3. Variable d’entrada categòrica: es marca Categorical (en la Figura 17 és el
tercer mètode). Una variable categòrica consta d’un conjunt de termes
ordenats però sense cap semàntica associada. Per crear els termes s’ha de
clicar sobre la variable i ficar New Term, i llavors ficar-li el nom que es
vol.
35
3.6.2 DEFINIR LES VARIABLES DE SORTIDA
Per crear una variable de sortida s’ha de clicar al menú l’opció Edit i després New
Variable i surt una pantalla on s’ha de definir la variable lingüística (Figura 20).
Després s’ha de ficar el nom que es vol per aquella variable lingüística, i el mètode que
vols que s’utilitzi per fer la defuzzyficació. FuzzyTech incorpora els mètodes més
utilitzats, que són el CoM, MoM, Fast CoA (veure secció 2.3).
El següent pas és determinar el rang dels valors de la variable de sortida. Després triar el
número de termes que té la variable lingüística, i la seva semàntica (que pot ser “low,
medium, high”, “negative, zero, positive”, “small, medium, large”, “decrease, steady,
increase” i “close, medium, far”). En el mateix pas també s’ha de triar com vols la
funció de pertinença que pot ser simètrica o asimètrica (Figura 21). Per finalitzar es pot
definir la funció de pertinença per cada terme de forma individual.
Figura 20. Definir variable lingüística de sortida
36
Figura 21. Definir característiques de la variable
3.6.3 DEFINIR LES VARIABLES INTERMITGES
Les variables intermitges serveixen per poder relacionar dos Sistemes Experts diferents.
És a dir, una variable intermitja és una variable de sortida d’un Sistema Expert, i la
variable d’entrada del Sistema Expert amb el qual el volem relacionar.
Per crear una variable intermitja s’ha de clicar al menú l’opció Edit i després New
Variable i surt una pantalla on s’ha de definir la variable lingüística (Figura 22).
Després s’ha de ficar el nom que es vol per aquella variable lingüística, i el mètode és
únic, solament pot ser Fuzzy. El següent pas és determinar el número de variables que té
i decidir quina és la seva semàntica.
37
Figura 22. Definir la variable lingüística intermitja
3.6.4 DEFINIR EL BLOC DE REGLES
Per crear un bloc de regles s’ha d’agafar del menú l’opció Edit, i després New Rule
Block. De totes les variables que s’han creat, s’ha d’indicar quines variables tindrà
d’entrada i quines de sortida (Figura 23), després s’ha de determinar quin operador
d’agregació d’entrades s’utilitzarà per calcular el grau de satisfacció de l’antecedent.
Serà un operador d’intersecció entre conjunts difusos (secció 2.1.3). Es pot escollir entre
Min-Max, Min-Avg i Gamma.
El Min-Max permet compensar l’agregació amb el mínim (quan volem simultaneïtat) i
amb el màxim (quan volem “replaçabilitat”, és a dir, en quan una de les variables de la
premissa d’una regla s’activi, tota la regla serà activada). Si posem el valor del
paràmetre λ a 0 es converteix amb el Mínim, i si li posem 1 com valor del paràmetre
llavors és el Màxim. I la seva equació és:
El Min-Avg permet compensar el mínim amb la mitjana dels valors:
38
L’operació Gamma fa una agregació multiplicativa en lloc de la clàssica additiva:
També cal triar quina operació d’agregació de resultat es vol fer servir (Figura 24), el
qual pot ser Màxim o BSum, que són operadors d’unió de conjunts difusos, explicats en
la secció 2.1.2.
Per finalitzar, s’han de posar dintre del bloc de regles totes les regles necessàries per
definir el sistema expert que s’ha creat, i el resultat amb termes lingüístics (Figura 25).
En aquesta figura es pot comprovar que les premisses estan a la part esquerra amb el IF,
i les conclusions estan a la dreta amb el THEN. El DoS és el pes d’importància que li
dona a les regles, en aquest cas és el mateix pes per totes.
Figura 23. Definir el bloc de regles
39
Figura 24. Definir els operadors del bloc de regles
Figura 25. Definir les regles
Les regles també es poden mostrar en forma de quadrícula (Figura 26).
Figura 26. Regles del sistema
40
La Figura 27 mostra un exemple amb 4 variables lingüístiques, on dues d’elles, el pes i
la població les hem utilitzat com variables d’entrada. Com variable de sortida tenim el
risc. La variable cant l’hem creat però no la utilitzem en aquest Sistema Expert. També
tenim un únic bloc de regles amb el qual hem seleccionat l’operador d’agregació
d’entrades Mínim, i l’operador d’agregació de resultats és el Màxim. Com tenim un
únic Sistema Expert no hem utilitzat cap variable intermitja, ja que no la podríem
relacionar amb cap altre Sistema Expert.
Figura 27. Visualització del Sistema Expert en FuzzyTech
41
4. ELS SISTEMES NEURO-FUZZY
Per pal·liar la dificultat de la construcció de la base de regles de Sistemes Experts
difusos es poden utilitzar eines d’aprenentatge neuronal, són els sistemes Neuro-Fuzzy.
4.1 FUNCIONAMENT D’UNA NEURONA
Les xarxes neuronals artificials son algoritmes que imiten el sistema de comunicació
neuronal dels animals i dels humans.
L’element estructural i funcional més important, en el sistema de comunicació neuronal,
és la neurona. L’esquema d’una neurona biològica és el següent:
Figura 28. Neurona biològica
Com podem veure en la figura 28, cada neurona té un cos principal i un nucli. Desprès
tenim les dendrites que són les ramificacions d’entrada de la neurona, les quals
propaguen la senyal a l’interior de la cèl·lula. I hi ha una ramificació de sortida que
s’anomena axó que depenent de la grandària del cos principal de la cèl·lula està a una
distància més gran o més petita. La seva funció és propagar una sèrie d’impulsos
electroquímics. Per últim, tenim les sinapsis que són les encarregades en que hi hagi
contacte d’una neurona amb una altra.
El funcionament és el següent. Les sinapsis recullen informació electroquímica que els
hi arriba des d’una neurona amb la qual està connectada. Aquesta informació arriba al
42
nucli on es processa i desprès genera una resposta que es propagada per l’axó. Més tard,
la senyal es ramifica i arriba a les dendrites de les altres neurones a través de la sinapsis.
El funcionament d’una neurona es composa de tres parts:
• Els receptors que són els encarregats de recollir les informacions en forma
d’estímuls.
• El sistema nerviós, que recull les informacions, les elabora, les guarda i les
envia.
• Òrgans efectors que reben la informació i la interpreten en forma d’accions
motores, hormonals, etc.
4.2 LA NEURONA ARTIFICIAL Una xarxa neuronal consisteix en la interconnexió d’un conjunt d’unitats elementals,
anomenades neurones, i que no són més que processadors molt primitius. [Isasi, 2004].
El que fa aquest processador és aplicar una funció d’activació als valors de les seves
entrades que provenen de connexions amb altres neurones, i d’aquesta forma s’obté un
valor que es converteix en la sortida (o sortides) el qual s’envia a les altres neurones.
Qui aplica la funció a les entrades és el nucli de la neurona i la importància de la
informació rebuda o enviada per les connexions es fa mitjançant l’ús de pesos per a
cada connexió.
Les xarxes neuronals artificials serveixen per trobar solucions als problemes de
classificació i predicció. Serveixen per millorar els sistemes experts creats.
Una neurona artificial és com podem veure a la figura 29:
Figura 29. Neurona Artificial
43
4.2.1 TOPOLOGIES
La topologia és la manera d’organitzar les diverses unitats en capes diferents, i també
les diferents funcions d’activació que es poden utilitzar. Combinant diferents topologies
podem obtenir diferents arquitectures de xarxes neuronals.
La xarxa neuronal més senzilla és la que té un número determinat d’entrades i una única
sortida, s’anomena Perceptró. Però aquesta xarxa només permet de calcular funcions
molt senzilles.
Una mica més complicat seria la xarxa monocapa, on apareix un conjunt de neurones
que formen la capa oculta. En la xarxa monocapa, com més neurones hi ha que formen
la capa oculta més complexes són les tasques que permet efectuar, però augmenta el risc
de sobreespecialització. També cal dir que la capa de sortida pot estar formada per més
d’una neurona en aquesta xarxa. (Figura 30).
Figura 30. Xarxa monocapa
Les topologies es poden complicar introduint més capes ocultes, és a dir, construint
xarxes multicapa. (Figura 31).
Figura 31. Xarxa multicapa
44
4.2.2 FUNCIONAMENT
El funcionament d’una neurona es pot descompondre en dues parts:
• La funció de combinació: a partir de tots els valors d’entrada, calcula un únic
valor. És a dir, el valor que arriba a través de la connexió d’entrada s’ha de
combinar amb el seu pes i el de totes les connexions d’entrada per a donar un
únic valor. Tenim varies funcions per calcular-ho: suma ponderada, funció
màxim, mínim, funció AND i la funció OR. Però la suma ponderada és la més
utilitzada.
• La funció d’activació: pren el valor calculat per la funció de combinació i el
passa a la connexió de sortida. Serveix per acotar el valor de sortida. La més
habitual és la funció Sigmoide que dóna valors entre 0 i 1.
4.2.3 APRENENTATGE Per a que una xarxa neuronal pugui comportar-se de la forma desitjada i funcionar com
un sistema concret cal entrenar-la. És a dir, la part més important d’una xarxa neuronal
artificial és l’aprenentatge. I el sistema d’aprenentatge és basat en exemples.
L’aprenentatge consisteix en la determinació dels valors dels pesos per totes les seves
connexions, amb la funcionalitat que pugui resoldre eficientment un problema. El
procés general de l’aprenentatge consisteix en introduir els exemples del conjunt
d’aprenentatge, i modificar paulatinament els pesos de les connexions per aproximar-
nos més al valor de la solució. La modificació dels pesos es pot fer després d’introduir
cada exemple del conjunt, o quan s’han introduït tots els exemples. Una vegada s’han
introduït tots els exemples s’ha de comprovar si l’aprenentatge ha acabat. Si no ho ha fet
es repeteix el procés.
Per saber si ha finalitzat l’aprenentatge ho podem determinar:
• Mitjançant un nombre fixe de cicles: es decideix prèviament quants cicles es vol
fer, és a dir, quantes vegades es vol introduir tot el conjunt. Una vegada has
arribat al número fixat es decideix que l’entrenament de la xarxa ha finalitzat.
• Quan l’error és més petit que una quantitat preestablerta: primer s’ha de definir
una funció d’error i es decideix un valor acceptable per l’error. El procés
finalitza quan el valor de l’error és més petit que el valor preestablert.
45
• Quan la modificació dels pesos sigui irrellevant: hi ha alguns models que
utilitzen un aprenentatge que consisteix en que els pesos de les connexions es
modifiquin cada vegada amb menor intensitat. Si el procés d’aprenentatge
continua, arribarà un moment en que no es podran fer més variacions dels pesos
i és en aquest moment on es finalitza el procés d’aprenentatge.
Per variar els pesos de la xarxa neuronal tenim un mètode d’aprenentatge del qual
explicarem els passos que s’han de seguir. [Isasi, 2004] Per poder entendre els passos
primer s’han de determinar unes equacions necessàries. Sigui ai l’activació d’una
neurona, definim:
• Equació 1: activació de les neurones de la capa d’entrada:
ai1 = xi per i = 1, 2,..., n
on X=(x1, x2, ..., xn) representa el patró d’entrada a la xarxa.
• Equació 2: activació de les neurones de la capa oculta c:
Per i = 1, 2, ..., nc i c= 2, 3, ..., C-1, on aj
c-1 són les activacions de les neurones de
la capa c-1, és a dir, la capa d’abans de la capa de sortida.
• Equació 3: activació de les neurones de la capa de sortida
Per i = 1, 2, ..., nC, on Y = (y1, y2, ...ync) és el vector de sortida de la xarxa.
• Equació 4: la funció d’Error.
E = ∑=
N
nne
N 1)(1
On N és el número de mostres i e(n) és l’error que s’ha comés per la xarxa per al
patró n, donat per l’Equació 5.
46
• Equació 5:
Sent Y(n) = (y1(n), ..., ync(n)) i S(n) = (s1(n), ..., snc(n)) els vectors de sortida de
la xarxa i les sortides desitjades pel patró n, respectivament.
• Equació 6: es defineix el terme δ associat a la neurona i de la capa de sortida
(capa C) i al patró n del següent mode:
• Equació 7: permet modificar el pes de la connexió de la neurona j de la capa
oculta C-1 a la neurona i de la capa de sortida
• Equació 8: serveix per modificar els llindars de les neurones de la capa de
sortida
• Equació 9: ens permet generalitzar la llei d’aprenentatge per a modificar els
pesos de la capa c a la capa c+1.
Per k = 1, 2, ..., nc, j = 1, 2, ..., nc+1 i c = 1, 2, ..., C-2
On akc(n) és l’activació de la neurona k de la capa c per al patró n i dj
c+1(n) ve
donada per la equació 10.
• Equació 10:
47
• Equació 11: ens permet la generalització de la llei d’aprenentatge per a la resta
de llindars de la xarxa neuronal.
Per j = 1, 2, ...nc+1 i c = 1, 2, C-2
I els passos per fer el mètode d’aprenentatge modificant els pesos són els següents:
1. S’inicialitzen els pesos i llindars de la xarxa. Generalment, aquesta inicialització
és aleatòria.
2. S’agafa un patró n del conjunt d’entrenament, i es propaga cap a la sortida de la
xarxa el vector d’entrada utilitzant les Equacions 1, 2, i 3, obtenint d’aquesta
forma la resposta de la xarxa per l’anomenat vector d’entrada.
3. S’avalua l’error quadràtic fet per la xarxa per al patró n utilitzant l’Equació 5.
4. S’aplica la regla delta generalitzada per modificar els pesos i llindars de la xarxa.
Per això es segueixen aquests passos:
Es calculen els valors δ per a totes les neurones de la capa de sortida utilitzant
l’equació 6.
Es calculen els valors δ per a la resta de les neurones de la xarxa utilitzant
l’equació 10, començant des de la última capa oculta i retropropagant aquests valors cap
a la capa d’entrada.
Es modifiquen pesos i llindars de la xarxa seguint les equacions 7 i 8 per als pesos i
llindars de la capa de sortida, i 9 i 11 per a la resta dels paràmetres de la xarxa.
5. Es repeteixen els passos 2, 3 i 4 per tots els patrons d’entrenament, completant
d’aquesta forma una iteració o cicle d’aprenentatge.
6. S’avalua l’error total amb l’equació 4 comés per la xarxa.
7. Es repeteixen els passos 2, 3, 4, 5 i 6 fins arribar a un mínim de l’error
d’entrenament, per a això es realitzen m cicles d’aprenentatge.
Aquest procés d’aprenentatge és el més utilitzat, però existeix una variant, que es coneix
amb el nom de procés batch. Bàsicament, es diferencien en que en aquest procés els
paràmetres (pesos i llindars) de la xarxa es modifiquen quan tots els patrons
d’entrenament han estat presentats a la xarxa, i no per cada patró d’entrenament.
48
4.2.4 AVANTATGES I INCONVENIENTS DE LES XARXES NEURONALS
Les avantatges que té utilitzar les xarxes neuronals són les següents:
• Com es comença amb una estructura predefinida, el grau de llibertat per
aprendre és limitat. La representació de les variables d’entrada i de sortida de les
funcions i la estructura del flux d’informació en el sistema conté molta
informació que la xarxa neuronal pot extreure de les mostres donades.
• Es pot excloure parts del sistema de l’entrenament. Per exemple, això és
necessari en aplicacions on algunes regles contenen un coneixement que és
essencial per a guardar l’operació d’una planta.
• Manualment es pot optimitzar el resultat de l’entrenament.
• Es pot entrenar el sistema de forma interactiva. Després de les modificacions, es
pot començar l’entrenament un altra vegada amb els mateixos o diferents
exemples.
Els inconvenients més importants quan utilitzes xarxes neuronals són els següents:
• Els exemples que introduïm en el sistema per fer l’entrenament de la xarxa
neuronal han de tenir aquestes característiques:
1. Ser significatius: ha d’haver un nombre suficient d’exemples perquè si
n’hi ha pocs, la xarxa no podrà adaptar els seus pesos de forma eficaç.
2. Ser representatius: els exemples hauran de ser molt diversos perquè si té
més exemples d’un tipus determinat, la xarxa s’especialitzarà en aquest
conjunt de dades i no serà d’aplicació general. Totes les regions
significatives han d’estar suficientment representades en el conjunt
d’aprenentatge.
• La solució de la xarxa neuronal és una “caixa negra”, és a dir, no es pot veure el
procediment que ha seguit per donar la solució adequada.
• Les xarxes neuronals requereixen un esforç computacional molt elevat pels
productes de mercat general.
• La selecció del model de xarxa adequat i la configuració dels paràmetres per
poder fer l’aprenentatge, és molt complicat i requereix experiència.
49
4.3 NEURO-FUZZY EN GENERAL La utilització de sistemes Neuro-Fuzzy ens permeten millorar i perfeccionar els resultats
d’un sistema expert, però amb tots els inconvenients que hem vist a la secció 4.2 hi ha
una limitació per poder verificar i optimitzar la solució d’una xarxa neuronal d’una
manera fàcil.
El punt fort de les xarxes neuronals és que poden aprendre dels exemples, i amb els
sistemes experts difusos és fàcil de verificar i optimitzar. Per aquest motiu, la
combinació de les xarxes neuronals i els Sistemes Experts difusos ens dóna el millor de
cadascuna de les tecnologies. I aquesta combinació és el Neuro-Fuzzy.
Per dissenyar una xarxa neuronal es requereix que el problema a resoldre tingui unes
característiques especials:
• S’ha de poder dividir el sistema en capes. D’aquesta forma, les entrades del
sistema són membres de la capa d’entrada, i les sortides del sistema són
membres de la capa de sortida.
• Els elements dintre d’una capa són independents. D’aquesta forma, tots els
membres d’una capa poden ser processats per processadors paral·lels.
El sistemes experts difusos compleixen aquests requeriments perquè:
• La fuzzyficació, computat per variables d’entrada independents, poden
representar la capa d’entrada.
• Les regles del sistema expert poden representar una capa oculta. Les diferents
regles es poden tractar com múltiples capes.
• La defuzzyficació, processat per variables de sortida independents, poden
representar la capa de sortida.
El Neuro-Fuzzy proporciona els mètodes per un aprenentatge supervisat. El mètode
d’aprenentatge és la funció heurística que avalua les neurones guanyadores per la
següent actualització. El nombre de neurones guanyadores determina quantes neurones
són actualitzades dins de cada pas de la iteració. Com més neurones guanyadores
s’utilitzen, és menor la dependència dels resultats de l’entrenament d’exemples
anteriors.
Normalment es combinen dos tipus d’aprenentatge: el Backpropagation i la idea
d’aprenentatge competitiu. Després que una sortida del sistema estigui computada amb
50
propagació cap endavant, un error de sortida és identificat per la comparació de la
sortida del sistema amb les dades de sortida donades en els exemples. El
Backpropagation és utilitzat per determinar la regla fuzzy més satisfeta per influenciar
el comportament del sistema. Les regles fuzzy són modificades durant el procés
d’aprenentatge via els seus DoS (Els graus de suport el qual ens indica quin és el grau
de satisfacció de la regla).
4.4 AVANTATGES I INCONVENIENTS DEL SISTEMA NEURO-FUZZY A part dels avantatges i inconvenients de les xarxes neuronals, esmentats a la secció
4.2.4, l’avantatge que té utilitzar els sistemes Neuro-Fuzzy és que es pot utilitzar
qualsevol coneixement que ja es tingui del sistema per començar-lo. Aquest
coneixement del domini és el que es posa inicialment al Sistema Expert difús. Un altre
avantatge és la possibilitat d’aprendre de casos resolts.
Els inconvenients més importants són els següents:
• Neuro-Fuzzy és una tecnologia “jove” encara i que s’ha d’estudiar més a
fons ja que pot donar un resultat molt acurat i pot disminuir molts
problemes.
• L’entrenament de Neuro-Fuzzy ofereix pocs graus de llibertat en l’algoritme
d’entrenament si ho comparem amb altres xarxes neuronals.
• Si les regles no són difuses, els procediments de l’entrenament neuronal no
es poden aplicar.
4.5 NEURO-FUZZY A FUZZYTECH
L’entorn de desenvolupament FuzzyTech incorpora un sistema Neuro-Fuzzy per
optimitzar un sistema expert difús. Per utilitzar l’eina de Neuro-Fuzzy s’han de fer dos
passos: configuració dels paràmetres de la xarxa i execució de la xarxa neuronal.
4.5.1 CONFIGURACIÓ
Per fer la configuració, anem al menú Tools, desprès Neuro i Configuration, d’aquesta
forma arribem a la configuració de la xarxa neuronal. Hem de triar el mètode
51
d’aprenentatge, el mode de selecció dels exemples, la condició d’aturada de
l’aprenentatge, ja que els exemples es van usant de forma repetida i els paràmetres
d’aprenentatge (Figura 32).
Figura 32.Característiques de la xarxa neuronal
La explicació de cada paràmetre d’aprenentatge és la següent:
• StepWidth(DoS): determinar el valor de freqüència utilitzat per a l’aprenentatge
per actualitzar els DoS de les regles fuzzy.
• StepWidth(Term): posar el valor de freqüència utilitzat per a l’aprenentatge per
actualitzar la posició dels termes de les variables lingüístiques.
• Winner Neurons: determina el número de paràmetres oberts, els quals són
actualitzats un a la vegada per l’algoritme d’entrenament.
La explicació de cada mètode d’aprenentatge és la següent:
• RealMethod: utilitza un únic exemple seleccionat per a trobar els millors termes
i regles per ser canviats. Els canvis per les funcions de pertinença i regles difuses
són computats utilitzant la StepWidth(Term) per canviar els termes, i la constants
StepWidth(DoS) per canviar les regles.
• RandomMethod: de la mateixa forma que el RealMethod solament utilitza
passos aleatoris de l’interval [0…StepWidth(Term)] per canviar els termes, i per
canviar les regles passos aleatoris de l’interval [0…StepWidth(DoS)].
• Batch_Learn: computa un grup en el qual tots els exemples són utilitzats per a
trobar els millors termes i regles per ser canviats.
52
• Batch_Random: com el mètode Batch_Learn, però utilitzant només passos
aleatoris de l’interval [0…StepWidth(Term)] per canviar els termes, i passos
aleatoris de l’interval [0…StepWidth(DoS)] per canviar les regles.
L’explicació de les condicions d’aturada és la següent:
• Max. Steps (Maximum of Steps): és el número màxim de repeticions dels
exemples.
• Max. Dev.(Maximum of Deviation): el criteri de màxima desviació compara
l’error del pitjor exemple amb un llindar d’error. Els exemples que estan per sota
del llindar són passats per alt dins del procediment d’entrenament.
L’entrenament d’un sol exemple pot incrementar l’error d’altres exemples; per
tant, els resultats d’entrenament són avaluats automàticament després de cada
iteració completa.
• Avg. Dev.(Average Deviation): el criteri de la mitjana de la desviació es
complert si la mitjana dels errors ocorreguts durant una iteració completa està
per sota del llindar d’error definit. L’error mitjà es calcula sumant els errors de
cada exemple dividit pel nombre total d’exemples.
4.5.2 EXECUCIÓ
Quan tenim la xarxa configurada, per executar-la tenim que anar al menú i donar-li a
Tools, després Neuro, i per finalitzar Learning. Llavors tenim que buscar el fitxer on
estan els exemples que li volem donar per a que pugui aprendre. Un cop ja l’hem
seleccionat ens surt la pantalla del control de l’aprenentatge per saber com estan
afectant els exemples del fitxer (Figura 33). D’aquesta forma comença l’aprenentatge i
un cop hem finalitzat el control (Figura 34), es pot comprovar amb el pes de les regles
(DoS) quines són les adequades pel sistema que s’està analitzant (Figura 35). A la
Figura 36 es mostren les regles abans de començar l’aprenentatge per poder comparar-
les.
Per poder executar la xarxa neuronal i que ens doni la millor solució possible, hem de
tenir totes les possibles conclusions de les regles que volem aprendre, i el sistema ens
indicarà quina de totes les conclusions d’una regla és la bona ficant el DoS amb un
valor alt, en canvi, si la conclusió d’una regla no es compleix amb els exemples que
tenim ens posarà el valor DoS molt baix.
53
Figura 33. Control de l’aprenentatge
Figura 34. El control de l’aprenentatge ha finalitzat
En la Figura 34, tenim un apartat que es diu Errors el qual conté dues gràfiques, la de
l’esquerra ens mostra la història de l’entrenament de la desviació del pitjor exemple
(Max. Deviation) i de la mitjana (Avg. Deviation); i la gràfica de la dreta ens classifica
la desviació de tots els exemples. En cada classe es conten el nombre d’exemples que hi
ha (que es mostra en l’eix de coordenades). Les classes són 0...1%; 1…2%; 2…4%;
54
4…8%; 8…20%; 20…40%: i 40…100% (escrites en l’eix d’abscisses). El càlcul del
percentatge es basa amb la base variable dels rangs de les variables de sortida.
Després tenim Deviation Values que ens mostra els valors actuals de la desviació del
pitjor exemple i de la desviació mitjana, i ens mostra les condicions d’aturada. A Status
ens fica el mètode que hem elegit, en aquest cas RandomMethod i ens va indicant a Exp.
l’exemple que s’està executant, i Iteration és el nombre d’iteracions que portem de tots
els exemples complets. En Time ens diu el temps que ha tardat la computació anterior.
Per finalitzar tenim Output que ens mostra la comparació entre els valors computats i
els valors de les dades de les mostres per cada variable de sortida.
Figura 35. Regles modificades Figura 36. Regles sense modificar
55
PART II. APLICACIÓ AL CAS DE LA CATEGORITZACIÓ DEL RISC DE CONTAMINACIÓ D’UN SÒL
5. ADQUISICIÓ DEL CONEIXEMENT
5.1 SISTEMA EXPERT PREVI Com hem explicat a la introducció, el grup AGA (Anàlisi i Gestió Ambiental), està
interessat en l’anàlisi del risc d’un sòl contaminat i estant treballant en aquest projecte
des de fa uns anys. Com exemple del seu interès, a l’any 2005 es va fer un projecte final
de carrera dedicat a aquest tema [García,2005], on les proves inicials van acontentar a
tothom ja que donava una aproximació adequada del problema, i era una eina fàcil
d’utilitzar per usuaris no informàtics.
Però com els estudis relacionats amb aquest domini no han parat, han pogut donar més
informació als experts, els quals fan que s’hagi de modificar el coneixement introduït en
el sistema. I a l’hora d’introduir els canvis pertinents per poder resoldre els problemes
satisfactòriament, es van trobar amb dificultats.
Bàsicament la dificultat és la extracció de les regles ja que no estan definides clarament.
Com hem explicat a l’apartat 3.1, una regla és de la forma si premissa llavors conclusió,
d’aquesta forma tothom ho entén i si has de canviar paràmetres de la premissa saps on
està, i si has de canviar la conclusió perquè han millorat els coneixements i s’han adonat
que ha de canviar doncs saps on ho has de fer. Però al Sistema que tenien implementat,
no hi havia en cap lloc aquesta definició de les regles, cosa que dificulta la pertinent
modificació de les regles.
Les regles en l’altre Sistema estan implementades en Jess, que és un llenguatge de
programació que el podem comparar amb Clips, cosa que dificulta l’enteniment per una
persona que no és expert en informàtica. I com dintre d’aquests fitxers en Clips també
implementava les operacions de fuzzyficació i defuzzyficació, els pesos de les variables,
els arbres de decisió i implementa els conjunts difusos es fa difícil poder separar-ho tot i
56
mirar detalladament el funcionament per activar una determinada regla. I el més
important, quina és la regla.
El problema d’aquest Sistema bàsicament és que la interfície per utilitzar-lo és fàcil, i
tothom l’entén, però a l’hora de modificar variables, pesos, regles és quasi impossible
perquè no se sap quina part de tot el codi has de modificar per poder arreglar algun
paràmetre.
Per aquest motiu el grup AGA va proposar tornar a construir un Sistema Expert que
pugui determinar el risc que hi ha que un sòl estigui contaminat. Però amb una
implementació que sigui fàcil per poder modificar, si cal, més tard alguns paràmetres.
De forma que una persona no experta en informàtica agafi el Sistema Expert, i pugui
entendre tot el que s’està fent per determinar el risc d’un sòl contaminat.
5.1.1 APROFITAMENT
Del Sistema Expert previ al que estem fent nosaltres, encara que les regles no les hem
pogut extreure, hem pogut aprofitar determinades coses:
• La definició de totes les variables lingüístiques ja que en l’informe estan
explicades totes. Podem definir totes les variables d’entrada que són la toxicitat,
quantitat de contaminant, anitquitat de la construcció, dimensió de la superfície
contaminada, confinament, presentació del contaminant, biodegradació,
solubilitat, pressió de vapor, porositat del sòl, potencia, proximitat aigües
subterrànies, proximitat aigües superficials, ús del sòl, ús de les aigües, recarga,
conductivitat hidràulica, tipus de població, distancia de la població, quantitat de
població, accessibilitat a la zona, activitats sensibles, ecosistemes sensibles,
espècies en perill i impacte visual. I el resultat final que ens ha de donar el risc
del sòl contaminat.
• La ponderació dels criteris que utilitzen, és a dir els pesos que utilitzen per
prioritzar alguna variable dintre de la premissa. Alguns d’aquests pesos estan
fixats en uns documents d’excel que després explicarem, i altres estan
directament aplicats en les regles.
• La estructura en tres grups de variables. És a dir, totes les variables d’entrada
que hem definit abans estan separades en tres grups per poder fer més senzill el
sistema com podem veure en la Figura 37. El primer grup s’anomena
caracterització de la font de contaminació on és el grup on es defineix la font de
57
contaminació, el segon grup s’anomena vectors de transferència on s’ha de
considerar totes les característiques físiques, químiques i geogràfiques. I el tercer
grup s’anomena subjectes a protegir ja que és la definició de la població i
l’ecosistema exposat.
Figura 37. Esquema Sistema Expert Difús
58
El Sistema Expert que hem construït també distingeix aquests tres grups, però a més a
més en cada grup tenim diferents Sistemes Experts per poder fer-ho més fàcil, i que les
regles tinguin menys variables en la premissa i poder-les construir millor. Més tard
s’explica aquestes particions dintre d’un mateix grup.
5.2 DETERMINACIÓ DE LES REGLES
Les regles necessàries per definir el Sistema Expert s’han tingut que fer des de zero, ja
que, com hem explicat abans, del Sistema Expert previ no hem pogut treure ninguna
regla. Però per determinar-les hem utilitzat dos mètodes:
• L’expert: aquest mètode consisteix en reunir-nos amb l’expert del domini, en
aquest cas la Dra. Marta Schumacher, i fer entrevistes per poder construir les
regles conjuntament. La Marta ens deia els criteris que haviem de seguir per
construir-les, i s’anaven definint conjuntament. Es va subdividir el sistema
expert en blocs més petits, de forma que les regles fossin més fàcils d’interpretar
i de determinar. Tot i així, aquest sistema no acabava de funcionar bé, degut a
que es tracta d’un domini poc estudiat i sense exemples resolts.
• Mitjana ponderada: en aquest mètode el vam dissenyar per facilitar la tasca de
definició de les regles. Es tracta d’inferir el resultat de la regla utilitzant un
mètode que aproximi el resultat. Per fer-ho es construeix una matriu amb totes
les possibles combinacions dels valors que poden prendre les variables. Aquests
valors són difusos però per fer l’aproximació es converteixen en valors crisp
equiespaiats en el rang [0,1]. Per exemple, una variable amb 3 valors difusos es
tradueix als números 0, 0.5 i 1. A continuació es calcula la mitjana ponderada de
cada combinació de valors (fila de la matriu) usant els pesos que dóna l’expert.
Finalment la conclusió de la regla es converteix en un valor lingüístic, utilitzant
la fuzzificació mitjançant la variable de sortida Risk, que té 3 valors possibles,
de forma que si el valor és més petit que 0.4 llavors el risc és baix, si el valor
està entre 0.4 i 0.6 és mig, i si el valor és de 0.6 fins a 1 tenim un risc alt. Això
ho hem implementat amb el programa Excel. En la Figura 38 podem veure un
exemple de la utilització d’aquest mètode on utilitzem tres variables d’entrada:
logKow, pressió de vapor i solubilitat; els pesos corresponents que són 0.4, 0.4 i
0.2 respectivament. En la cinquena columna tenim la mitjana ponderada, que la
59
calcula per cada fila. El càlcul que fa és multiplicar el valor de cada variable pel
seu pes i aquests resultats els suma. Per exemple, el càlcul que realitza en la
segona fila és: (0*0.4) + (0*0.4) + (0.5*0.2) = 0.1. La darrera columna ens dóna
el risc mitjançant la variable lingüística definida per l’expert. Aquest resultat es
presenta a l’expert, el qual pot validar el conjunt de regles. D’aquesta manera té
una proposta de partida, i hem comprovat que li va millor determinar quines són
les regles bones i modificar el resultat de les que cal.
Figura 38. Construcció de regles
60
6. DISSENY I IMPLEMENTACIÓ EN FUZZYTECH Com hem explicat en la secció 5.1.1, la estructura d’aquest SE està feta amb 3 parts, per
tant, explicarem cada una per separat:
6.1 CARACTERITZACIÓ DE LA FONT DE CONTAMINACIÓ
6.1.1 Descripció del projecte
Input Variables 11 Output Variables 1 Intermediate Variables 4 Rule Blocks 5 Rules 71 Membership Functions 48
Taula 1. Estadística del projecte
6.1.2 Estructura del sistema
Aquest grup està dividit en cinc Sistemes Experts. El primer té com variables d’entrada
la quantitat de contaminant alta, mitjana i baixa, i també la toxicitat. Com variable de
sortida té una variable intermitja que es diu riscCantContam que serveix per connectar
aquest SE 1 amb el SE 2. El SE 1 té el seu bloc de regles que s’anomena RB1.
Construïm aquest SE 1 perquè depenent de la quantitat de contaminant i la toxicitat
d’aquest dona diferents resultats de risc, i em considerat oportú fer un Sistema Expert
per tractar-ho.
El SE 2 té com variables d’entrada la biodegradació i la variable intermitja
riscCantContam. El seu bloc de regles és el RB2 i té una variable intermitja de sortida
que s’anomena riscTox la qual la connectem amb el SE 5.
El SE 3 té com variables d’entrada el logKow, la pressió de vapor i la solubilitat. El
bloc de regles corresponent és el RB3 i la variable intermitja s’anomena riscMov que es
connecta amb el SE 5.
El SE 4 té les variables d’entrada antiguitat de la instal·lació, dimensió de la superfície i
el confinament. El seu bloc de regles és el RB4, i té com variable intermijta
l’anomenada riscLloc la qual es connecta al SE 5.
61
El SE 5 te com variables d’entrada les variables intermitges riscTox, riscMov i riscLloc
amb les quals construeix el bloc de regles RB5. Aquest Sistema Expert és el que dona el
valor de sortida de risc d’aquest grup.
En la següent figura podem observar tota la estructura que hem explicat.
Figura 39. Estructura del Sistema Expert difús
6.1.3 Variables
Aquest capítol conté les definicions de totes les variables lingüístiques d’aquest grup i
les seves funcions de pertinença.
La següent taula ens mostra la llista de totes les variables del sistema amb el seu
respectiu mètode de fuzzyficació o defuzzyficació. També estan definits els termes
lingüístics.
Entrada
# Variable Name Type Unit Min Max Default Term Names 1 antiqInstalacio Units 0 100 0 low
medium high
2 Biodegradacion Units 0 100 0 low medium high
3 cantContamAlta Units 0 15 7.5 low medium high
4 cantContamBaja Units 0 15000 7500 low medium high
62
# Variable Name Type Unit Min Max Default Term Names 5 cantContamMed
ia Units 0 150 75 low
medium high
6 Confinamiento - 0 2 2 000 subsuelo 001 soterratIsobrSup 002 sobreTerrenoNatu
7 dimenSuperficie Units 0 1500 0 low medium high
8 logKow Units 1 6 1 low medium high
9 presionVapor Units 0 1000 0 low medium high
10 Solubilidad Units 0 1500 0 low medium high
11 Toxicidad Units 0 10 5 low medium high
Taula 1: Variables d’entrada
Fuzzification Methods Compute MBF Look up MBF Categorical Variable Display Fuzzy Input
Sortida
# Variable Name Type Unit Min Max Default Term Names 12 Risc Units 0 10 0 low
medium high
Taula 2: Variable de sortida
Defuzzification Methods Center of Maximum (CoM) Mean of Maximum (MoM) Center of Area (CoA) Hyper CoM Fuzzy Output Force Categorical MoM
63
Intermitges
# Variable Name Type Unit Min Max Default Term Names 13 riscCantContam - - - - low
medium high
14 riscLloc - - - - low medium high
15 riscMov - - - - low medium high
16 riscTox - - - - low medium high
Taula 3: Variables Intermitges Variable d’entrada “antiqInstalacio”
Figura 40: MBF de "antiqInstalacio"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (4, 1) (6, 0) (100, 0) medium linear (0, 0) (4, 0) (6, 1) (13, 1) (17, 0) (100, 0) high linear (0, 0) (13, 0) (17, 1) (100, 1)
Taula 4: Definició dels punts de MBF "antiqInstalacio"
64
Variable d’entrada "biodegradacion"
Figura 41: MBF de "biodegradacion"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (1, 1) (2.5, 0) (100, 0) medium linear (0, 0) (1, 0) (2.5, 1) (5, 1) (7, 0) (100, 0) high linear (0, 0) (5, 0) (7, 1) (100, 1)
Taula 5: Definició dels punts de MBF "biodegradacion" Variable d’entrada "cantContamAlta"
Figura 42: MBF de "cantContamAlta"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (0.8, 1) (1.1, 0) (15, 0) medium linear (0, 0) (0.8, 0) (1.1, 1) (9, 1) (11, 0) (15, 0) high linear (0, 0) (9, 0) (11, 1) (15, 1)
Taula 6: Definició dels punts de MBF "cantContamAlta"
65
Variable d’entrada "cantContamBaja"
Figura 43: MBF de "cantContamBaja"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (800, 1) (1100, 0) (15000, 0) medium linear (0, 0) (800, 0) (1100, 1) (9000, 1) (11000, 0) (15000, 0) high linear (0, 0) (9000, 0) (11000, 1) (15000, 1)
Taula 7: Definició dels punts de MBF "cantContamBaja" Variable d’entrada "cantContamMedia"
Figura 44: MBF de "cantContamMedia"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (8, 1) (11, 0) (150, 0) medium linear (0, 0) (8, 0) (11, 1) (90, 1) (110, 0) (150, 0) high linear (0, 0) (90, 0) (110, 1) (150, 1)
Taula 8: Definició dels punts de MBF "cantContamMedia"
66
Variable d’entrada "confinamiento"
Term Name 000 subsuelo 001 soterratIsobrSup 002 sobreTerrenoNatu
Taula 9: Nom dels termes de "confinamiento" Variable d’entrada "dimenSuperficie"
Figura 45: MBF de "dimenSuperficie"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (80, 1) (120, 0) (1500, 0) medium linear (0, 0) (80, 0) (120, 1) (950, 1) (1050, 0) (1500, 0) high linear (0, 0) (950, 0) (1050, 1) (1500, 1)
Taula 10: Definició dels punts de MBF "dimenSuperficie" Variable d’entrada "logKow"
Figura 46: MBF de "logKow"
67
Term Name Shape/Par. Definition Points (x, y) low linear (1, 1) (2, 1) (3, 0) (6, 0) medium linear (1, 0) (2, 0) (3, 1) (4, 1) (5, 0) (6, 0) high linear (1, 0) (4, 0) (5, 1) (6, 1)
Taula 11: Definició dels punts de MBF "logKow" Variable d’entrada "presionVapor"
Figura 47: MBF de "presionVapor"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (7.0000000000001,
1) (12, 0)
(1000, 0) medium linear (0, 0) (7.0000000000001,
0) (12, 1)
(45, 1) (60, 0) (1000, 0) high linear (0, 0) (45, 0) (60, 1) (1000, 1)
Taula 12: Definició dels punts de MBF "presionVapor" Variable d’entrada "solubilidad"
Figura 48: MBF de "solubilidad"
68
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (0.05000000000018
2, 0) (1500, 0)
medium linear (0, 0) (0.60000000000014, 0)
(0.60000000000014, 1)
(1.0000000000002, 1)
(5.0000000000002, 0)
(1500, 0)
high linear (0, 0) (1.0000000000002, 0)
(5.0000000000002, 1)
(1500, 1) Taula 13: Definició dels punts de MBF "solubilidad"
Variable d’entrada "toxicidad"
Figura 49: MBF de "toxicidad"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (1, 1) (3, 0) (10, 0) medium linear (0, 0) (1, 0) (3, 1) (4, 1) (7, 0) (10, 0) high linear (0, 0) (4, 0) (7, 1) (10, 1)
Taula 14: Definició dels punts de MBF "toxicidad" Variable de sortida "risc"
Figura 50: MBF de "risc"
69
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (2, 1) (4, 0) (10, 0) medium linear (0, 0) (2, 0) (4, 1) (6, 1) (8, 0) (10, 0) high linear (0, 0) (6, 0) (8, 1) (10, 1)
Taula 15: Definició dels punts de MBF "risc"
6.1.4 Blocs de Regles
Un bloc de regles conté el control d’un Sistema Expert difús. On fica ‘IF’ és la part de
la premissa d’una regla, i en la part ‘THEN’ és la conclusió de la regla. I el ‘DoS’
s’utilitza per donar pes a la regla depenent de la importància que li vols donar.
Bloc de Regles "RB1" Aquest Bloc de Regles va ser creat per nosaltres per poder ajuntar la toxicitat amb la
quantitat de contaminant, ja que depenen l’una de l’altra. La quantitat de contaminant es
mesura diferent segons el nivell de toxicitat. Hi ha 3 possibles definicions, que s’han
presentat a la secció 6.1.3, a la figura 42 “cantContamAlta”, a la figura 43
“cantContamBaja” i a la figura 44 “cantContamMedia”. Aquest sistema expert utilitza
una o altra variable segons el valor de la toxicitat. És a dir, la explicació d’aquest bloc
de regles és que quan la toxicitat és baixa (low), només es té en compte la
cantContamBaja. Si la toxicitat és mitjana (medium), es té en compte la
cantContamMedia, i si la toxicitat és alta (high) només es té en compte la
cantContamAlta.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 4 Number of Outputs: 1 Number of Rules: 9
IF THEN cantContamAlta cantContamBaja cantContamMedi
a toxicidad DoS riscCantContam
low low 1.00 low medium low 1.00 medium high low 1.00 high low medium 1.00 low medium medium 1.00 medium high medium 1.00 high
70
IF THEN low high 1.00 low medium high 1.00 medium high high 1.00 high
Taula 17: Regles del Bloc de Regles "RB1"
Bloc de Regles "RB2" Aquest bloc de regles el vam crear utilitzant l’aproximació de la mitjana ponderada com
hem explicat a la secció 5.2. En la Taula 19 es poden veure els pesos que li hem donat a
cada variable, i el resultat que observem després en el bloc de regles.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 2 Number of Outputs: 1 Number of Rules: 7
IF THEN riscCantContam biodegradacion DoS riscTox low low 1.00 low low medium 1.00 low low high 1.00 low medium low 1.00 medium medium medium 1.00 medium medium high 1.00 high high 1.00 high
Taula 18: Regles del Bloc de Regles "RB2"
Taula 19. Creació de regles amb l’aproximació de la mitjana ponderada
71
Bloc de Regles "RB3" Aquest bloc de regles també l’hem creat amb l’aproximació de la mitjana ponderada ja
que ens ha aportat solucions a la decisió. Es pot veure els pesos utilitzats en la Taula 21.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 3 Number of Outputs: 1 Number of Rules: 19
IF THEN logKow presionVapor solubilidad DoS riscMov low low 1.00 low low medium low 1.00 low low medium medium 1.00 low low medium high 1.00 medium low high low 1.00 medium low high medium 1.00 medium low high high 1.00 high medium low low 1.00 low medium low medium 1.00 low medium low high 1.00 medium medium medium low 1.00 medium medium medium medium 1.00 medium medium medium high 1.00 high medium high 1.00 high high low low 1.00 medium high low medium 1.00 medium high low high 1.00 high high medium 1.00 high high high 1.00 high
Taula 20: Regles del Bloc de Regles "RB3"
72
Taula 21. Creació de regles amb l’aproximació de la mitjana ponderada
Bloc de Regles "RB4" Aquest bloc de regles ha estat creat utilitzant el mètode de l’aproximació de la mitjana
ponderada. Es pot veure en la Taula 23.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 3 Number of Outputs: 1 Number of Rules: 27
IF THEN antiqInstalacio dimenSuperficie confinamiento DoS riscLloc low low subsuelo 1.00 low low low soterratIsobrSup 1.00 low low low sobreTerrenoNatu 1.00 medium low medium subsuelo 1.00 low
73
IF THEN low medium soterratIsobrSup 1.00 low low medium sobreTerrenoNatu 1.00 high low high subsuelo 1.00 low low high soterratIsobrSup 1.00 medium low high sobreTerrenoNatu 1.00 high medium low subsuelo 1.00 low medium low soterratIsobrSup 1.00 medium medium low sobreTerrenoNatu 1.00 high medium medium subsuelo 1.00 low medium medium soterratIsobrSup 1.00 medium medium medium sobreTerrenoNatu 1.00 high medium high subsuelo 1.00 low medium high soterratIsobrSup 1.00 medium medium high sobreTerrenoNatu 1.00 high high low subsuelo 1.00 low high low soterratIsobrSup 1.00 medium high low sobreTerrenoNatu 1.00 high high medium subsuelo 1.00 low high medium soterratIsobrSup 1.00 high high medium sobreTerrenoNatu 1.00 high high high subsuelo 1.00 medium high high soterratIsobrSup 1.00 high high high sobreTerrenoNatu 1.00 high
Taula 22: Regles del Bloc de Regles "RB4"
74
Taula 23. Creació de regles amb l’aproximació de la mitjana ponderada
Bloc de Regles "RB5" Aquest bloc de regles és el que decideix el risc final que té aquest grup, ajuntant tots els
resultats dels Sistemes Experts anteriors. Per determinar les regles hem utilitzat el
mètode de l’aproximació de la mitjana ponderada. En la Taula 25 podem comprovar la
importància que li donem a la toxicitat ficant-li un pes molt gran.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 3 Number of Outputs: 1 Number of Rules: 9
IF THEN riscTox riscMov riscLloc DoS risc low 1.00 low
75
IF THEN medium low low 1.00 low medium low medium 1.00 medium medium low high 1.00 medium medium medium 1.00 medium medium high low 1.00 medium medium high medium 1.00 high medium high high 1.00 high high 1.00 high
Taula 24: Regles del Bloc de Regles "RB5"
Taula 25. Creació de les regles amb l’aproximació de la mitjana ponderada
76
6.2 VECTORS DE TRANSFERÈNCIA
6.2.1 Descripció del projecte
Input Variables 8 Output Variables 1 Intermediate Variables 3 Rule Blocks 4 Rules 118 Membership Functions 36
Taula 26: Estadística del projecte
6.2.2 Estructura del Sistema
Aquest grup està dividit en quatre Sistemes Experts. El primer té com variables
d’entrada la conductivitat hidràulica, la porositat, la potència i la recarga. Té una
variable intermitja que es diu riscPorPotRecarg que es connecta amb el SE 4. Aquest SE
1 té el seu bloc de regles que s’anomena RB1.
També tenim un segon Sistema Expert el qual té les variables d’entrada aigües
subterrànies i aigües superficials, amb les quals es fa el bloc de regles al qual anomenem
RB2 i té una variable intermitja per connectar aquest SE amb el SE 4.
Tenim un SE que té dues variables d’entrada que són l’ús de l’aigua i l’ús del sòl, les
quals són categòriques. Aquest SE té una variable intermitja la qual serveix per
connectar-lo amb el SE 4. Aquest SE 3 té el bloc de regles pertinent que anomenem
RB3.
Per finalitzar tenim el SE 4 que ens serveix per ajuntar tots els resultats dels Sistemes
Experts anteriors i poder donar un resultat final d’aquest grup.
En la Figura 51 podem observar tots els Sistemes Experts que hem explicat
anteriorment amb les seves relacions.
77
Figura 51: Estructura del Sistema Expert difús
6.2.3 Variables
Aquest capítol conté les definicions de totes les variables lingüístiques d’aquest grup i
les seves funcions de pertinença.
La següent taula ens mostra la llista de totes les variables del sistema amb el seu
respectiu mètode de fuzzyficació o defuzzyficació. També estan definits els termes
lingüístics.
Entrades
# Variable Name Type Unit Min Max Default Term Names 1 aguasSubterran Units 0 1000 0 high
medium low
2 aguasSuperficial Units 0 1000 0 high medium low
3 conductivHidraul Units 0 0.001 0 low medium high
4 porosidad Units 0 0.6 0 low medium high
5 potencia Units 0 50 0 high medium low
6 recarga Units 0 300 0 low medium high
7 usoAgua - 0 2 2 000 industrial 001 agricolaIpastora 002 recreatiuIdomest
8 usoSuelo - 0 2 2 000 industrial 001 construcIcomerci 002 agricolaIresidnc
Taula 167: Variables d’entrada
78
Fuzzification Methods Compute MBF Look up MBF Categorical Variable Display Fuzzy Input
Sortides
# Variable Name Type Unit Min Max Default Term Names 9 riscTotal2 Units 0 10 0 low
medium high
Taula 28: Variables de sortida
Defuzzification Methods Center of Maximum (CoM) Mean of Maximum (MoM) Center of Area (CoA) Hyper CoM Fuzzy Output Force Categorical MoM
Intermitges
# Variable Name Type Unit Min Max Default Term Names 10 riscAguasCondu
ct - - - - low
medium high
11 riscPorPotRecarg
- - - - low medium high
12 riscUtilitzacio - - - - low medium high
Taula 29: Variables intermitges
79
Variable d’entrada "aguasSubterran"
Figura 52: MBF de "aguasSubterran"
Term Name Shape/Par. Definition Points (x, y) high linear (0, 1) (40, 1) (60, 0) (1000, 0) medium linear (0, 0) (40, 0) (60, 1) (180, 1) (220, 0) (1000, 0) low linear (0, 0) (180, 0) (220, 1) (1000, 1)
Taula 30: Definició dels punts de MBF "aguasSubterran"
Variable d’entrada "aguasSuperficial"
Figura 53: MBF de "aguasSuperficial"
Term Name Shape/Par. Definition Points (x, y) high linear (0, 1) (20, 1) (60, 0) (1000, 0) medium linear (0, 0) (20, 0) (60, 1) (280, 1) (400, 0) (1000, 0) low linear (0, 0) (280, 0) (400, 1) (1000, 1)
Taula 31: Definició dels punts de MBF "aguasSuperficial"
80
Variable d’entrada "conductivHidraul"
Figura 54: MBF de "conductivHidraul"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (2.0000000000098e-
008, 1) (1.0000000000006e-007, 0)
(0.001, 0) medium linear (0, 0) (2.0000000000098e-
008, 0) (1.0000000000006e-007, 1)
(9.9999999999992e-007, 1)
(1e-005, 0) (0.001, 0)
high linear (0, 0) (9.9999999999992e-007, 0)
(1e-005, 1)
(0.001, 1) Taula 32: Definició dels punts de MBF "conductivHidraul"
Variable d’entrada "porosidad"
Figura 55: MBF de "porosidad"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (0.3, 1) (0.35, 0) (0.6, 0) medium linear (0, 0) (0.3, 0) (0.35, 1) (0.37, 1) (0.4, 0) (0.6, 0) high linear (0, 0) (0.37, 0) (0.4, 1) (0.6, 1)
Taula 33: Definició dels punts de MBF "porosidad"
81
Variable d’entrada "potencia"
Figura 56: MBF de "potencia"
Term Name Shape/Par. Definition Points (x, y) high linear (0, 1) (2, 1) (5, 0) (50, 0) medium linear (0, 0) (2, 0) (5, 1) (12, 1) (15, 0) (50, 0) low linear (0, 0) (12, 0) (15, 1) (50, 1)
Taula 34: Definició dels punts de MBF "potencia" Variable d’entrada "recarga"
Figura 57: MBF de "recarga"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (8, 1) (12, 0) (300, 0) medium linear (0, 0) (8, 0) (12, 1) (75, 1) (125, 0) (300, 0) high linear (0, 0) (75, 0) (125, 1) (300, 1)
Taula 35: Definició dels punts de MBF "recarga"
82
Variable de sortida "riscTotal2"
Figura 58: MBF de "riscTotal2"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (2, 1) (4, 0) (10, 0) medium linear (0, 0) (2, 0) (4, 1) (6, 1) (8, 0) (10, 0) high linear (0, 0) (6, 0) (8, 1) (10, 1)
Taula 36: Definició dels punts de MBF "riscTotal2"
6.2.4 Blocs de Regles
Un bloc de regles conté el control d’un Sistema Expert difús. On fica ‘IF’ és la part de
la premissa d’una regla, i en la part ‘THEN’ és la conclusió de la regla. I el ‘DoS’
s’utilitza per donar pes a la regla depenent de la importància que li vols donar.
Bloc de Regles "RB1" Aquest bloc de regles, hem tingut que utilitzar l’aproximació de la mitjana ponderada
per crear les regles ja que és d’una dificultat molt gran. Podem veure en la Taula 38 els
pesos que li hem donat a cada variable.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 4 Number of Outputs: 1 Number of Rules: 73
83
IF THEN conductivHidraul porosidad potencia recarga DoS riscPorPotRecarglow low 1.00 low low medium low 1.00 low low medium medium low 1.00 low low medium medium medium 1.00 low low medium medium high 1.00 medium low medium high low 1.00 low low medium high medium 1.00 medium low medium high high 1.00 medium low high low low 1.00 low low high low medium 1.00 medium low high low high 1.00 medium low high medium 1.00 medium low high high low 1.00 medium low high high medium 1.00 high low high high high 1.00 high medium low low 1.00 low medium low medium low 1.00 low medium low medium medium 1.00 low medium low medium high 1.00 medium medium low high low 1.00 low medium low high medium 1.00 medium medium low high high 1.00 medium medium medium low low 1.00 low medium medium low medium 1.00 medium medium medium low high 1.00 medium medium medium medium 1.00 medium medium medium high low 1.00 medium medium medium high medium 1.00 high medium medium high high 1.00 high medium high low low 1.00 medium medium high low medium 1.00 medium medium high low high 1.00 high medium high medium low 1.00 medium medium high medium medium 1.00 high medium high medium high 1.00 high medium high high 1.00 high high low low low 1.00 low high low low medium 1.00 medium high low low high 1.00 medium high low medium 1.00 medium high low high low 1.00 medium high low high medium 1.00 high high low high high 1.00 high high medium low low 1.00 medium high medium low medium 1.00 medium high medium low high 1.00 high high medium medium low 1.00 medium high medium medium medium 1.00 high high medium medium high 1.00 high high medium high 1.00 high high high 1.00 high
Taula 37: Regles del Bloc de Regles "RB1"
84
85
Taula 38. Creació de les regles utilitzant l’aproximació de la mitjana ponderada
86
Bloc de Regles "RB2" Aquest bloc de regles ens el va dir l’expert, és a dir, la Dra. Marta Schumacher.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 2 Number of Outputs: 1 Number of Rules: 9
IF THEN aguasSubterran aguasSuperficial DoS riscAguasConduct High high 1.00 high Medium high 1.00 high Low high 1.00 high High medium 1.00 high Medium medium 1.00 medium Low medium 1.00 medium High low 1.00 high Medium low 1.00 medium Low low 1.00 low
Taula 39: Regles del Bloc de Regles "RB2" Bloc de Regles "RB3" Aquest bloc de regles ens el va dir l’expert, és a dir, la Dra. Marta Schumacher.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 2 Number of Outputs: 1 Number of Rules: 9
IF THEN usoAgua usoSuelo DoS riscUtilitzacio industrial industrial 1.00 low agricolaIpastora industrial 1.00 high recreatiuIdomest industrial 1.00 high industrial construcIcomerci 1.00 low agricolaIpastora construcIcomerci 1.00 high recreatiuIdomest construcIcomerci 1.00 high industrial agricolaIresidnc 1.00 high agricolaIpastora agricolaIresidnc 1.00 high recreatiuIdomest agricolaIresidnc 1.00 high
Taula 40: Regles del Bloc de Regles "RB3"
87
Bloc de Regles "RB4" Aquest bloc de regles ens el va dir l’expert.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 3 Number of Outputs: 1 Number of Rules: 27
IF THEN riscAguasConduct riscPorPotRecarg riscUtilitzacio DoS risc2 low low 1.00 low low medium low 1.00 low low medium medium 1.00 medium low medium high 1.00 medium low high low 1.00 medium low high medium 1.00 high low high high 1.00 high medium low low 1.00 low medium low medium 1.00 low medium low high 1.00 medium medium medium low 1.00 low medium medium medium 1.00 medium medium medium high 1.00 high medium high low 1.00 medium medium high medium 1.00 high medium high high 1.00 high high low low 1.00 low high low medium 1.00 low high low high 1.00 medium high medium low 1.00 medium high medium medium 1.00 high high medium high 1.00 high high high 1.00 high
Taula 41: Regles del Bloc de Regles "RB4"
88
6.3 SUBJECTES A PROTEGIR
6.3.1 Descripció del projecte
Input Variables 8 Output Variables 1 Intermediate Variables 2 Rule Blocks 3 Rules 49 Membership Functions 28
Taula 42: Estadística del projecte
6.3.2 Estructura del Sistema
Aquest grup està dividit en tres Sistemes Experts. El primer té com variables d’entrada
l’accesibilitat, l’activitat sensible de la població, la quantitat de població, la distància i el
tipus de població. Amb aquestes variables creem el bloc de regles anomenat RB1 i té
una variable intermitja per poder connectar aquest Sistema amb el SE 3, la qual
s’anomena riscPoblacio.
El segon Sistema Expert té tres variables d’entrada, ecosistema sensible, espècies en
perill i impacte visual. Les tres són variables categòriques. També té una variable
intermitja per poder relacionar-lo amb el SE 3 que s’anomena riscEcosistema. I com és
un Sistema Expert, té el seu bloc de regles que s’anomena RB2.
El SE 3 és el que calcula el risc total d’aquest grup. Les variables d’entrada són
riscEcosistema i riscPoblacio i la variable de sortida riscTotal. I el bloc de regles
s’anomena RB31.
Figura 59: Estructura del Sistema Expert difús
89
6.3.3 Variables
Aquest capítol conté les definicions de totes les variables lingüístiques d’aquest grup i
les seves funcions de pertinença.
La següent taula ens mostra la llista de totes les variables del sistema amb el seu
respectiu mètode de fuzzyficació o defuzzyficació. També estan definits els termes
lingüístics.
Entrades
# Variable Name Type Unit Min Max Default Term Names 1 accesibilidad - 0 2 2 000 CerradoSiVigil
001 cerradoNoVigilad 002 NoCerradoNoVigil
2 actividSensibls - 0 1 1 000 no 001 si
3 cantidadPoblacio
Units 0 200 0 low medium high
4 distancia Units 0 10000 0 high medium low
5 ecosistSensible - 0 1 1 000 no 001 si
6 especiesPeligro - 0 1 1 000 no 001 si
7 impactoVisual - 0 1 1 000 no 001 si
8 tipoPoblacion - 0 1 0 000 adulta 001 sensible
Taula 43: Variables d’entrada
Fuzzification Methods Compute MBF Look up MBF Categorical Variable Display Fuzzy Input
Sortides
# Variable Name Type Unit Min Max Default Term Names 9 riscTotal Units 0 10 0 low
medium high
Taula 44: Variables de sortida
90
Defuzzification Methods Center of Maximum (CoM) Mean of Maximum (MoM) Center of Area (CoA) Hyper CoM Fuzzy Output Force Categorical MoM
Intermitges
# Variable Name Type Unit Min Max Default Term Names 10 riscEcosistema - - - - low
medium high
11 riscPoblacio - - - - low medium high
Taula 175: Variables intermitges Input Variable "accesibilidad"
Term Name 000 CerradoSiVigil 001 cerradoNoVigilad 002 NoCerradoNoVigil
Taula 186: Nom dels termes de “accesibilidad” Input Variable "actividSensibls"
Term Name 000 no 001 si
Taula 197: Nom dels termes de "actividSensibls" Input Variable "cantidadPoblacio"
Figura 60: MBF de "cantidadPoblacio"
91
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (5, 1) (10, 0) (200, 0) medium linear (0, 0) (5, 0) (10, 1) (20, 1) (40, 0) (200, 0) high linear (0, 0) (20, 0) (40, 1) (200, 1)
Taula 208: Definició dels punts de MBF "cantidadPoblacio" Input Variable "distancia"
Figura 61: MBF de "distancia"
Term Name Shape/Par. Definition Points (x, y) high linear (0, 1) (10, 1) (60, 0) (10000, 0) medium linear (0, 0) (10, 0) (60, 1) (400, 1) (500, 0) (10000, 0) low linear (0, 0) (400, 0) (500, 1) (10000, 1)
Taula 219: Definició dels punts de MBF "distancia" Input Variable "ecosistSensible"
Term Name 000 no 001 si
Taula 50: Nom dels termes de "ecosistSensible" Input Variable "especiesPeligro"
Term Name 000 no 001 si
Taula 51: Nom dels termes de "especiesPeligro"
92
Input Variable "impactoVisual"
Term Name 000 no 001 si
Taula 52: Nom dels termes de "impactoVisual"
Input Variable "tipoPoblacion"
Term Name 000 adulta 001 sensible
Taula 53: Nom dels termes de "tipoPoblacion"
Output Variable "riscTotal"
Figura 62: MBF de "riscTotal"
Term Name Shape/Par. Definition Points (x, y) low linear (0, 1) (2, 1) (4, 0) (10, 0) medium linear (0, 0) (2, 0) (4, 1) (6, 1) (8, 0) (10, 0) high linear (0, 0) (6, 0) (8, 1) (10, 1)
Taula 54: Definició dels punts de MBF "riscTotal"
6.3.4 Bloc de Regles
Un bloc de regles conté el control d’un Sistema Expert difús. On fica ‘IF’ és la part de
la premissa d’una regla, i en la part ‘THEN’ és la conclusió de la regla. I el ‘DoS’
s’utilitza per donar pes a la regla depenent de la importància que li vols donar.
93
Bloc de Regles "RB1" Aquest bloc de regles ens el va dir l’expert, és a dir, la Dra. Marta Schumacher. Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 5 Number of Outputs: 1 Number of Rules: 32
IF THEN accesibilidad actividSensibl
s cantidadPoblacio
distancia tipoPoblacion DoS riscPoblacio
si 1.00 high no high low sensible 1.00 medium no high low adulta 1.00 medium NoCerradoNoVigil
no high medium sensible 1.00 high
cerradoNoVigilad
no high medium sensible 1.00 medium
CerradoSiVigil no high medium sensible 1.00 medium no high medium adulta 1.00 medium NoCerradoNoVigil
no high high sensible 1.00 high
cerradoNoVigilad
no high high sensible 1.00 high
CerradoSiVigil no high high sensible 1.00 medium NoCerradoNoVigil
no high high adulta 1.00 high
cerradoNoVigilad
no high high adulta 1.00 medium
CerradoSiVigil no high high adulta 1.00 medium NoCerradoNoVigil
no medium low sensible 1.00 medium
cerradoNoVigilad
no medium low sensible 1.00 low
CerradoSiVigil no medium low sensible 1.00 low no medium low adulta 1.00 low NoCerradoNoVigil
no medium medium sensible 1.00 medium
cerradoNoVigilad
no medium medium sensible 1.00 medium
CerradoSiVigil no medium medium sensible 1.00 medium no medium medium adulta 1.00 medium NoCerradoNoVigil
no medium high sensible 1.00 high
cerradoNoVigilad
no medium high sensible 1.00 medium
CerradoSiVigil no medium high sensible 1.00 medium no medium high adulta 1.00 medium no low low 1.00 low NoCerradoNoVigil
no low medium sensible 1.00 low
cerradoNoVigilad
no low medium sensible 1.00 medium
94
IF THEN CerradoSiVigil no low medium sensible 1.00 low no low medium adulta 1.00 low no low high sensible 1.00 medium no low high adulta 1.00 low
Taula 55: Regles del Bloc de Regles "RB1"
Bloc de Regles "RB2" Aquest bloc de regles ens el va dir l’expert.
Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 3 Number of Outputs: 1 Number of Rules: 8
IF THEN ecosistSensible especiesPeligro impactoVisual DoS riscEcosistema no no no 1.00 low si no no 1.00 medium no si no 1.00 medium si si no 1.00 high no no si 1.00 medium si no si 1.00 medium no si si 1.00 high si si si 1.00 high
Taula 56: Regles del Bloc de Regles "RB2"
Bloc de Regles "RB31" Aquest bloc de regles ens el va dir l’expert. Paràmetres
Aggregation: MINMAX Parameter: 0.00 Result Aggregation: MAX Number of Inputs: 2 Number of Outputs: 1 Number of Rules: 9
IF THEN riscEcosistema riscPoblacio DoS riscTotal low low 1.00 low low medium 1.00 medium low high 1.00 high medium low 1.00 medium
95
IF THEN medium medium 1.00 medium medium high 1.00 high high low 1.00 high high medium 1.00 high high high 1.00 high
Taula 57: Regles del Bloc de Regles "RB31"
96
6.4 SISTEMA EXPERT JUNT
Hem explicat cada grup per separat, i la unió de tots els grups és el Sistema Expert
mostrat en la Figura 63.
En aquest SE estan definides totes les variables explicades anteriorment, l’únic que hem
afegit és un bloc de regles que té com variables d’entrada els resultats del risc de cada
grup, i com variable de sortida el riscTotal. El bloc de regles l’hem creat utilitzant el
mètode de l’aproximació de la mitjana ponderada com es pot comprovar en la Taula 59.
Figura 63. Esquema de tot el Sistema Expert junt
IF THEN
risc1 risc2 risc3 DoS riscTotal low low 1.00 low low medium 1.00 low low high low 1.00 low low high medium 1.00 low low high high 1.00 medium medium low low 1.00 low medium low medium 1.00 low medium low high 1.00 medium
97
IF THEN medium medium low 1.00 low medium medium medium 1.00 medium medium medium high 1.00 high medium high low 1.00 medium medium high medium 1.00 high medium high high 1.00 high high low low 1.00 medium high low medium 1.00 high high low high 1.00 high high medium 1.00 high high high 1.00 high
Taula 58. Regles del bloc de regles
Taula 59. Elaboració de les regles utilitzant l’aproximació de la mitjana ponderada
98
7. JOC DE PROVES DEL SISTEMA EXPERT El joc de proves el dividirem en tres parts, una per cada grup, i després mostrarem el
resultat del risc final quan ajuntem els tres grups. En cada grup mostrarem el cas de
l’execució interactiva, i el cas d’execució en batch d’un conjunt de casos els quals són
uns casos estudiats amb el Sistema Expert que estava creat d’abans [López, 2008]. Com
és un Sistema Expert nou i més precís, si comparem els resultats que obtenim de
l’article amb els que ens donen fent el joc de proves són una mica diferents. En el
primer grup, caracterització de la font de contaminació, ens dona un resultat molt
aproximat al de l’article, però en el joc de proves del grup vectors de transferència els
resultats són molt diferents als de l’article. Per finalitzar, els resultats del grup subjectes
a protegir són aproximats als de l’article.
7.1 ESTUDI D’UN CAS DETALLADAMENT
En aquest apartat explicarem com s’ha de fer el joc de proves pas per pas. Per fer-ho
agafarem un exemple del tercer grup, subjectes a protegir, i aplicarem el mètode
interactive per debugar.
Agafarem com exemple el tercer cas, és a dir, que les variables d’entrada accesibilidad,
actividSensibls, cantidadPoblacio, distancia, ecosistSensible, especiesPeligro,
impactoVisual i tipoPoblacion tenen els valors cerradoNoVigilad, si, 10, 200, si, si, si, i
adulta, respectivament.
Totes aquestes dades les entrem al mètode interactive, el qual ens queda de la següent
forma:
Figura 64. Mètode interactiu
99
Després d’introduir totes les dades mirem quina o quines de les regles s’han activat:
En el primer SE petit s’ha activat la regla 1 com podem veure a la figura 65.
Figura 65. Activació de la regla
En el segon SE petit s’ha activat la regla 8 com podem observar en la figura 66.
Figura 66. Activació de la regla
Per saber el risc final d’aquest exemple tenim que ajuntar els dos riscs dels Sistemes
Experts anteriors. Com podem comprovar, el resultat dels dos ens ha donat un risc alt
(high) per aquest motiu s’ha activat la regla 9 del Sistema Expert final, i el resultat
d’aquest exemple introduït és un risc alt.
Figura 67. Activació de la regla
Per entendre les regles que s’han activat, mirarem la funció de pertinença de cada
variable per saber en quin terme es troba.
En el primer cas, ens fixem amb la variable actividSensibls, ja que si el valor introduït
és ‘sí’ és independent el valor de les altres variables del Sistema Expert petit. Com en
aquest exemple hem introduït ‘si’ el resultat del riscPoblacio és alt.
100
En el cas que haguéssim introduït un ‘no’ a la variable actividSensibls, hauríem de
mirar les altres variables per saber quina regla s’activaria.
La variable accesibilidad té tres paràmetres, però com es categòrica, només es fa cas al
valor introduït, en aquest cas ‘cerradoNoVigilad’. En la variable tipoPoblacion ens
passa el mateix, com és una variable categòrica únicament és el valor introduït. A la
variable cantidadPoblacio hem introduït un 10, i aquest valor es troba a medium (Figura
68). Per finalitzar, miraríem la distancia, que hem introduït el valor 200, el qual es troba
a medium (Figura 69).
En aquest cas, s’activaria la regla on la actividSensibls tingui el terme ‘no’, accesibildad
sigui ‘cerradoNoVigilad’, la variable tipoPoblacion sigui ‘adulta’. La cantidadPoblacio
tingui medium i la distancia també tingui medium. En aquest cas seria la regla 21. La
variable accesibilidad no té paràmetre perquè amb els valors de les altres variables és
independent el valor que fiquem perquè ens donarà com a risc medium (Figura 70).
Figura 68. Activació de la variable Figura 69. Activació de la variable
Figura 70. Activació de la regla
En el segon Sistema Expert petit, com les variables són categòriques ens hem de fixar
amb el terme que hem introduït. I com tots els valors són ‘si’ s’ha activat la regla 8
(Figura 66).
El valor del riscTotal és high, però s’ha de defuzzyficar. Com el mètode seleccionat per
defuzzyficar és el CoA, explicat a la secció 2.3, ens dona el valor 8,4444.
101
7.2 CARACTERITZACIÓ DE LA FONT DE CONTAMINACIÓ
Introduirem les mostres a aquest grup de forma interactiva, és a dir, tenint el Sistema
Expert s’ha de clicar al menú del FuzzyTech on fica Debug i després Interactive
d’aquesta forma ja podem introduir els exemples. Per executar-ho, s’agafa un dels
exemples que volem introduir i tenim que ficar els valors de l’exemple a les
determinades variables i d’aquesta forma ens donarà un resultat final del risc.
El primer exemple és el que veiem en la Figura 71. El resultat que obtenim és de Risc
Low amb nivell 0.7, que defuzzificat dóna 1.5554, tal com es mostra a la finestra
inferior.
Figura 71. Joc de proves interactiu
Aquest mètode per debugar és molt pràctic quan estàs treballant amb el Sistema Expert i
vols mirar si una mostra et dóna un resultat correcte i fàcil de veure per casos concrets.
Per poder fer tot el joc de proves és millor debugar amb el mètode batch. Per poder
executar-lo primer s’ha de crear un fitxer batch on estiguin totes les mostres que es
volen introduir. En la següent figura veiem el joc de proves que introduirem al sistema.
102
Figura 72. Fitxer .batch amb els valors de les mostres del joc de proves
Després amb el FuzzyTech tenim que clicar en el menú l’opció Debug i seguidament
Batch on s’obre una finestra per buscar el fitxer que has creat. Quan s’accepta, es
comença l’execució del joc de proves, que es pot fer pas a pas, o tot junt, i el resultat
queda guardat al fitxer, al final de cada línia. (Figura 85)
Els resultats de cada mostra executada una per una són els següents:
Figura 73. Resultat de la primera mostra.
Podem comprovar amb la Figura 71, que ens dóna el mateix resultat fent-ho amb el
mètode batch o amb interactive.
103
Figura 74. Resultat de la segona mostra.
Veiem que el risc és el mateix, però si ens fixem amb l’activació de low, la primera
mostra és de 0.70 i la segona de 0.75, encara que no es tanta diferència com per afectar
al resultat final.
Figura 75. Resultat de la tercera mostra
Figura 76. Resultat de la quarta mostra
La mostra número 5 i 6 ens donen absolutament el mateix resultat que la quarta mostra,
l’activació del low igual també. Per aquest motiu no les afegim.
104
Figura 77. Resultat de la setena mostra
Figura 78. Resultat de la vuitena mostra
Figura 79. Resultat de la novena mostra
La mostra número 10, és igual que la mostra de la Figura 79.
105
Figura 80. Resultat de la onzena mostra
Figura 81. Resultat de la dotzena mostra
Figura 82. Resultat de la tretzena mostra
106
Figura 83. Resultat de la mostra 14
La mostra 15 és la mateixa que la de la Figura 83.
Figura 84. Resultat de la mostra 16
Figura 85. Fitxer amb els resultats de totes les mostres
107
7.3 VECTORS DE TRANSFERÈNCIA
Primer introduirem una de les mostres utilitzant el mètode Interactive. Per poder fer-ho
s’ha de clicar al menú del FuzzyTech on fica Debug i després Interactive d’aquesta
forma ja podem introduir els exemples. Per executar-ho, s’agafa un dels exemples que
volem introduir i tenim que ficar els valors de l’exemple a les determinades variables i
d’aquesta forma ens donarà un resultat final del risc.
En la Figura 86 podem veure el resultat del primer exemple:
Figura 86. Joc de proves interactiu
El segon mètode que podem utilitzar per debugar és utilitzar un fitxer .batch, en aquest
fitxer és on es posen totes les mostres que volem introduir al Sistema (Figura 87). Per
executar aquest mètode en el FuzzyTech s’ha de clicar en el menú l’opció Debug i
seguidament Batch on s’obre una finestra per buscar el fitxer que has creat. Quan
s’accepta, es comença l’execució del joc de proves, i el resultat del risc d’una mostra es
veu en el determinat pas on es troba.
108
Figura 87. Fitxer .batch amb els valors de les mostres del joc de proves
Com podem comprovar, només hi ha 4 mostres perquè estan totes repetides per poder
executar 16 mostres com a l’anterior joc de proves. Per aquest motiu solament
ensenyarem els 4 resultats de les mostres número 1, 3, 7 i 13:
Figura 88. Resultat de la mostra 1
Figura 89. Resultat de la mostra 3
109
Figura 90. Resultat de la mostra 7
Figura 91. Resultat de la mostra 13
110
7.4 SUBJECTES A PROTEGIR
Utilitzarem primerament el mètode Interactive per poder debugar el Sistema Expert. Per
poder fer-ho s’ha de clicar al menú del FuzzyTech on fica Debug i després Interactive
d’aquesta forma ja podem introduir els exemples. Per executar-ho, s’agafa un dels
exemples que volem introduir i tenim que ficar els valors de l’exemple a les
determinades variables i d’aquesta forma ens donarà un resultat final del risc.
En la Figura 92 podem veure el resultat del primer exemple:
Figura 92. Joc de proves interactiu
Ara utilitzarem per debugar un fitxer .batch, en aquest fitxer és on es posen totes les
mostres que volem introduir al Sistema (Figura 93). Per executar aquest mètode en el
FuzzyTech s’ha de clicar en el menú l’opció Debug i seguidament Batch on s’obre una
finestra per buscar el fitxer que has creat. Quan s’accepta, es comença l’execució del joc
de proves, i el resultat del risc d’una mostra es veu en el determinat pas on es troba.
Figura 93. Fitxer .batch amb els valors de les mostres del joc de proves
111
Però si ens fixem amb la Figura anterior, són 4 mostres diferents, per tant únicament
mostrarem els resultats dels quatre casos diferents:
Figura 94. Resultat de la mostra 1
Els resultats de les mostres 3 i 7 són exactament iguals que el de la Figura 94.
Figura 95. Resultat de la mostra 13
112
7.5 SISTEMA EXPERT JUNT
Introduirem les mostres de l’article a tot el conjunt de forma interactiva. Com hem
explicat, s’ha de clicar al menú del FuzzyTech on fica Debug i després Interactive
d’aquesta forma ja podem introduir els exemples. Per executar-ho, s’agafa un dels
exemples que volem introduir i tenim que ficar els valors de l’exemple a les
determinades variables i d’aquesta forma ens donarà un resultat final del risc.
El primer exemple és el que veiem en la Figura 96. El resultat que obtenim és de Risc
Low amb nivell 0.7, que defuzzificat dóna 1.5554, tal com es mostra a la finestra
inferior.
Figura 96. Joc de proves interactiu
Per utilitzar el mètode batch en tot el Sistema Expert, creem un fitxer (Figura 97) on
posem tots els valors a les variables. Després veurem el resultat del riscTotal executant
una per una cada mostra introduïda.
113
Figura 97. Fitxer batch amb les mostres per tot el Sistema Expert
El resultat de la primera mostra és el següent:
Figura 98. Resultat de la primera mostra
La segona mostra ens dona el mateix resultat, la diferència és que s’activa el terme Low
amb un nivell de 0.75.
Figura 99. Resultat de la tercera mostra
114
Figura 100. Resultat de la mostra número 4
El resultat de la mostra 5 i 6 és el mateix que el vist en la Figura 100.
Figura 101. Resultat de la mostra número 7
Figura 102. Resultat de la mostra número 8
El resultat de la mostra número 9 i 10 és el mateix que la Figura 101, és a dir, 4.9996.
Figura 103. Resultat de la mostra número 11
El resultat de la mostra número 12 és el mateix que la Figura 102, és a dir, 5.6888.
115
Figura 104. Resultat de la mostra número 13
El resultat de la mostra número 14 és el mateix que la Figura 104, la diferència és que el
nivell de Low s’ha activat amb 0.80, igual que el resultat de la mostra 15. I el resultat de
la mostra 16 també és el mateix que la Figura 104, però el Low s’ha activat a 0.85.
116
8. ESTUDI DE L’ÚS DE LES TÈCNIQUES NEURO-FUZZY EN AQUEST PROBLEMA Les tècniques de Neuro-Fuzzy, com hem explicat en l’apartat 4, ens ajuda a millorar un
Sistema Expert.
El nostre objectiu era aplicar les tècniques del Neuro-Fuzzy per tot el Sistema Expert,
però no ha set possible per la falta d’exemples resolts del risc de contaminació del sòl i
per un problema del producte Fuzzy-Tech.
Per aquest motiu hem agafat un Sistema Expert petit amb dues variables d’entrada i una
de sortida explicada anteriorment en la secció 6.2
Figura 105. Sistema Expert
El procediment que hem seguit per comprovar la millora del Sistema Expert és agafar
dues regles de les que teníem definides i canviar el resultat de risc:
Figura 106. Regles del Sistema Expert
La regla número 3 és la que teníem definida, i la regla 4 és la que hem definit nosaltres.
La regla número 6 és la que teníem definida, i la regla 7 és la que hem definit nosaltres.
117
Per a que el Neuro-Fuzzy es pugui aplicar i seleccioni la millor regla hem construït un
fitxer que conté les dades de les variables i el resultat del risc final perquè pugui
aprendre. Com podem veure en la Figura 107 les dades estan definides per a que
s’activin les regles noves que hem afegit, per comprovar si ho fa bé. En aquest exemple,
només hem posat 2 casos de mostra per cada regla a aprendre.
Figura 107. Fitcher .batch
Apliquem al Sistema Expert l’aprenentatge i els resultats són els següents:
Figura 108. Resultat de l’aprenentatge del Sistema Expert
Com podem comprovar en la Figura 108, la regla 3 li ha deixat un pes d’un 0,22 i a la
regla 4 un pes de 0,94 és a dir la diferència és suficient com per poder eliminar la regla
3. I l’altra regla que hem seleccionat per comprovar que es podia aplicar l’aprenentatge
al nostre sistema també ens ha donat els resultats esperats. En la regla 6 ens ha deixat el
pes a 0, en canvi, la regla 7 a 0,84 amb la qual cosa hi ha una gran diferència per poder
elegir la regla adequada.
Hem decidit fer més jocs de proves, i en un altre fitxer hem ficat més dades per a que
s’adoni de quina de les regles és la bona i el resultat amb 4 mostres per cada regla és el
següent
118
Figura 109. Resultat de l’aprenentatge del Sistema Expert amb 8 mostres
La diferència que trobem amb l’anterior joc de proves, és que el pes de la regla 3 l’ha
deixat a 0,07, que és un valor menor que abans. I la que nosaltres volem, és a dir, la
regla 4, l’ha deixat a 1. La regla 6 la continua deixant a 0 i la regla 7 a 0,84. També
podem comprovar que hem baixat la mitjana de la desviació.
Hem fet un altre fitxer, el qual conté 6 mostres per a cada regla, amb el qual continua
adonant-se quina és la regla bona, i disminuint la mitjana de desviació, lo qual indica
que discrimina una mica millor que el cas anterior.
Figura 110. Resultat de l’aprenentatge del Sistema Expert amb 12 mostres
La conclusió d’aquestes proves és que com més casos resolts introdueixes al fitxer per a
que el Sistema Expert pugui aprendre, més eficaç acaba sent.
Encara que, com hem observat en la Figura 108, sol ficant-hi dos mostres per cada regla
que volem que aprengui, ens ha triat la regla correcta. És a dir, les tècniques del Neuro-
Fuzzy són molt potents, ja que per decidir quina de les dues regles és la bona amb un
exemple n’hi ha suficient. Però per fer el millor Sistema Expert es necessiten molts
casos resolts.
119
9. CONCLUSIONS Saber el risc d’un sòl contaminat per poder actuar i remeiar-ho, a dia d’avui, és molt
necessari. I la eina que hem creat es pot utilitzar adequadament, ja que la utilització de
la lògica fuzzy ens permet utilitzar dades imprecises, és a dir, que no siguin magnituds
exactes, i utilitzar les característiques més representatives per saber si un sòl està
contaminat.
En aquet PFC hem millorat el Sistema Expert que estava creat [García, 2005] per
decidir quin és el risc d’un sòl determinat.
Aquest nou SE és fàcil d’entendre i fàcil de ser modificat. Per tant, si passat un temps
els experts químics troben noves característiques per analitzar el risc d’un sòl
contaminat, o diferents valors, poden modificar ells mateixos el Sistema Expert,
d’aquesta forma no tenen que estar pendents de que un expert en informàtica els hi
solucioni un petit problema.
El Sistema Expert és una ajuda per la presa de decisions, amb el qual guanyem amb la
dependència de personal expert, ja que no has de tenir molts experts per decidir si un sòl
està contaminat, el coneixement es quedarà per sempre, acceptant canvis i
modificacions i millorarem la eficiència en la presa de decisions amb la qual cosa es pot
actuar més ràpidament per remeiar un sòl contaminat.
L’inconvenient més gran ha estat la falta de mostres per determinar quin és el risc d’un
sòl contaminat. Aquest problema ens ha afectat a la millora del Sistema Expert, ja que
volíem utilitzar les tècniques del Neuro-Fuzzy per tot el sistema. Cosa que no es pot fer
si no es tenen suficients mostres representatives.
Finalment, analitzaré si he complert els objectius proposats al principi del projecte:
• He adquirit el coneixement relacionat amb els sistemes experts i les xarxes
neuronals, gràcies a la informació que hi ha als llibres. Aquest va ser el principal
objectiu al començament del PFC per poder fer-lo.
• L’objectiu d’obtenir i modelar el coneixement del domini amb el PFC que
teníem [García, 2005], ens ha resultat complicat, tal com hem explicat en la
secció 5 hem aprofitat bàsicament l’estructura del Sistema Expert i totes les
variables definides. Gràcies a la Dra. Marta Schumacher hem completat totes les
regles.
120
• He aprés a utilitzar l’entorn de desenvolupament FuzzyTech per crear tot el
Sistema Expert, i la part de Neruo-Fuzzy per comprovar que realment millora un
Sistema Expert. Aquest procés ha estat bàsicament llegir el manual que ens
proporcionava el producte FuzzyTech.
• L’últim objectiu, com he dit abans, l’hem assolit ja que he construït el Sistema
Expert amb l’eina FuzzyTech. Com hem estructurat el Sistema Expert en tres
grups, teníem tres Sistemes Experts amb fitxers diferents. I per poder ajuntar els
tres Sistemes Experts he tingut que fer-ho tot de nou, definint totes les variables,
totes les regles i els paràmetres elegits.
121
10. VALORACIÓ PERSONAL DEL PROJECTE FINAL DE CARRERA Aquest projecte per a mi ha significat molt ja que m’ha demostrat que sent informàtica
també pots ajudar a la societat, com aquest projecte, que servirà per ajudar a saber el
risc d’un sòl contaminat i d’aquesta forma poder remeiar-ho.
També me n’he adonat, que l’Intel·ligència Artificial és una rama de la informàtica molt
interessant i que m’ha agradat molt. He pogut comprovar que les diferents àrees de
treball, en veritat, han d’estar juntes per solucionar els problemes. En aquest cas l’àrea
de la química i la informàtica.
La dificultat més gran que he trobat ha estat la determinació de les regles. Va ser molt
difícil intentar treure-les d’un Sistema Expert que no s’entenia res perquè no estava ben
estructurat, i li faltava la documentació necessària per poder entendre on estaven les
regles. Després també va ser difícil fer el paper d’enginyer del coneixement per ajudar a
l’expert (la Dra. Marta Schumacher) a formalitzar el coneixement d’un domini que jo no
coneixia. Finalment el procés que ens va anar millor va ser que jo li proposava un
conjunt de regles (que obtenia amb l’aproximació de la mitjana dels valors) i ella les
revisava i em deia noves regles. Crec que a vegades és millor començar-ho tot de nou.
En aquest tema també he comprovat que és molt important una bona comunicació entre
els experts per poder crear les regles perfectament.
Aquest projecte m’ha servit per aprendre tot el tema de la lògica fuzzy ja que no sabia
res d’aquest tema, i també sobre les xarxes neuronals. També he aprés a utilitzar l’eina
FuzzyTech que crec que és un producte molt eficaç per tractar tota la lògica fuzzy.
La millor sensació havent realitzat aquest projecte és que m’he sentit útil i que el
resultat m’ha agradat.
Aquest projecte m’ha suposat un grau d’esforç alt en quan a l’adquisició del
coneixement, és a dir, al començament del PFC quan has de llegir tota la informació per
poder fer-lo, i també a l’hora de tenir un coneixement químic per entendre els criteris
que m’explicava l’expert per poder construir les regles. Però després, m’ha resultat tot
més fàcil ja que al agradar-me el projecte no hem suposava un gran esforç dedicar-li el
temps necessari.
122
11. TREBALL FUTUR Aquest projecte es pot millorar ja que amb més exemples de casos resolts i més temps
es poden definir millor les regles o alguna variable del Sistema Expert.
Una millora seria canviar el mètode que hem utilitzat per crear algunes regles,
l’aproximació de la mitjana, per un mètode que utilitzés tècniques de generació
automàtica de regles, com per exemple els arbres de decisió, que ens permetrien regir el
nombre de regles, i les variables que hi ha a cadascuna.
Una de les nostres idees era aplicar les tècniques del Neuro-Fuzzy a tot el Sistema
Expert, aquest punt crec que seria interessant dur-lo a terme ja que és una millora del
Sistema Expert creat. D’aquesta forma ens permetria veure si hi ha alguna regla que no
fa falta, o si hi ha alguna regla mal definida.
123
12. REFERÈNCIES
12.1 Bibliografia [Mishkoff, 1988] Henry C. Mishkoff, A fondo: Inteligencia Artificial. Anaya Multimedia, cop. 1988 [Haton, 1992] J. P. Haton, M. Ch. Haton, La inteligencia artificial. Tibidabo, 1992 [García, 2005] M.García, Sistema experto para la priorización de suelos contaminados. Projecte Final de Carrera d’una estudiant de Enginyeria Tècnica en Informàtica de Sistemes de la Universitat Rovira i Virgili, 2005. [Valls, 2008] A. Valls, M. Batet, E. M. López, Using expert’s rules as background knowledge in the ClusDM methodology. European Journal of Operational Research, to be published, 2008 [López, 2008] E. M. López, M. García, M. Schuhmacher, J. L. Domingo, A fuzzy expert system for soil characterization, Environmental International Journal, to be published, 2008. [CEC, 2002] Comunicació de la comissió de consell, el parlament Europeu, el comité econòmic, social i el comité de les regions “Towards a Thematic Strategy for Soil Protection”. Brussel·les, 2002. [Torra, 2006] Vicenç Torra, Sistemes Difusos, Incertesa i Raonament Aproximat, Universitat Oberta de Catalunya, 2006 [Ferrari, 2007] P. Ferrari, A. Valls, M. Batet, Estudi i avaluació de Sistemes de presa de decisions multicriteri. Report de Recerca de la Universitat Rovira i Virgili, DEIM-RR-07-002. 2007 [Zadeh, 1994] Lofti Zadeh, The Fuzzy Systems Handbook. Earl Cox, 1994. [Zadeh, 1965] Lofti Zadeh, Information and Control, Fuzzy Sets, pp.338-353, 1965. [Isasi, 2004] P. Isasi, I. M. Galván, Redes de Neuronas Artificiales Un Enfoque Práctico. Prentice Hall, 2003. [Sangüesa, ] R. Sangüesa, Classificació: Xarxes Neuronals, Universitat Oberta de Catalunya. [Asante-Duah, 1998] K. Asante-Duah, Risk assessment in Environmental Managment. Chichester, Engalnd. John Wiley & Son Ltd, 1998.
124
[Kendal, 2007] Kendal, Simon & Creen, An Introduction to Knowledge Engineering. Springer, ISBN 978-1-84628-475-5, 2007 [Kumar,2006] V. Kumar, M. García, E. López, A. Valls, A Multicriteria Fuzzy Decision System to Sort Contaminated Soils, V. Torra et al. (Eds): MDAI 2006, LNAI 3885, pp. 105-116. Springer-Verlag Berlin Heidelberg, 2006. [Moreno, 1993] A. Moreno, J. Béjar, U. Cortés, Inteligencia Artificial. Politext col·lecció, Edicions UPC, àrea de computació i control. [Newell, 1990] A. Newell, Unified theories of cognition. Harvard, University Press, 1990. [www.fuzzytech.com] Inform GmbH, http://www.fuzzytech.com/