рдлрдЬреА рдЗрдирд╡рд┐рдЬрд╝рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдорд╛рдорджрд╛рдиреА рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо

рдкрд░рд┐рдЪрдп



рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рд▓реЛрдЯреА рдЬрд╝рд╛рдбреЗрд╣ рдирд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдХреЗ рдлрд╝рдЬрд╝реА рд▓реЙрдЬрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рд▓реЗрдЦ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдерд╛ рд╣реИред рдФрд░ рдореИрдВ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрджрдореА рди рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рдкрд┐рддрд╛ рдмрди рдЧрдпрд╛, рдмрд▓реНрдХрд┐ 1965 рдореЗрдВ "рдлрдЬреА рд╕реЗрдЯреНрд╕" рдХреЛ рдореМрд▓рд┐рдХ рдХрд╛рд░реНрдп рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ 1973 рдореЗрдВ "рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрдВрдб рдбрд┐рд╕рд┐рдЬрди рдкреНрд░реЙрд╕реЗрд╕ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд░реВрдкрд░реЗрдЦрд╛" (рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ IEEE рд▓реЗрдирджреЗрди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд) рдирд╛рдордХ рдкрд╛рда рдореЗрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдЗрд╕рдХреА рд░рд┐рд▓реАрдЬ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдПрдХ рдЙрджреНрдпрдореА рдбреЗрдирд┐рд╢ рдХрдВрдкрдиреА рдиреЗ рдПрдХ рдЬрдЯрд┐рд▓ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдмрд╣реБрдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред



рд▓реЗрдХрд┐рди рдПрд▓ рдЬреЗрдб рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрдпрд╛рдпрд┐рдпреЛрдВ рдиреЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрдЧреНрд░реЗрдЬреА рдЧрдгрд┐рддрдЬреНрдЮ рдИред рдорд╛рдорджрд╛рдиреА (рдЕрдмреНрд░рд╛рд╣рд┐рдо рдорд╛рдорджрд╛рдиреА)ред 1975 рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рднрд╛рдк рдЗрдВрдЬрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрдЬреА рдЗрдирдлрд░реЗрдВрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕рдиреЗ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрдЧрдгрдирд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЧрдИред рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлрдЬреА рдореЙрдбрд▓рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИред



рдореБрдЦреНрдп рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ



рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:



рдПрдХ рдлрд╝рдЬрд╝реА рд╡реЗрд░рд┐рдПрдмрд▓ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ tuple рд╣реИ <╬▒, X , is >, рдЬрд╣рд╛рдВ:

╬▒ рдлрдЬреА рдЪрд░ рдХрд╛ рдирд╛рдо рд╣реИ;

X рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдбреЛрдореЗрди рд╣реИ;

A , рдмреНрд░рд╣реНрдорд╛рдВрдб X рдкрд░ рдПрдХ рдлрдЬреА рд╕реЗрдЯ рд╣реИред



рдЙрджрд╛рд╣рд░рдг: рдлрдЬреА рдЪрд░ <"рднрд╛рд░реА рд╢рд░реАрд░ рдХрд╡рдЪ", { x | 0 рдХрд┐рдЧреНрд░рд╛ < x <35 рдХрд┐рдЧреНрд░рд╛}, рдмреА = { рдПрдХреНрд╕ , ╬╝ ( рдПрдХреНрд╕ )}> рд╕реИрдиреНрдп рд╢рд░реАрд░ рдХрд╡рдЪ рдХреЗ рджреНрд░рд╡реНрдпрдорд╛рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рднрд╛рд░реА рдорд╛рдиреЗрдВрдЧреЗ рдпрджрд┐ рдЗрд╕рдХрд╛ рджреНрд░рд╡реНрдпрдорд╛рди> 16 рдХрд┐рдЧреНрд░рд╛ (рдЪрд┐рддреНрд░ 1) рд╣реИред







рдЕрдВрдЬреАрд░ред 1. рдлрд╝рдЬрд╝реА рд╕реЗрдЯ B рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдлрд╝рдВрдХреНрд╢рди ╬╝ ( x ) рдХрд╛ рдЧреНрд░рд╛рдлрд╝



рдПрдХ рднрд╛рд╖рд╛рдИ рдЪрд░ рдПрдХ tuple рд╣реИ < T, T, X, G, M >, рдЬрд╣рд╛рдВ:

of рднрд╛рд╖рд╛рдИ рдЪрд░ рдХрд╛ рдирд╛рдо рд╣реИ;

рдЯреА рдЗрд╕рдХреЗ рдЕрд░реНрде (рд╢рдмреНрдж) рдХрд╛ рд╕реЗрдЯ рд╣реИ;

X рдлрд╝рдЬрд╝реА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдмреНрд░рд╣реНрдорд╛рдВрдб рд╣реИ;

рдЬреА рдирдИ рд╢рд░реНрддреЛрдВ рдХреЗ рдЧрдарди рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ;

рдПрдо рдПрдХ рд╢рдмреНрджрд╛рд░реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рднрд╛рд╖рд╛рдИ рдЪрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдлрдЬреА рд╕реЗрдЯ рдмрдирд╛рддреА рд╣реИред



рдЙрджрд╛рд╣рд░рдг: рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╢рд░реАрд░ рдХреЗ рдХрд╡рдЪ рдХреЗ рд╡рдЬрди рдХрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рдореВрд▓реНрдпрд╛рдВрдХрди рд╣реИред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реИрдиреНрдп рдХрд░реНрдорд┐рдпреЛрдВ (рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рдирдп) рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреЛрд▓рд╛-рдмрд╛рд░реВрдж рд╕реЗ рд╕реАрдзреЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рдЗрд╕ рдЕрдиреБрдорд╛рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рд╖рд╛рдИ рдЪрд░ < T, T, X, G, M > (рдЪрд┐рддреНрд░ 2), рдЬрд╣рд╛рдВ: рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

or - рдмреЙрдбреА рдЖрд░реНрдорд░;

рдЯреА - {"рд▓рд╛рдЗрдЯ рдмреЙрдбреА рдЖрд░реНрдорд░ (рд▓рд╛рдЗрдЯ)", "рдореАрдбрд┐рдпрдо-рд╡реЗрдЯ рдмреЙрдбреА рдЖрд░реНрдорд░ (рдордзреНрдпрдо)", "рд╣реЗрд╡реА рдмреЙрдбреА рдЖрд░реНрдорд░ (рднрд╛рд░реА)"};

рдПрдХреНрд╕ = [0; 35];

рдЬреА - рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдпреЛрдЬрдХреЛрдВ рдФрд░ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдИ рд╢рд░реНрддреЛрдВ рдХреЗ рдЧрдарди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдмрд╣реБрдд рднрд╛рд░реА рд╢рд░реАрд░ рдХрд╛ рдХрд╡рдЪ";

M , рдмреНрд░рд╣реНрдорд╛рдВрдб X рдкрд░ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ = [0; 35] рднрд╛рд╖рд╛рдИ рдЪрд░ рдХрд╛ рдорд╛рди, рдпрд╛рдиреА рд╕реЗрдЯ рд╕реЗ рд╢рд░реНрддреЗрдВ рдЯреАред







рдЕрдВрдЬреАрд░ред 2. рднрд╛рд╖рд╛рдИ рдЪрд░ "рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рд╡реЗрд╕реНрдЯ" рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реЗрдЦрд╛рдВрдХрди



рдлрдЬреА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ "the IS ╬▒" рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ, рдЬрд╣рд╛рдВ:

ingu рдПрдХ рднрд╛рд╖рд╛рдИ рдЪрд░ рд╣реИ;

╬▒ рдЗрд╕ рдЪрд░ рдХреА рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред



рдЙрджрд╛рд╣рд░рдг: "рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдмреЙрдбреА рдЖрд░реНрдорд░ рд╣реИред" рдпрд╣рд╛рдБ "рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рд╡реЗрд╕реНрдЯ" рдПрдХ рднрд╛рд╖рд╛рдИ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ "рд▓рд╛рдЗрдЯ" рдЕрд░реНрде рд╣реИред



рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рдлрд╝рдЬрд╝реА рдкреНрд░реЛрдбрдХреНрдЯреНрд╕ рдХрд╛ рдирд┐рдпрдо (рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рдирд┐рдпрдо) рдлреЙрд░реНрдо рдХрд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдирд┐рдпрдо "рдЗрдлрд╝ ... рдереЗрди ..." рдХрд╣рд▓рд╛рдПрдЧрд╛, рдЬрд╣рд╛рдБ рдлрд╝рдЬрд╝реА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╢рд░реНрддреЛрдВ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕реЗ рдирд┐рдпрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ:



IF (╬▓ 1 IS ╬▒ 1 ) AND ( 2 IS ╬▒ 2 ) THEN (IS 3 IS ╬▒ 3 )ред



"рдФрд░" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдпреЛрдЬрдХ "OR" рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдРрд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдХрдИ рд╕рд░рд▓ рд▓реЛрдЧреЛрдВ ("рдУрдЖрд░" рдХреЗ рдмрд┐рдирд╛) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдХрд┐рд╕реА рднреА рдирд┐рдпрдо рдХреА рд╢рд░реНрдд рдореЗрдВ рдлрдЬреА рдмрдпрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдЙрдкрдЦрдВрдб рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рджрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдХрдерди рдХреЛ рдЙрдкрдЦрдВрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЙрджрд╛рд╣рд░рдг: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ:



1) IF (рднрд╛рд░реА рдмреБрд▓реЗрдЯрдкреНрд░реВрдл рд╡реЗрд╕реНрдЯ) THEN (рдердХрд╛ рд╣реБрдЖ рд╕реИрдирд┐рдХ);

2) рдЕрдЧрд░ (рдкрддрд┐ рд╕реЛрдмрд░ рд╣реИ) рдФрд░ (рдЙрдЪреНрдЪ рд╡реЗрддрди) рддреЛ (рд╕рдВрддреБрд╖реНрдЯ рдкрддреНрдиреА)ред



рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдиреНрдпреВрдирддрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред



рдорд╛рдорджрд╛рдиреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо



рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрдИ рдХреНрд░рдорд┐рдХ рдЪрд░рдгреЛрдВ (рдЫрд╡рд┐ 3) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред







рдЕрдВрдЬреАрд░ред 3. рдлрдЬреА рдЗрдВрдЬреЗрдХреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдЖрд░реЗрдЦ



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдорд╛рддреНрд░рд╛рддреНрдордХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рд╕рдорд╛рди рд╣реИред рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгреЛрдВ рдореЗрдВ, рдлрд╝рдЬрд╝реА рд▓реЙрдЬрд┐рдХ рдХреЗ рдЙрдкрдХрд░рдг рдФрд░ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдлрдЬреА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд▓рд╛рд▓рд┐рддреНрдп рд╣реИред рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд▓рдЪреАрд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдлрдЬреА рдЗрдирд╡рд┐рдЬрд╝рди рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрд░реЗрдЦ (рдЫрд╡рд┐ 4) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдмрдВрдзреЛрдВ рдФрд░ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред







рдЕрдВрдЬреАрд░ред 4. рдорд╛рдорджрд╛рдиреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдЧ рдЖрд░реЗрдЦ



рдирд┐рдпрдо (рдирд┐рдпрдо) рдореЗрдВ рд╢рд░реНрддреЛрдВ (рд╕реНрдерд┐рддрд┐) рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ (рдирд┐рд╖реНрдХрд░реНрд╖) рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдлрдЬреА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ (рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ) рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдлрд╝рдЬрд╝реА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛рдИ рдЪрд░ (рдЪрд░) рдФрд░ рдПрдХ рд╢рдмреНрдж рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ (рдлрд╝рдЬрд╝реАрд╕реЗрдЯ) рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рджрд╕реНрдпрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорд╛рди getValue () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ FuzzySetIface рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рдзрд┐ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, "рд╕рдХреНрд░рд┐рдп" рдлрд╝рдЬрд╝реА рд╕реЗрдЯ (рдПрдХреНрдЯрд┐рдлрд╝рд╛рдЗрдб рдлрд╝рдЬрд╝реАрд╕реЗрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ (рдлрд╝рдЬрд╝реАрд╕реЗрдЯ) рдХреЗ рд╕рджрд╕реНрдпрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рднреА рдлрд╝рдЬрд╝реА рд╕реЗрдЯреНрд╕ (UnionOfFuzzySets) рдХреЗ рдПрдХ рд╕рдВрдШ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рдВрдШ рднреА рдПрдХ рдлрдЬреА рд╕реЗрдЯ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рд░реЛрд╣ рд╣реИ (рдлрдЬрд╝реАрд╕реЗрдЯрд┐рдлрд╝ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд)ред



рдорд╛рдорджрд╛рдиреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо (рдордорджрд╛рдиреАрдЕрд▓реНрдЧреЛрд░рд┐рджрдо) рдореЗрдВ рд╕рднреА рдЪрд░рдг (рдЫрд╡рд┐ 3) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдо рдЖрдзрд╛рд░ (рд╕реВрдЪреА <рдирд┐рдпрдо>) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ "рд╕рдХреНрд░рд┐рдп" рдлрд╝рдЬрд╝реА рд╕реЗрдЯреНрд╕ (рдПрдХреНрдЯрд┐рдиреЗрдЯреЗрдб рдлрд╝рд┐рдЬрд╝реАрд╕реЗрдЯ) рдФрд░ рдЙрдирдХреЗ рд╕рдВрдШреЛрдВ (UnionOfFuzzySets) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред



рддреЛ, рдлрдЬреА рдЗрдирд┐рдлреЗрдВрд╕ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╕рднреА рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЧрд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



1. рдирд┐рдпрдо рдЖрдзрд╛рд░ рдХрд╛ рдЧрдарди

рдирд┐рдпрдо рдХрд╛ рдЖрдзрд╛рд░ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдЦрдВрдб рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд░ рдЧреБрдгрд╛рдВрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред



рдирд┐рдпрдо рдЖрдзрд╛рд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):



RULE_1: рдпрджрд┐ "Condition_1" "рдирд┐рд╖реНрдХрд░реНрд╖ 1 " ( рдПрдл 1 ) рдФрд░ "рдирд┐рд╖реНрдХрд░реНрд╖ 2 " ( рдПрдл 2 );

RULE_2: IF "Condition_2" рдФрд░ "Condition_3" рдХреЛ "рдирд┐рд╖реНрдХрд░реНрд╖_3" ( F 3 );

...

RULE_n: рдпрджрд┐ "Condition_k" рдХреЛ "рдирд┐рд╖реНрдХрд░реНрд╖_ (q-1)" ( F q-1 ) рдФрд░ "рдирд┐рд╖реНрдХрд░реНрд╖_ q " ( F q );



рдЬрд╣рд╛рдВ F i - рднрд╛рд░рд╛рдВрдХ рдЧреБрдгрд╛рдВрдХ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрдкрдорд╣рд╛рджреНрд╡реАрдк рдХреА рд╕рдЪреНрдЪрд╛рдИ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреА рдбрд┐рдЧреНрд░реА рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ ( i = 1 .. 1)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рднрд╛рд░ рдХрд╛рд░рдХ рдХреЛ 1 рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд░реНрддреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рднрд╛рд╖рд╛рдИ рдЪрд░ рдХреЛ рдЗрдирдкреБрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ ред



рд▓реАрдЬреЗрдВрдб:

n рдлрдЬреА рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ (numberOfRules)ред

m - рдЗрдирдкреБрдЯ рдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ (numberOfInputVariables)ред

s - рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ (numberOfOutputVariables)ред

k рдирд┐рдпрдо рдЖрдзрд╛рд░ (рдирдВрдмрд░рдСрдлрдХрдВрдбрд┐рд╢рди) рдореЗрдВ рдХреБрд▓ рдЙрдк-рдордВрдбрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред

q рдирд┐рдпрдо рдЖрдзрд╛рд░ (рд╕рдВрдЦреНрдпрд╛рдУрдХреЙрдиреНрдХреНрд▓реВрд╕рди) рдореЗрдВ рдХреБрд▓ рдЙрдк-рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред



рдиреЛрдЯ: рдЗрди рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░ рдХреЗ рдирд╛рдо рд╣реИрдВред



2. рдЗрдирдкреБрдЯ рдЪрд░ рдХрд╛ рдлрд╝рдЬрд╝реАрдХрд░рдг

рдЗрд╕ рдХрджрдо рдХреЛ рдЕрдХреНрд╕рд░ рдлрдЬрдиреЗрд╕ рд░рд┐рдбрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧрдард┐рдд рдирд┐рдпрдо рдЖрдзрд╛рд░ рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╕рд░рдгреА A = {a 1 , ..., a m } рдЗрдирдкреБрдЯ рд╣реИрдВред рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рд╕рднреА рдЗрдирдкреБрдЯ рдЪрд░ рдХреЗ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рдХрджрдо рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирд┐рдпрдо рдЖрдзрд╛рд░ рд╕реЗ рд╕рднреА рдЙрдкрдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП, рдореВрд▓реНрдп b i = ╬╝ ( a ) рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рдиреЛрдВ рдХрд╛ рд╕реЗрдЯ b i ( i = 1 .. k ) рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

private double [] fuzzification( double [] inputData) {

int i = 0;

double [] b = new double [numberOfConditions];

for (Rule rule : rules) {

for (Condition condition : rule.getConditions()) {

int j = condition.getVariable().getId();

FuzzySet term = condition.getTerm();

b[i] = term.getValue(inputData[j]);

i++;

}

}

return b;

}








рдиреЛрдЯ: рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдХрд╛ i- th рддрддреНрд╡ i- рд╡реЗрдВ рдЗрдирдкреБрдЯ рдЪрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдЪрд░ рд╕рдВрдЦреНрдпрд╛ "id" рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ)ред



3. рдкреВрд░реНрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рдПрдХрддреНрд░реАрдХрд░рдг

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдирд┐рдпрдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдордЧреНрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рддрд╛рд░реНрдХрд┐рдХ рдСрдкрд░реЗрд╢рди "рдФрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рдЙрдкрдЦрдВрдбреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЗрд╕ рдЪрд░рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдлрдЬреА рдмрдЪрд╛рд╡ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдХреА рд╕рдЪреНрдЪрд╛рдИ рдХреА рдбрд┐рдЧреНрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╢рд░реНрдд рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрд╕рдХреЗ рд╕рднреА рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рддреНрдп рдХрд╛ рдиреНрдпреВрдирддрдо рдореВрд▓реНрдп рдкрд╛рддреЗ рд╣реИрдВред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



c j = min { b i }ред



рдЬрд╣рд╛рдВ:

j = 1 .. n ;

рдореИрдВ рдЙрдк-рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдореБрдЪреНрдЪрдп рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ j- th рдЗрдирдкреБрдЯ рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

private double [] aggregation( double [] b) {

int i = 0;

int j = 0;

double [] c = new double [numberOfInputVariables];

for (Rule rule : rules) {

double truthOfConditions = 1.0;

for (Condition condition : rule.getConditions()) {

truthOfConditions = Math .min(truthOfConditions, b[i]);

i++;

}

c[j] = truthOfConditions;

j++;

}

return c;

}








4. рдЙрдкрдорд╣рд╛рджреНрд╡реАрдк рдХреА рд╕рдХреНрд░рд┐рдпрддрд╛

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рд▓реЗрдХрд░ рдЙрдкрдорд╣рд╛рджреНрд╡реАрдк рддрдХ рд╕рдВрдХреНрд░рдордг рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЙрдк-рд╕рдорд╛рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП, рд╕рддреНрдп рдХреА рдбрд┐рдЧреНрд░реА d i = c i * F i рд╣реИ , рдЬрд╣рд╛рдБ i = 1 .. q рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдлрд┐рд░, рдлрд┐рд░ рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ i- рд╡реЗрдВ рдЙрдк-рд╕рдорд╛рд╡реЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯ I i рдПрдХ рдирдИ рд╕рджрд╕реНрдпрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕рдХрд╛ рдорд╛рди рдХрдо рд╕реЗ рдХрдо d i рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдЦрдВрдб рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдореВрд▓реНрдпред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдиреНрдпреВрдирддрдо рд╕рдХреНрд░рд┐рдпрдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:



╬╝ ' i ( x ) = рдорд┐рдирдЯ { d i , ╬╝ i ( x )}ред



рдЬрд╣рд╛рдВ:

╬╝ ' i ( x ) - "рд╕рдХреНрд░рд┐рдп" рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рд░реЛрд╣;

╬╝ i ( x ) - рдЕрд╡рдзрд┐ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдп;

d i - i рдХреА рд╕рдЪреНрдЪрд╛рдИ рдХреА рдбрд┐рдЧреНрд░реА- рд╡реЗрдВ рдЙрдкрд╕рдВрдХреНрд░рдордгред



рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдЪрд░рдг рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рдпрдо рдмреЗрд╕ ( i = 1 .. q ) рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП "рд╕рдХреНрд░рд┐рдп" рдлрд╝рдЬрд╝реА рд╕реЗрдЯ рдбреА i рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

private List <ActivatedFuzzySet> activation( double [] c) {

int i = 0;

List <ActivatedFuzzySet> activatedFuzzySets = new ArrayList <ActivatedFuzzySet>();

double [] d = new double [numberOfConclusions];

for (Rule rule : rules) {

for (Conclusion conclusion : rule.getConclusions()) {

d[i] = c[i]*conclusion.getWeight();

ActivatedFuzzySet activatedFuzzySet = (ActivatedFuzzySet) conclusion.getTerm();

activatedFuzzySet.setTruthDegree(d[i]);

activatedFuzzySets.add(activatedFuzzySet);

i++;

}

}

return activatedFuzzySets;

}








private double getActivatedValue( double x) {

return Math .min(super.getValue(x), truthDegree);

}








5. рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛ рд╕рдВрдЪрдп

рдЗрд╕ рдЪрд░рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ (рдпрд╛ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: i- рд╡реЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдИ i =: рдбреА рдЬреЗ ред рдЬрд╣рд╛рдВ j рд╕рдмрдХрдиреЗрдХреНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ i -th рдЖрдЙрдЯрдкреБрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ ( i = 1 .. s ) рд╢рд╛рдорд┐рд▓ рд╣реИред рджреЛ рдлрдЬреА рд╕реЗрдЯреЛрдВ рдХрд╛ рдорд┐рд▓рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рддреАрд╕рд░рд╛ рдлрд╝рдЬрд╝реА рд╕реЗрдЯ рд╣реИ:



╬╝ ' i ( x ) = рдЕрдзрд┐рдХрддрдо {╬╝ 1 ( x ), ╬╝ 2 ( x )}, рдЬрд╣рд╛рдВ ╬╝ 1 ( x ), ╬╝ 2 ( x ) рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╕реЗрдЯреЛрдВ рдХреЗ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдп рд╣реИрдВред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

private List <UnionOfFuzzySets> accumulation( List <ActivatedFuzzySet> activatedFuzzySets) {

List <UnionOfFuzzySets> unionsOfFuzzySets =

new ArrayList <UnionOfFuzzySets>(numberOfOutputVariables);

for (Rule rule : rules) {

for (Conclusion conclusion : rule.getConclusions()) {

int id = conclusion.getVariable().getId();

unionsOfFuzzySets. get (id).addFuzzySet(activatedFuzzySets. get (id));

}

}

return unionsOfFuzzySets;

}








private double getMaxValue( double x) {

double result = 0.0;

for (FuzzySet fuzzySet : fuzzySets) {

result = Math .max(result, fuzzySet.getValue(x));

}

return result;

}








6. рдЖрдЙрдЯрдкреБрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛

рдбрд┐рдлреНрдпреВрдЬрд╝рд┐рдлрд┐рдХреЗрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдЙрдЯрдкреБрдЯ рднрд╛рд╖рд╛рдИ рдЪрд░ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рддреНрд░рд╛рддреНрдордХ рдореВрд▓реНрдп (рдХреБрд░рдХреБрд░рд╛ рдореВрд▓реНрдп) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИред I- th рдЖрдЙрдЯрдкреБрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдФрд░ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд E i ( i = 1 .. s ) рд╕реЗрдЯ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рдбреАрдлрд╝рд┐рдЬрд╝рд┐рдлрд┐рдХреЗрд╢рди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдХрд╛ рдЕрдВрддрд┐рдо рдорд╛рддреНрд░рд╛рддреНрдордХ рдорд╛рди рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╡рд┐рдзрд┐ рдХреЗ рдХреЗрдВрджреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ i- рд╡реЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ:





рдЬрд╣рд╛рдВ:

╬╝ i ( x ) рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдЬрд╝реА рд╕реЗрдЯ E i рдХрд╛ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдп рд╣реИ;

рдорд┐рди рдФрд░ рдореИрдХреНрд╕ рдлрдЬрд╝реА рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВ;

y рдореИрдВ рд╡рд┐рдХреНрд╖реЗрдкрдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:

private double [] defuzzification( List <UnionOfFuzzySets> unionsOfFuzzySets) {

double [] y = new double [numberOfOutputVariables];

for ( int i = 0; i < numberOfOutputVariables; i++) {

double i1 = integral(unionsOfFuzzySets. get (i), true );

double i2 = integral(unionsOfFuzzySets. get (i), false );

y[i] = i1 / i2;

}

return y;

}








рдирд┐рд╖реНрдХрд░реНрд╖



рдордорджрд╛рдиреА рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рдХрдИ рдЕрдиреНрдп рдлрд╝рдЬрд╝реА рдЗрдВрдлрд╝реЙрд░реНрдореЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдлрд╝рдЬрд╝реА рд▓реЙрдЬрд┐рдХ рдЯреВрд▓рдмреЙрдХреНрд╕ (рдореИрдЯрд▓реИрдм рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░), рдлрд╝рдЬрд╝реАрдЯреЗрдХ рдФрд░ рдХрдИ рдЕрдиреНрдп рдЬреИрд╕реЗ рдЕрджреНрднреБрдд рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рдЪрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣реИ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдореВрд▓реНрдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЗрд╡рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдФрд░ рд╕рдордЭ рдХреА рдПрдХ рдареЛрд╕ рдиреАрдВрд╡ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрддрдо рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред



рд╕рд╛рд╣рд┐рддреНрдп



рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рд╣рд┐рддреНрдп рдХреА рдУрд░ рдореБрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:



1. рд▓рд┐рдпреЛрдирдХреЛрд╡ рдП.рд╡реА. MATLAB рдФрд░ рдлрдЬреАрдЯреЗрдХ / рдП рд▓рд┐рдпреЛрдирдХреЛрд╡ рдореЗрдВ рдлрдЬреА рдореЙрдбрд▓рд┐рдВрдЧред - рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ: рдмреАрдПрдЪрд╡реА-рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ, 2003 ред-- 736 рдкреАред



2. рд╢рддреЛрдмрд╛ рдПрд╕.рдбреА. MATLAB / S. Shtovba рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рдЬрд╝реА рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ред - рдПрдо: рд╣реЙрдЯрд▓рд╛рдЗрди - рдЯреЗрд▓реАрдХреЙрдо, 2007. - 288 рдкреАред



All Articles