60 lines
2.5 KiB
Plaintext
60 lines
2.5 KiB
Plaintext
FUNCTION_BLOCK system_rekomendacji_filmow
|
|
|
|
VAR_INPUT
|
|
dopasowanie_gatunkowe : REAL;
|
|
ocena_uzytkownika : REAL;
|
|
popularnosc : REAL;
|
|
END_VAR
|
|
|
|
VAR_OUTPUT
|
|
dopasowanie : REAL;
|
|
END_VAR
|
|
|
|
FUZZIFY ocena_uzytkownika
|
|
TERM niska := (0.5, 1) (3, 1) (4, 0);
|
|
TERM srednia := (3, 0) (4, 1) (4.5, 0);
|
|
TERM wysoka := (4, 0) (4.5, 1) (5, 1);
|
|
END_FUZZIFY
|
|
|
|
FUZZIFY popularnosc
|
|
TERM niska := (1, 1) (10, 1) (30, 0);
|
|
TERM srednia := (10, 0) (30, 1) (50, 0);
|
|
TERM wysoka := (30, 0) (50, 1) (100, 1);
|
|
END_FUZZIFY
|
|
|
|
FUZZIFY dopasowanie_gatunkowe
|
|
TERM niskie := (0.5, 1) (2, 1) (3, 0);
|
|
TERM srednie := (2, 0) (3, 1) (4, 0);
|
|
TERM wysokie := (3, 0) (4, 1) (5, 1);
|
|
END_FUZZIFY
|
|
|
|
DEFUZZIFY dopasowanie
|
|
TERM niskie := (1, 1) (4, 1) (7, 0);
|
|
TERM srednie := (4, 0) (7, 1) (9, 0);
|
|
TERM wysokie := (7, 0) (9, 1) (10, 1);
|
|
METHOD : COG;
|
|
DEFAULT := 5;
|
|
END_DEFUZZIFY
|
|
|
|
RULEBLOCK No1
|
|
AND : MIN;
|
|
ACT : MIN;
|
|
ACCU : MAX;
|
|
|
|
RULE 1 : IF ocena_uzytkownika IS niska THEN dopasowanie IS niskie;
|
|
RULE 2 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS niskie AND popularnosc IS niska THEN dopasowanie IS niskie;
|
|
RULE 3 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS srednie THEN dopasowanie IS srednie;
|
|
RULE 4 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS niskie AND popularnosc IS srednia THEN dopasowanie IS srednie;
|
|
RULE 5 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS niskie AND popularnosc IS wysoka THEN dopasowanie IS srednie;
|
|
RULE 6 : IF ocena_uzytkownika IS wysoka AND dopasowanie_gatunkowe IS niskie AND popularnosc IS niska THEN dopasowanie IS srednie;
|
|
RULE 7 : IF ocena_uzytkownika IS wysoka AND dopasowanie_gatunkowe IS niskie AND popularnosc IS srednia THEN dopasowanie IS srednie;
|
|
RULE 8 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS wysokie AND popularnosc IS niska THEN dopasowanie IS srednie;
|
|
RULE 9 : IF ocena_uzytkownika IS srednia AND dopasowanie_gatunkowe IS wysokie AND popularnosc IS srednia THEN dopasowanie IS srednie;
|
|
RULE 10 : IF ocena_uzytkownika IS wysoka AND dopasowanie_gatunkowe IS srednie THEN dopasowanie IS wysokie;
|
|
RULE 11 : IF ocena_uzytkownika IS wysoka AND dopasowanie_gatunkowe IS wysokie THEN dopasowanie IS wysokie;
|
|
RULE 12 : IF ocena_uzytkownika IS wysoka AND popularnosc IS wysoka THEN dopasowanie IS wysokie;
|
|
RULE 13 : IF dopasowanie_gatunkowe IS wysokie AND popularnosc IS wysoka THEN dopasowanie IS wysokie;
|
|
|
|
END_RULEBLOCK
|
|
|
|
END_FUNCTION_BLOCK |