rekomendacja_filmow/system_rekomendacji_filmow.fcl

60 lines
2.5 KiB
Plaintext
Raw Permalink Normal View History

2024-12-10 16:19:58 +01:00
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