You are on page 1of 28

Fazi logika

(Fuzzy logic)
Goran imi

Sadrzaj

Osnove
Funkcija pripadanja
Fuzzy skupovi
Fuzzy varijable
Fuzzy termini

FuzzyJToolkit
Definisanje fazi skupova
Definisanje modifikatora
Definisanje fazi pravila

Osnove***13***

Lotfi Zadeh otac


fuzzyness-a
Objekti
pripadaju/nepripadaju
skupovima - klasicna
teorija skupova
Objekti pripadaju
skupovima u odredjenom
stepenu

Osnove

Graficka reprezentacija fazi skupa (FuzzySet)

Osnove

Primeri

Osnove

Primer QoS algoritma regulacija brzine


protoka paketa za zadati link

Osnove

Funkcija pripadanja (Membership degree) za


paketsku brzinu

Fuzzy termini

Osnove

Fuzzy varijabla Packet Rate

Skup svih mogucih vrednosti universe of discourse

Osnove

Mehanizam korienja
rate trenutna paketska brzina
pdelta rezolucija promene brzine

Osnove

Primer sistema za navodjenje

Osnove

Primer sistema za navodjenje

Osnove

Funkcija pripadanja
Skup svih mogucih vrednosti universe of discourse
(U)

Osnove

Definisanje vrednosti koje pripadaju fuzzy


skupovima (ne moraju biti skalari)

Osnove

Aksiomi fuzzy logike

Osnove

Faktor dovoljnosti i faktor neophodnosti

Definisanje fazi skupova**15**

Vrste fazi skupova (FuzzyJToolkit)

Definisanje fazi skupova**15**

Graficka reprezentacija fazi skupa

Definisanje fazi pravila**14**

Fazifikacija crisp vrednosti

Definisanje fazi pravila**14**

Defazifikacija

Definisanje fazi pravila

Primer koda

FuzzyRule lowTempLowPressure = new FuzzyRule();


FuzzyVariable temperature = new FuzzyVariable("temperature", 0.0, 100.0, "Degrees C");
temperature.addTerm("low", new PIFuzzySet(20, 20));
temperature.addTerm("medium", new PIFuzzySet(50, 20));
temperature.addTerm("high", new PIFuzzySet(80, 20));
pressure = new FuzzyVariable("pressure", 0.0, 500.0, "kPa");
pressure.addTerm("low", new PIFuzzySet(100, 100));
pressure.addTerm("medium", new PIFuzzySet(250, 100));
pressure.addTerm("high", new PIFuzzySet(400, 100));
lowTempLowPressure.addAntecedent(new FuzzyValue(temperature,"low"));
lowTempLowPressure.addAntecedent(new FuzzyValue(pressure,"low"));
lowTempLowPressure.addConclusion(new FuzzyValue(throttle,"high"));

Definisanje fazi pravila

Primer koda (2)

//transformacija crisp->fuzzy
FuzzyValue tempFv = new FuzzyValue(this.temperature,new PIFuzzySet(temp, 0.5));
FuzzyValue pressFv = new FuzzyValue(this.pressure,new PIFuzzySet(press, 0.5));
//ubacivanje cinjenica u pravila
this.lowTempLowPressure.addInput(tempFv);
this.lowTempLowPressure.addInput(pressFv);
if (this.lowTempLowPressure.testRuleMatching())
{
fvv = lowTempLowPressure.execute(); // get output of the rule
globalOutput = fvv.fuzzyValueAt(0); // 1st rule ... it becomes global output
}

Definisanje fazi pravila

Defazifikacija 2

maximumDefuzzify

momentDefuzzify
weightedAverageDefuzzify

Definisanje fazi pravila

Graficka reprezentacija ispaljivanja pravila za razlicite algorotme zakljucivnaja

MamdaniMinMaxMinRuleExecutor

Definisanje fazi pravila

Graficka reprezentacija ispaljivanja pravila za razlicite algorotme zakljucivnaja

LarsenProductMaxMinRuleExecutor

Definisanje modifikatora

Normalizacija max vrednost funkcije


pripadanja da ne bude veca od 1 i da se
vrednosti funkcije pripadanja krecu u citavom
intervalu 0-1 (prethodi modifik.)

Definisanje modifikatora*15*

Modifikatori (modifiers/hedges) za blaga variranja


osnovnih vrednosti fazi skupa

NOT

VISE ILI MANJE


(MORE_OR_LESS )

NESTO KAO
(SOMEWHAT )

Definisanje modifikatora

VEOMA
(VERY)

PLUS

Definisanje modifikatora

EKSTREMNO
(EXTREMLY)

INTENZIVIRAJ
(INTENSIFY)

You might also like