Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AstronomieBiofizicaBiologieBotanicaCartiChimieCopii
Educatie civicaFabule ghicitoriFizicaGramaticaJocLiteratura romanaLogica
MatematicaPoeziiPsihologie psihiatrieSociologie


Sisteme Fuzzy

Fizica



+ Font mai mare | - Font mai mic



Sisteme Fuzzy



Un sistem fuzzy consta in faptul ca poate stapanii simultan date numerice si cunostinte lexicale. Reprezinta in fapt o transformare neliniara aplicata vectorului datelor de intrare intr-o iesire scalara.

O multime fuzzy (sau vaga) este o multime despre care nu se stiu prea multe lucruri exacte. Expertul uman trebuie sa aiba abilitatea de a obtine rationamente eficiente chiar prin exploatarea imprecisului, a informatiilor incomplete si nesigure. Teoria multimilor fuzzy ajuta la transformarea rationamentelor umane calitative in expresii numerice cantitative.

Avantajul unui sistem fuzzy consta in faptul ca exista extrem de multe posibilitati care conduc la loturi de transformari diferite.

Regulile furnizate de catre experti sunt exprimate prin propozitii de forma DACA . ATUNCI . cum ar fi: DACA x1 este foarte intarziat SI x2 este foarte mic ATUNCI urmareste planificator varianta 2. Regula din exemplul anterior reliefeaza cateva aspecte cum ar fi :

Transpunerea variabilelor lingvistice in corespondentele lor numerice (ex. foarte intarziat poate insemna ca activitatea este intarziata cu mai mult de 7 zile)

Variabilele lingvistice au fiecare o gama finita de termeni ( de exemplu progresul activitatii poate varia de la extrem de intarziat la extrem de timpuriu cu cateva intervale intermediare.)

Conexiuni logice ale variabilelor lingvistice (de tipul SI, SAU)

Fuzificatorul are rolul de a transpune exprimarile numerice in seturi fuzzy, necesare pentru activarea regulilor, care la randul lor au asociate valorilor lingvistice seturi fuzzy corespunzatoare.

Motorul de inferenta aplica o transformare a seturilor de reguli in seturi fuzzy. Aici se implementeaza modul de tratare al regulilor.

In majoritatea aplicatiilor, este necesara transformarea reciproca din seturi fuzzy in valori numerice, sarcina pe care o are defuzificatorul.

Acest mod de reprezentare a cunoasterii este una dintre cele mai utilizate in sistemele expert. Metoda se bazeaza pe separarea componentelor obisnuite ale calculului, in scopul manipularii usoare in procesele la care sunt utilizate.

Cunoasterea in retele de productie este de natura procedurala si pot fi definite urmatoarele componente:

  • cunoasterea declarativa sau factuala ce reprezinta piese de cunoastere stocate sub forma unor structuri de date intr-o colectie numita si context;
  • cunoasterea procedurala reprezentata sub forma unei colectii de tip conditie-actiune numite ti reguli de productie,colectie ce formeaza baza de reguli;
  • cunoasterea strategica sau de control formata din reguli ce privesc secventele de actiuni in procesul de rezolvare.

Se poate afirma ca structura generala a unei reguli de productie este urmatoarea:

<partea conditie >-><partea actiune> avand interpretarea,

IF<partea conditie >este indeplinita, THEN se executa <partea actiune>

Aplicatia

Enuntul problemei: O familie doreste achizitionarea unui aspirator, care este oferta cea mai buna

Avem astfel 2 variabile de intrare:puterea (Pt) si pretul (pr), si o iesire: oferta (O).

Oferta (O)

Pret (pr)

Fm

m

Med

M

FM

P

u

t

e

r

e

a

(Pt)

Fm

Med

m

Fm

Fm

Fm

m

M

Med

m

m

Fm

Med

FM

M

Med

m

Fm

M

FM

FM

Med

Med

m

FM

FM

FM

M

Med

Med

Puterea:Fm - putere f. mica

m - putere mica

Med - putere medie

M - putere mare

FM - putere f. mare

Pret:      Fm - pret foarte mic

m - pret mic

Med - pret acceptabil

M - pret mare

FM - pret f. mare

Oferta: Fm - oferta f. proasta

m - oferta proasta

Med - oferta acceptabila

M - oferta buna

FM - oferta f. buna

Reguli

R 1.1: IF (Pt= Fm) AND (pr=Fm) THEN (O=Med)

R 1.2: IF (Pt= Fm) AND (pr=m) THEN (O=m)

R 1.3: IF (Pt= Fm) AND (pr=Med) THEN (O=Fm)

R 1.4: IF (Pt= Fm) AND (pr=M) THEN (O=Fm)

R 1.5: IF (Pt= Fm) AND (pr=FM) THEN (O=Fm)

R 2.1: IF (Pt= m) AND (pr=Fm) THEN (O=M)

R 2.2: IF (Pt= m) AND (pr=m) THEN (O=Med)

R 2.3: IF (Pt= m) AND (pr=Med) THEN (O=m)

R 2.4: IF (Pt= m) AND (pr=M) THEN (O=m)

R 2.5: IF (Pt= m) AND (pr=FM) THEN (O=Fm)

R 3.1: IF (Pt= Med) AND (pr=Fm) THEN (O=FM)

R 3.2: IF (Pt= Med) AND (pr=m) THEN (O=M)

R 3.3: IF (Pt= Med) AND (pr=Med) THEN (O=Med)

R 3.4: IF (Pt= Med) AND (pr=M) THEN (O=m)

R 3.5: IF (Pt= Med) AND (pr=FM) THEN (O=Fm)

R 4.1: IF (Pt= M) AND (pr=Fm) THEN (O=FM)

R 4.2: IF (Pt= M) AND (pr=m) THEN (O=FM)

R 4.3: IF (Pt= M) AND (pr=Med) THEN (O=Med)

R 4.4: IF (Pt= M) AND (pr=M) THEN (O=Med)

R 4.5: IF (Pt= M) AND (pr=FM) THEN (O=m)

R 5.1: IF (Pt= FM) AND (pr=Fm) THEN (O=FM)

R 5.2: IF (Pt= FM) AND (pr=m) THEN (O=FM)

R 5.3: IF (Pt= FM) AND (pr=Med) THEN (O=M)

R 5.4: IF (Pt= FM) AND (pr=M) THEN (O=Med)

R 5.5: IF (Pt= FM) AND (pr=FM) THEN (O=Med)

In primul pas, am deschis programul Matlab si dupa ce am introdus comanda: "fuzzy" tastand mai apoi tasta Enter in Command Window, a aparut Editorul "Fis" (Fis Editor) (dupa cum reiese si din imaginea urmatoare).

Avand o problema cu 2 variabile de intrare am introdus inca un "input" in Editorul FIS, din meniul Edit selectand Add Variable, respectiv Input.

Am redenumit "input1", "input2" si "output1" cu numele variabilelor din problema: putere, pret si respectiv oferta. Am deschis caseta grafica a variabilei "putere" (dublu click pe ea), apoi am sters toate functiile prezente din editorul Membership Function, meniul Edit, selectand Remove All MFs, si am adaugat 5 functii necesare pentru problema de fata din meniul Edit - Add MFs, si in lista Number of MFs am selectat 5, dupa cum se observa in imaginea urmatoare:

Functiile de apartenenta sunt de tip triunghi isoscel pentru termenii lingvistici interiori si de tip trapeizoidal cu acoperire partiala pentru termenii lingvistici exteriori.

Pentru fiecare variabila in parte schimbam universul de discurs, schimband valoarea din partea stanga-jos, in casuta "Range" . Schimbam profilul geometric a primei si ultimei variabile in lista derulanta "Type" la forma trapezoidala (trapmf), apoi redenumim functiile in casuta "Name" introducand si valorile lor - casuta Params

Fuzificarea valorilor:

Pentru Putere avem urmatoarele variabile lingvistice:

  • Fm - putere f. mica [-400 -100 100 400]
  • m - putere mica
  • Med - putere medie [600 900 1200]
  • M - putere mare [900 1200 1500]
  • FM - putere f. mare [1200 1500 1800 2100]

Pentru Pret avem urmatoarele variabile lingvistice:

  • Fm - pret f. mic [-50 -30 30 50]
  • m pret mic
  • Med pret acceptabil
  • M pret mare
  • FM pret f. mare

Pentru Oferta avem urmatoarele variabile lingvistice:

  • Fm - oferta f. proasta .[-2 -0.5 0.5 2]
  • m - oferta proasta .[1 3 5]
  • Med - oferta acceptabila ..[3 5 7]
  • M - oferta buna .[5 7 9]
  • FM - oferta f. buna .[7 9 11 13]

Am trecut mai apoi la introducerea regulilor, selectand Edit, apoi Rules din fereastra Membership Function Editor, adaugand reguli folosind tasta Add Rule, in fereastra Rule Editor. Regulile sunt cele evidentiate mai sus.

Imaginea ferestrei Rule Editor, dupa adaugarea tuturor regulilor

In urma introducerii celor 25 de reguli, prezentate mai sus au rezultat urmatoarele diagrame de reguli si suprafete:

Concluzii:

Daca introducem o valoare pentru Putere de 200 W si un Pret de 210 lei obtinem o oferta de 0,752, ceea ce inseamna ca oferta este foarte proasta si nu recomandam achizitionarea unui astfel de aspirator la acest pret.

Daca introducem o valoare de input pentru Putere de 1600 W si un Pret de 40 lei obtinem o oferta de 8,76, ceea ce inseamna ca oferta este foarte buna si recomandam achizitionarea unui astfel de aspirator.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1560
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved