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