This commit is contained in:
s460941 2020-06-10 11:29:47 +02:00
parent 8b268689e1
commit 47fefad130
3 changed files with 77 additions and 31 deletions

View File

@ -4,8 +4,6 @@
<list default="true" id="0fc070d1-3753-43f5-b5e7-37c2bc110b95" name="Default Changelist" comment=""> <list default="true" id="0fc070d1-3753-43f5-b5e7-37c2bc110b95" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/matches_list.csv" beforeDir="false" afterPath="$PROJECT_DIR$/matches_list.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/teams_list.csv" beforeDir="false" afterPath="$PROJECT_DIR$/teams_list.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/worker.fcl" beforeDir="false" afterPath="$PROJECT_DIR$/worker.fcl" afterDir="false" /> <change beforePath="$PROJECT_DIR$/worker.fcl" beforeDir="false" afterPath="$PROJECT_DIR$/worker.fcl" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -92,22 +90,22 @@
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>
<state x="291" y="120" key="#com.intellij.execution.impl.EditConfigurationsDialog/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591713379914" /> <state x="291" y="120" key="#com.intellij.execution.impl.EditConfigurationsDialog/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591713379914" />
<state width="1510" height="246" key="GridCell.Tab.0.bottom" timestamp="1591777700504"> <state width="1510" height="246" key="GridCell.Tab.0.bottom" timestamp="1591781314920">
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>
<state width="1510" height="246" key="GridCell.Tab.0.bottom/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591777700504" /> <state width="1510" height="246" key="GridCell.Tab.0.bottom/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591781314920" />
<state width="1510" height="246" key="GridCell.Tab.0.center" timestamp="1591777700504"> <state width="1510" height="246" key="GridCell.Tab.0.center" timestamp="1591781314920">
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>
<state width="1510" height="246" key="GridCell.Tab.0.center/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591777700504" /> <state width="1510" height="246" key="GridCell.Tab.0.center/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591781314920" />
<state width="1510" height="246" key="GridCell.Tab.0.left" timestamp="1591777700503"> <state width="1510" height="246" key="GridCell.Tab.0.left" timestamp="1591781314920">
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>
<state width="1510" height="246" key="GridCell.Tab.0.left/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591777700503" /> <state width="1510" height="246" key="GridCell.Tab.0.left/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591781314920" />
<state width="1510" height="246" key="GridCell.Tab.0.right" timestamp="1591777700504"> <state width="1510" height="246" key="GridCell.Tab.0.right" timestamp="1591781314920">
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>
<state width="1510" height="246" key="GridCell.Tab.0.right/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591777700504" /> <state width="1510" height="246" key="GridCell.Tab.0.right/67.27.1533.873/1600.0.1920.1080@67.27.1533.873" timestamp="1591781314920" />
<state width="1510" height="272" key="GridCell.Tab.1.bottom" timestamp="1591725393594"> <state width="1510" height="272" key="GridCell.Tab.1.bottom" timestamp="1591725393594">
<screen x="67" y="27" width="1533" height="873" /> <screen x="67" y="27" width="1533" height="873" />
</state> </state>

10
main.py
View File

@ -41,12 +41,18 @@ predictions = []
for i in range(0,matches.shape[0]): for i in range(0,matches.shape[0]):
module.input['form1'] = matches_input[i][0] module.input['form1'] = matches_input[i][0]
module.input['form2'] = matches_input[i][1] module.input['form2'] = matches_input[i][1]
#module.input['points'] = matches_input[i][2] module.input['points'] = matches_input[i][2]
module.compute() module.compute()
x = module.output['result'] x = module.output['result']
x = float("{:.4f}".format(x)) x = float("{:.4f}".format(x))
y = int(round(x)) #y = int(round(x))
if x > 0.2:
y = 1
elif x < -0.2:
y = -1
else:
y = 0
predictions.append(y) predictions.append(y)
print("|FCL: " +str(x) + "|ROUND: " + str(y) + "|GROUND: " + str(matches_input[i][3]) + "|PKT DIFFERENCE: " + str(matches_input[i][2])+'|') print("|FCL: " +str(x) + "|ROUND: " + str(y) + "|GROUND: " + str(matches_input[i][3]) + "|PKT DIFFERENCE: " + str(matches_input[i][2])+'|')

View File

@ -12,16 +12,20 @@ END_VAR
FUZZIFY form1 FUZZIFY form1
RANGE := (-1.000 .. 5.000); RANGE := (-1.000 .. 5.000);
TERM bad := (1,1)(2,0); TERM bad := (0.5,1)(1.5,0);
TERM avg := (1,0)(2,1)(3,1)(4,0); TERM notbad := (0.5,0)(1.5,1)(2.5,0)
TERM great := (4,0)(5,1); TERM avg := (1.5,0)(2.5,1)(3.5,0)
TERM notgreat := (2.5,0)(3.5,1)(4.5,0)
TERM great := (3.5,0)(4.5,1);
END_FUZZIFY END_FUZZIFY
FUZZIFY form2 FUZZIFY form2
RANGE := (-1.000 .. 5.000); RANGE := (-1.000 .. 5.000);
TERM bad := (1,1)(2,0); TERM bad := (0.5,1)(1.5,0);
TERM avg := (1,0)(2,1)(3,1)(4,0); TERM notbad := (0.5,0)(1.5,1)(2.5,0)
TERM great := (4,0)(5,1); TERM avg := (1.5,0)(2.5,1)(3.5,0)
TERM notgreat := (2.5,0)(3.5,1)(4.5,0)
TERM great := (3.5,0)(4.5,1);
END_FUZZIFY END_FUZZIFY
FUZZIFY points FUZZIFY points
@ -46,23 +50,61 @@ RULEBLOCK
ACCU : MAX; ACCU : MAX;
ACT : MIN; ACT : MIN;
//RULE 0: if form1 is avg and form2 is avg then result is draw // form1: great | form2
RULE 0 : if form1 is great and form2 is bad then result is home
RULE 1 : if form1 is great and form2 is bad then result is home RULE 1 : if form1 is great and form2 is notbad then result is home
RULE 2 : if form1 is great and form2 is avg then result is home RULE 2 : if form1 is great and form2 is avg then result is home
RULE 3 : if form1 is great and form2 is great then result is draw RULE 3 : if form1 is great and form2 is notgreat then result is home
//rozbicie jednego draw
RULE 4 : if form1 is great and form2 is great and points is low then result is away
RULE 5 : if form1 is great and form2 is great and points is avg then result is draw
RULE 6 : if form1 is great and form2 is great and points is high then result is home
RULE 4 : if form1 is avg and form2 is bad then result is home // form1: notgreat | form2
RULE 5 : if form1 is avg and form2 is avg then result is draw RULE 7 : if form1 is notgreat and form2 is bad then result is home
RULE 6 : if form1 is avg and form2 is great then result is away RULE 8 : if form1 is notgreat and form2 is notbad then result is home
// rozbicie
RULE 9 : if form1 is notgreat and form2 is avg and points is low then result is away
RULE 10 : if form1 is notgreat and form2 is avg and points is avg then result is draw
RULE 11 : if form1 is notgreat and form2 is avg and points is high then result is home
// rozbicie
RULE 12 : if form1 is notgreat and form2 is notgreat and points is low then result is away
RULE 13 : if form1 is notgreat and form2 is notgreat and points is avg then result is draw
RULE 14 : if form1 is notgreat and form2 is notgreat and points is high then result is home
RULE 15 : if form1 is notgreat and form2 is great then result is away
// form1: avg | form2
RULE 16 : if form1 is avg and form2 is bad then result is home
RULE 17 : if form1 is avg and form2 is notbad then result is home
// rozbicie
RULE 18 : if form1 is avg and form2 is avg and points is low then result is away
RULE 19 : if form1 is avg and form2 is avg and points is avg then result is draw
RULE 20 : if form1 is avg and form2 is avg and points is high then result is home
RULE 21 : if form1 is avg and form2 is notgreat then result is away
RULE 22 : if form1 is avg and form2 is great then result is away
// form1: notbad | form2
RULE 23 : if form1 is notbad and form2 is bad then result is home
//rozbicie
RULE 24 : if form1 is notbad and form2 is notbad and points is low then result is away
RULE 25 : if form1 is notbad and form2 is notbad and points is avg then result is draw
RULE 26 : if form1 is notbad and form2 is notbad and points is high then result is home
RULE 27 : if form1 is notbad and form2 is avg then result is away
RULE 28 : if form1 is notbad and form2 is notgreat then result is away
RULE 29 : if form1 is notbad and form2 is great then result is away
// form1: bad | form2
//rozbicie
RULE 30 : if form1 is bad and form2 is bad and points is low then result is away
RULE 31 : if form1 is bad and form2 is bad and points is avg then result is draw
RULE 32 : if form1 is bad and form2 is bad and points is low then result is home
RULE 33 : if form1 is bad and form2 is notbad then result is away
RULE 34 : if form1 is bad and form2 is avg then result is away
RULE 35 : if form1 is bad and form2 is notgreat then result is away
RULE 36 : if form1 is bad and form2 is great then result is away
RULE 7 : if form1 is bad and form2 is bad then result is draw
RULE 8 : if form1 is bad and form2 is avg then result is away
RULE 9 : if form1 is bad and form2 is great then result is away
//RULE 10: if points is high then result is away
//RULE 11: if points is high then result is draw
//RULE 10: if form1 is great and form2 is bad and points is low then result is home
END_RULEBLOCK END_RULEBLOCK
END_FUNCTION_BLOCK END_FUNCTION_BLOCK