Optlibред рдЬрдВрдЧ рдореЗрдВ рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

рд╡реИрд╢реНрд╡рд┐рдХ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдорд╕реНрдпрд╛


рдЕрдиреБрдХреВрд▓рди рд╕рдорд╕реНрдпрд╛ рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред
рдХреБрдЫ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди f ( x ) рдХреЗ рд▓рд┐рдП, x рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмреАрдЪ , рдПрдХ рдорд╛рди x 'рдЬреИрд╕реЗ рдХрд┐ f (x') рдПрдХ рдиреНрдпреВрдирддрдо (рдпрд╛ рдЕрдзрд┐рдХрддрдо) рдорд╛рди рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, x рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ, рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдБ, рд╡реИрдХреНрдЯрд░ рдпрд╛ рдореИрдЯреНрд░реАрд╕ред

рдлрд╝рдВрдХреНрд╢рди f ( x ) рдХреЗ рдЪрд░рдо рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рдПрдХ рдмрд┐рдВрджреБ x рд╣реИ , рдЬрд┐рд╕ рдкрд░ рдлрд╝рдВрдХреНрд╢рди f ( x ) рдХрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред



рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЪрд░рдо рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ x 0 рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреНрдпреВрдирддрдо рдпрд╛ рдЕрдзрд┐рдХрддрдо рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдврд╛рд▓ рд╡рдВрд╢ рдПрд▓реНрдЧреЛрд░рд┐рджрдоред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдиреНрдпреВрдирддрдо (рдпрд╛ рдЕрдзрд┐рдХрддрдо) рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡реИрд╢реНрд╡рд┐рдХ рдПрдХреНрд╕рдЯреНрд░реАрдо рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд , рдПрдХреНрд╕ рдХреА рджреА рдЧрдИ рд╕реАрдорд╛ рдореЗрдВ, рдХрдИ рд╕реНрдерд╛рдиреАрдп рдПрдХреНрд╕рдЯреНрд░реИрдорд╛ рд╣реЛрддреЗ рд╣реИрдВред



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



рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз (рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред



рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛


рдПрдХ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреИрджрд╛ рд╣реБрдЖ рдФрд░ 1960 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдореЗрдВ - 1970 рдХреЗ рджрд╢рдХ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдмрдирд╛ред рдЬреЙрди рд╣реЙрд▓реИрдВрдб рдХреА рдкреБрд╕реНрддрдХ "рдкреНрд░рд╛рдХреГрддрд┐рдХ рдФрд░ рдХреГрддреНрд░рд┐рдо рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреБрдХреВрд▓рди" (1975) рдХреЗ рд╡рд┐рдореЛрдЪрди рдХреЗ рдмрд╛рдж рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рдХрд╛рд╕ рдорд┐рд▓рд╛ред



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



  • рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рджрд┐рдП рдЧрдП рдмрд┐рдВрджреБ x рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рдорд╛рдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдмреАрдЪ рдПрдХ x рдорд╛рди рд╣реИред
  • рдЧреБрдгрд╕реВрддреНрд░ - x рдХрд╛ рдорд╛рдиред
  • рдЧреБрдгрд╕реВрддреНрд░ - x рдХрд╛ рдорд╛рди рдпрджрд┐ x рдПрдХ рд╕рджрд┐рд╢ рд╣реИред
  • рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рди (рдлрд┐рдЯрдиреЗрд╕ рдлрдВрдХреНрд╢рди, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ рдлрдВрдХреНрд╢рди) рдЕрдиреБрдХреВрд▓рд┐рдд рдлрдВрдХреНрд╢рди f ( x ) рд╣реИред
  • рдЬрдирд╕рдВрдЦреНрдпрд╛ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред
  • рдкреАрдврд╝реА - рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

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

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



рдЖрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЪрд┐рддреНрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:




рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред



рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдПрдВ


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



рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ x рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рджрд┐рдП рдЧрдП рдЪрд░рдг рдХреЗ рд╕рд╛рде рдЦреЛрдЬ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдХрд┐рддрдиреЗ рд╡реНрдпрдХреНрддрд┐ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред



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



рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЬреЗрдиреЗрдЯрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкреВрд░реЗ рдХрд╛рдо рдореЗрдВ рдирд┐рд░рдВрддрд░ рдирд╣реАрдВ рд░рд╣рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЕрдХреНрд╕рд░ рдЬреИрд╕реЗ рд╣реА рдкреАрдврд╝реА рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рддреА рд╣реИ, рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде, рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдмрдврд╝рддреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдВрдЫрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд░реАрдм рд╕реНрдерд┐рдд рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ рд╕реНрдерд┐рд░ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред



рдХреНрд░реЙрд╕рдмреНрд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди


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



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



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



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



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



рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрд░реЙрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрдЧреАред



рдЪреМрд░рд╛рд╣рд╛


рдХреНрд░реЙрд╕рдмреНрд░реЗрдбрд┐рдВрдЧ рдПрдХ рдЖрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдирдП рдЧреБрдгрд╕реВрддреНрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИред рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдП рдЧреБрдгрд╕реВрддреНрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдмреЗрдЯреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдзрд┐рдХ рдмрдЪреНрдЪреЗ рдкреИрджрд╛ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдХреНрд░реЙрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЧреБрдгрд╕реВрддреНрд░ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдорд╛рдзреНрдп рдпрд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдорд╛рдзреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдпрд╛ рдЧреБрдгрд╕реВрддреНрд░ рдмрдирд╛рдПрдВред рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдмрд┐рдЯ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдХрд┐ рдмреЗрдЯреА рдЧреБрдгрд╕реВрддреНрд░ рдореЗрдВ рдПрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрд┐рдЯреНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрд┐рдЯреНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:




рдЖрдорддреМрд░ рдкрд░ рдореВрд▓ рд╡рд┐рднрд╛рдЬрди рдмрд┐рдВрджреБ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдХреНрд░реЙрд╕ рдХреЗ рд╕рд╛рде рджреЛ рдмрдЪреНрдЪреЗ рдкреИрджрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЕрдХреНрд╕рд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрддрд╛ рд╣реИред



рдпрджрд┐ рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХрд╛ рд╡рд┐рднрд╛рдЬрди рдмрд┐рдВрджреБ рдПрдХ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреНрд░реЙрд╕рд┐рдВрдЧ рдХреЛ рдПрдХрд▓-рдмрд┐рдВрджреБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдмрд╣реБ-рдмрд┐рдВрджреБ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:




рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмреЗрдЯреА рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдзрд┐рдХ рд╕рдВрдпреЛрдЬрди рд╕рдВрднрд╡ рд╣реИрдВред



рдпрджрд┐ рдЧреБрдгрд╕реВрддреНрд░ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рд╣реИрдВ, рддреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрди рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдкрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХрдИ рдХреНрд░реЙрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдмреЗрдЯреА рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдХреЗрд╡рд▓ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рди рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗред рджреЛрд╣рд░реА-рд╕рдЯреАрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдерд┐рддрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред



рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ IEEE 754 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЛ рддреАрди рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: S (рдПрдХ рдмрд┐рдЯ), M рдФрд░ N, рдЬрд┐рд╕рд╕реЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ x = (-1) ├Ч рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдПрдо ├Ч 2 рдПрдиред рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ S, M, N, рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ M рдФрд░ N рдХреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдХреНрд░реЙрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ S рдХреЛ рдЪреБрдиреЗрдВред рдорд╛рддрд╛-рдкрд┐рддрд╛, рдФрд░ рдПрдХ рдмреЗрдЯреА рдХреЛ рдЧреБрдгрд╕реВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рд╕реЗред



рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рдЧреБрдгрд╕реВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ (рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░) рдХрд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рдРрд╕реЗ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЗрдЯреА рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рднреА рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдмрд┐рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдкрд░рд┐рд╡рд░реНрддрди


рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╣реИ рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЙрди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╕реНрдерд╛рдиреАрдп рдиреНрдпреВрдирддрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЧреБрдгрд╕реВрддреНрд░ рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рдкрд╛рд░ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЕрднрд┐рд╕рд░рдг рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╕рдлрд▓ рдЧреБрдгрд╕реВрддреНрд░ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрдЧрд╛ред



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



рдПрдХ рдмрд┐рдЯ рдХрд╛ рдореНрдпреВрдЯреЗрд╢рди:




рдХрдИ рдмрд┐рдЯреНрд╕ рдХрд╛ рдореНрдпреВрдЯреЗрд╢рди:




рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рддреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред



рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡реНрдпрдХреНрддрд┐ рдЕрдзрд┐рдХ рд╕рдлрд▓ рдФрд░ рдХрдо рд╕рдлрд▓ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдСрдкрд░реЗрд╢рди рд╢реВрдиреНрдп рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдлрд▓ рдЧреБрдгрд╕реВрддреНрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЧреИрд░-рд╢реВрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдерд╛ред



рдЪрдпрди


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



рдЪрдпрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рднреА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░, рдЬрд┐рди рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЧреБрдгрд╕реВрддреНрд░ рдХрд┐рд╕реА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬ рдХреЗ рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдХреЗ рднреАрддрд░ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдВрдд рдХреА рд╕реНрдерд┐рддрд┐


рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреНрдп рдЪрд░рдгреЛрдВ рдХреА рддрд░рд╣, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рдорд╛рдкрджрдВрдб рд╣реИрдВред



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



рдПрдХ рдФрд░ рд░реЛрдХ рдорд╛рдирджрдВрдб рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╛рдзрд┐рдд рд╣реИ рдЕрдЧрд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдиреЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░рдо рдкрд╛рдпрд╛ рд╣реИ рдпрд╛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░рдо рд╕реАрдорд╛ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реИред



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



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



optlib


рдСрдкреНрдЯрд▓рд┐рдм рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп, рдХреЗрд╡рд▓ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдирдП рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдСрдкреНрдЯрд▓рд┐рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред



рдСрдкреНрдЯрд▓рд┐рдм рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред




рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ


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



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



рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред



рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ, рд╡рд╣ рдорд╛рдорд▓рд╛ рдЬрд╣рд╛рдВ рдЧреБрдгрд╕реВрддреНрд░ рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЬрдм рдлрд╝рдВрдХреНрд╢рди f ( x ) рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ x рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ ( f32 рдпрд╛ f64 ) рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИред



рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рди рдЙрджрд╛рд╣рд░рдг


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



F( boldsymbolx)=418.9829NтИТ sumi=1Nxi sin( sqrt|xi|)



рдЕрдВрддрд░рд╛рд▓ -500 рдореЗрдВ рдиреНрдпреВрдирддрдо Schweffel рдлрд╝рдВрдХреНрд╢рди <= x i <= 500 рдмрд┐рдВрджреБ x ' рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд╣рд╛рдВ рд╕рднреА x i = 420.9687 рдХреЗ рд▓рд┐рдП i = 1, 2, ..., N, рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди f ( x' ) рд╣реИ = 0ред



рдпрджрд┐ N = 2 рд╣реИ, рддреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рддреНрд░рд┐-рдЖрдпрд╛рдореА рдЫрд╡рд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:





рдпрджрд┐ рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕реНрддрд░ рд░реЗрдЦрд╛рдПрдБ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЪрд░рдо рд╕реАрдорд╛рдПрдБ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:





рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рд╕реНрдХрдлреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ / рдЬреЗрдиреЗрдЯрд┐рдХ- schwefel рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред



//!    . //! //! y = f(x),  x = (x0, x1, ..., xi,... xn). //!      x' = (420.9687, 420.9687, ...) //!      xi - [-500.0; 500.0]. //! f(x') = 0 //! //! #  //! * ` ` -   . y = f(x). //! * `` -    , x = (x0, x1, x2, ..., xn). //! * `` -   x    . //! * `` -  . //! * `` -    . use optlib::genetic; use optlib::genetic::creation; use optlib::genetic::cross; use optlib::genetic::goal; use optlib::genetic::logging; use optlib::genetic::mutation; use optlib::genetic::pairing; use optlib::genetic::pre_birth; use optlib::genetic::selection; use optlib::genetic::stopchecker; use optlib::testfunctions; use optlib::Optimizer; ///    type Gene = f32; ///   type Chromosomes = Vec<Gene>; fn main() { //   //  .  xi     [-500.0; 500.0] let minval: Gene = -500.0; let maxval: Gene = 500.0; //      let population_size = 500; //   xi  . //  15-   let chromo_count = 15; let intervals = vec![(minval, maxval); chromo_count]; //      ( ) //      optlib::testfunctions let goal = goal::GoalFromFunction::new(testfunctions::schwefel); //       . // RandomCreator       . let creator = creation::vec_float::RandomCreator::new(population_size, intervals.clone()); //        //     . let partners_count = 2; let families_count = population_size / 2; let rounds_count = 5; let pairing = pairing::Tournament::new(partners_count, families_count, rounds_count); //   //      , //   -     let single_cross = cross::FloatCrossExp::new(); let cross = cross::VecCrossAllGenes::new(Box::new(single_cross)); //    //    (     ). let mutation_probability = 15.0; let mutation_gene_count = 3; let single_mutation = mutation::BitwiseMutation::new(mutation_gene_count); let mutation = mutation::VecMutation::new(mutation_probability, Box::new(single_mutation)); // .       , //     . let pre_births: Vec<Box<genetic::PreBirth<Chromosomes>>> = vec![Box::new( pre_birth::vec_float::CheckChromoInterval::new(intervals.clone()), )]; //    //   ,       1e-4 //   3000  (). let stop_checker = stopchecker::CompositeAny::new(vec![ Box::new(stopchecker::Threshold::new(1e-4)), Box::new(stopchecker::MaxIterations::new(3000)), ]); //    .  -   . //        NaN  Inf. //    ,     . let selections: Vec<Box<dyn genetic::Selection<Chromosomes>>> = vec![ Box::new(selection::KillFitnessNaN::new()), Box::new(selection::LimitPopulation::new(population_size)), ]; //     . //       , //       . let loggers: Vec<Box<genetic::Logger<Chromosomes>>> = vec![ Box::new(logging::StdoutResultOnlyLogger::new(15)), Box::new(logging::TimeStdoutLogger::new()), ]; //     let mut optimizer = genetic::GeneticOptimizer::new( Box::new(goal), Box::new(stop_checker), Box::new(creator), Box::new(pairing), Box::new(cross), Box::new(mutation), selections, pre_births, loggers, ); //    optimizer.find_min(); } 

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕реНрд░реЛрдд рд░реВрдЯ рд╕реЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ



 cargo run --bin genetic-schwefel --release 

рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



 Solution: 420.962615966796875 420.940093994140625 420.995391845703125 420.968505859375000 420.950866699218750 421.003784179687500 421.001281738281250 421.300537109375000 421.001708984375000 421.012603759765625 420.880493164062500 420.925079345703125 420.967559814453125 420.999237060546875 421.011505126953125 Goal: 0.015625000000000 Iterations count: 3000 Time elapsed: 2617 ms 

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



GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ рдХреА find_min () рд╡рд┐рдзрд┐ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИред



рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд╕реНрддреБрдПрдБ


рдСрдкреНрдЯрд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ рдХреЗ рдореВрд▓ рд▓рдХреНрд╖рдг


рдСрдкреНрдЯрд▓рд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛ рд╕рдХреЗ, рдЗрд╕рд▓рд┐рдП рдСрдкреНрдЯрд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдПрдХрд▓ рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ - find_min (), рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЪрд▓рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЯрд╛рдЗрдк T рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬреЛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬ рд╕реНрдерд╛рди рдХрд╛ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рд╡реАрдИрд╕реА <рдЬреАрди> рд╣реИ (рдЬрд╣рд╛рдВ рдЬреАрди рдПрдл 32 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ)ред рдпрд╣реА рд╣реИ, рдпрд╣ рд╡рд╣ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдСрдкреНрдЯрд┐рдм рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub trait Optimizer<T> { fn find_min(&mut self) -> Option<(&T, f64)>; } 

Optim_ trait's find_min () рдкрджреНрдзрддрд┐ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП <(& T, f64)>, рдЬрд╣рд╛рдБ & T рдореЗрдВ рджрд┐рдП рдЧрдП рдЯреБрдкрд▓ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ f64 рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рд╣реИред рдпрджрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛, рддреЛ find_min () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЛрдИ рднреА рдирд╣реАрдВ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред



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



рдПрдХ рдПрдЬреЗрдВрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдСрдкреНрдЯрд▓рд┐рдм - рдПрдЬреЗрдВрдЯ рд╕реЗ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред



рдПрд▓рдЧреЛрд░рд┐рджрдорд╡рд┐рдердЧреЗрдВрдЯ рдФрд░ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рдХреНрд╖рдг рдСрдкреНрдЯрд┐рд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:



 pub trait AlgorithmWithAgents<T> { type Agent: Agent<T>; fn get_agents(&self) -> Vec<&Self::Agent>; } pub trait Agent<T> { fn get_parameter(&self) -> &T; fn get_goal(&self) -> f64; } 

рджреЛрдиреЛрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдорд╡рд┐рдердЧреЗрдВрдЯ рдФрд░ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рдЯреА рдХрд╛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЕрд░реНрде рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред



GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ - рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдорд╡рд┐рдерд╛рдЧреИрдЧреЗрдВрдЯреНрд╕ред



рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдСрдкреНрдЯрд┐рд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рд╕рд╣рд╛рдпрдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЗрди рд╕рдмрдореЙрдбреНрдпреВрд▓реНрд╕ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдЕрдВрджрд░ рднреА рдПрдХ vec_float рд╕рдмрдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ (f32 рдпрд╛ f64) рдХреЗ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред



GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 impl<T: Clone> GeneticOptimizer<T> { pub fn new( goal: Box<dyn Goal<T>>, stop_checker: Box<dyn StopChecker<T>>, creator: Box<dyn Creator<T>>, pairing: Box<dyn Pairing<T>>, cross: Box<dyn Cross<T>>, mutation: Box<dyn Mutation<T>>, selections: Vec<Box<dyn Selection<T>>>, pre_births: Vec<Box<dyn PreBirth<T>>>, loggers: Vec<Box<dyn Logger<T>>>, ) -> GeneticOptimizer<T> { ... } ... } 

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



  • рд▓рдХреНрд╖реНрдп: рдмреЙрдХреНрд╕ <dyn рд▓рдХреНрд╖реНрдп <рдЯреА >> - рдЙрджреНрджреЗрд╢реНрдп рд╕рдорд╛рд░реЛрд╣;
  • stop_checker: рдмреЙрдХреНрд╕ <dyn stopChecker <T >> - рд╕реНрдЯреЙрдк рдорд╛рдирджрдВрдб;
  • рдирд┐рд░реНрдорд╛рддрд╛: рдмреЙрдХреНрд╕ <dyn рдирд┐рд░реНрдорд╛рддрд╛ <рдЯреА >> - рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдПрдВ;
  • рдмрд╛рдБрдзрдирд╛: рдмреЙрдХреНрд╕ <рдбрд╛рдпрди рдЬреЛрдбрд╝реА <рдЯреА >> - рдХреНрд░реЙрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо;
  • рдХреНрд░реЙрд╕: рдмреЙрдХреНрд╕ <рдбрд╛рдпрди рдХреНрд░реЙрд╕ <рдЯреА >> - рдХреНрд░реЙрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо;
  • рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди: рдмреЙрдХреНрд╕ <dyn рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди <рдЯреА >> - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо;
  • рдЪрдпрди: рд╡реАрдИрд╕реА <рдмреЙрдХреНрд╕ <рдбрд╛рдпрди рдЪрдпрди <рдЯреА> >> - рдЪрдпрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░;
  • pre_births: Vec <Box <dyn PreBirth <T> >> - рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕рдлрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░;
  • рд▓рдХрдбрд╝рд╣рд╛рд░реЗ: Vec <Box <dyn Logger <T> >> - рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЬреЛ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓реЙрдЧ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ find_min () рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ next_iterations () рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ find_min () рд╡рд┐рдзрд┐ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЧрдгрдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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



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



рд▓рдХреНрд╖реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ - рдЙрджреНрджреЗрд╢реНрдп рд╕рдорд╛рд░реЛрд╣


рд▓рдХреНрд╖реНрдп рд▓рдХреНрд╖рдг рдХреЛ рдСрдкреНрдЯрд┐рдм рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдореЙрдбреНрдпреВрд▓ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:



 pub trait Goal<T> { fn get(&self, chromosomes: &T) -> f64; } 

рджрд┐рдП рдЧрдП рдЧреБрдгрд╕реВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред



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



рдирд┐рд░реНрдорд╛рддрд╛ рдЧреБрдг - рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдирд┐рд░реНрдорд╛рддрд╛ рдЧреБрдг рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрдмрд╛рджреА рдХреЗ "рдирд┐рд░реНрдорд╛рддрд╛" рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓рдХреНрд╖рдг рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub trait Creator<T: Clone> { fn create(&mut self) -> Vec<T>; } 

рдмрдирд╛рдиреЗ () рд╡рд┐рдзрд┐ рдХреЛ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЙрд╕реА рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред



рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдХрдИ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХрд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, Optlib :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ :: рдирд┐рд░реНрдорд╛рддрд╛ :: vec_float рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рддрд░рдг рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ RandomCreator <G> рд╕рдВрд░рдЪрдирд╛ рд╣реИред



рдЗрд╕рдХреЗ рдмрд╛рдж, рдЯрд╛рдЗрдк <G> рдХреНрд░реЛрдореЛрд╕реЛрдо рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЧреБрдгрд╕реВрддреНрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рдХрднреА-рдХрднреА "рдЬреАрди" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ "рдЧреБрдгрд╕реВрддреНрд░" рд╢рдмреНрдж рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЯрд╛рдЗрдк <G> рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ F32 рдпрд╛ f64 рдпрджрд┐ рдЧреБрдгрд╕реВрддреНрд░ Vec <f32> рдпрд╛ Vec <f64> рдкреНрд░рдХрд╛рд░ рд╣реИрдВред



RandomCreator <G> рдХреА рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ:



 pub struct RandomCreator<G: Clone + NumCast + PartialOrd> { ... } 

рдпрд╣рд╛рдБ NumCast num crate рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд░ рдЖрдкрдХреЛ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



рд░реИрдВрдбрдо рдХреНрд░рд┐рдПрдЯрд░ <рдЬреА> рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирдП () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub fn new(population_size: usize, intervals: Vec<(G, G)>) -> RandomCreator<G> { ... } 

рдпрд╣рд╛рдБ рдЬрдирд╕рдВрдЦреНрдпрд╛_рд╕рд╛рдЗрдЬ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЖрдХрд╛рд░ (рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рд╣реИ, рдФрд░ рдЕрдВрддрд░рд╛рд▓ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдЯреНрдпреВрдкрд▓реНрд╕ рдХрд╛ рд╕рджрд┐рд╢ рд╣реИ - рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЧреБрдгрд╕реВрддреНрд░ (рдЬреАрди) рдХрд╛ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп, рдФрд░ рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдХрд┐рддрдиреЗ рдЧреБрдгрд╕реВрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ред



рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, Schweffel рдлрд╝рдВрдХреНрд╢рди рдХреЛ 15 рдЪрд░ рдкреНрд░рдХрд╛рд░ f32 рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ рдХреА рд╕реАрдорд╛ [-500] рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП; 500]ред рдпрд╣реА рд╣реИ, рдЬрдирд╕рдВрдЦреНрдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░рд╛рд▓ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ 15 рдЯреНрдпреВрдкрд▓реНрд╕ (-500.0f32, 500.0f32) рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред



рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЬреЛрдбрд╝реА - рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреАрджрд╛рд░реЛрдВ рдХрд╛ рдЪрдпрди


рдкреЗрдпрд░рд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдмреНрд░рд┐рдб рд╣реЛрдВрдЧреЗред рдЗрд╕ рд▓рдХреНрд╖рдг рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub trait Pairing<T: Clone> { fn get_pairs(&mut self, population: &Population<T>) -> Vec<Vec<usize>>; } 

Get_pairs () рд╡рд┐рдзрд┐ рдЬрдирд╕рдВрдЦреНрдпрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рд▓реЗрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рднреА рд╡реНрдпрдХреНрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдЖрдмрд╛рджреА рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдпреБрдЧреНрдорди get_pairs () рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╡реИрдХреНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реЛрдВрдЧреЗред рдХреНрд░реЙрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо (рдЬреЛ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЗрдВрдбреЗрдХреНрд╕ 0 рдФрд░ 10, 5 рдФрд░ 2, 6 рдФрд░ 3 рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ get_pairs () рд╡рд┐рдзрд┐ рдХреЛ рд╡реЗрдХреНрдЯрд░ vec рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП! [Vec! [0, 10], vec! [5, 2], vec! рем, рей]]ред



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



рд░реИрдВрдбрдордкреЗрдпрд░рд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП, рдкреЗрдпрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рд░реНрдЯрдирд░реНрд╕ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдХреНрд░реЙрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред



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



рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub fn new(partners_count: usize, families_count: usize, rounds_count: usize) -> Tournament { ... } 

рдпрд╣рд╛рдВ:



  • Partners_count - рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛;
  • family_count - "рдкрд░рд┐рд╡рд╛рд░реЛрдВ" рдХреА рд╕рдВрдЦреНрдпрд╛, рдЕрд░реНрдерд╛рдд рдЙрди рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реЗрдЯ рдЬреЛ рд╕рдВрддрд╛рди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ;
  • рд░рд╛рдЙрдВрдб_рдХрд╛рдЙрдВрдЯ - рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдореЗрдВ рд░рд╛рдЙрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдПрдХ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдореМрдХрд╛ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЙрджреНрджреЗрд╢реНрдп рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреЛ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬреАрддрдиреЗ рдХрд╛ рдореМрдХрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ, рдФрд░ рдЙрджреНрджреЗрд╢реНрдп рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 50% рдХреЗ рдХрд░реАрдм рд╣реЛрдЧреАред

рдЯрд╛рдЗрдк рдХреНрд░реЙрд╕ - рдХреНрд░реЙрд╕рд┐рдВрдЧ


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



 pub trait Cross<T: Clone> { fn cross(&mut self, parents: &[&T]) -> Vec<T>; } 

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



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



  • VecCrossAllGenes - рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдХреНрд░реЛрдореЛрд╕реЛрдо рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рд╣реИ, рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХреНрд░реЛрдореЛрд╕реЛрдо рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИред VecCrossAllGenes рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреНрд░реЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг VecCrossAllGenes рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЧреБрдгрд╕реВрддреНрд░ Vec <332> рдкреНрд░рдХрд╛рд░ рд╣реИред
  • CrossMean рдПрдХ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╛рд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдмреЗрдЯреА рдЧреБрдгрд╕реВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдорд╛рдзреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
  • рдлреНрд▓реЛрдЯрдХреНрд░реЙрд╕рдЬреАрдореЗрдЯреНрд░рд┐рдХ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд╛рд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ рдмреЗрдЯреА рдЧреБрдгрд╕реВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рдЬреНрдпрд╛рдорд┐рддреАрдп рдорд╛рдзреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
  • рдХреНрд░реЙрд╕рдмреАрдЯрд╡рд╛рдЗрдЬ - рджреЛ рдЕрдВрдХреЛрдВ рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕рд┐рдВрдЧрд▓-рдкреЙрдЗрдВрдЯ рдХреНрд░реЙрд╕рд┐рдВрдЧред
  • рдлреНрд▓реЛрдЯрдХреНрд░реЙрд╕рдПрдХреНрд╕рдкреАрдкреА - рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХрд╛ рдПрдХ рдмрд┐рдЯ рдХреНрд░реЙрд╕рд┐рдВрдЧред рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдордВрдЯрд┐рд╕рд╛ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдкреНрд░рджрд░реНрд╢рдХ рдкрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдмрдЪреНрдЪреЗ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИред

рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ :: рдХреНрд░реЙрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдХреНрд░реЙрд╕рд┐рдВрдЧ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛрддреЗ рд╣реИрдВ - рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯред

рдореНрдпреВрдЯреЗрд╢рди рдЯрд╛рдЗрдк рдХрд░реЗрдВ - рдореНрдпреВрдЯреЗрд╢рди


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



 pub trait Mutation<T: Clone> { fn mutation(&mut self, chromosomes: &T) -> T; } 

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



рдСрдкреНрдЯрд┐рдм рдореЗрдВ рдХреБрдЫ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИрдВ : рдЖрдиреБрд╡рдВрд╢рд┐рдХ :: рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдореЙрдбреНрдпреВрд▓ред



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ VecMutation рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬреЛ VecCrossAllGenes рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рдпрджрд┐ рдЧреБрдгрд╕реВрддреНрд░ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд╣реИ, VecMutation Mutation рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдкреНрд░рд╛рдпрд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЬреАрди (рдЧреБрдгрд╕реВрддреНрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рддрддреНрд╡) рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИред



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



рдкреНрд░реАрдмрд░реНрде рд▓рдХреНрд╖рдг - рдкреВрд░реНрд╡ рдЪрдпрди


рдХреНрд░реЙрд╕рд┐рдВрдЧ рдФрд░ рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рдмрд╛рдж, рдЪрдпрди рдЪрд░рдг рдЖрдорддреМрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрд╕рдлрд▓ рд╡реНрдпрдХреНрддрд┐ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдСрдкреНрдЯрд▓рд┐рдм рдореЗрдВ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЪрдпрди рдХрджрдо рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдФрд░ рдХрджрдо рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЕрд╕рдлрд▓ рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХрджрдо рдЗрд╕рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдЕрдХреНрд╕рд░ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдХреНрд░реЛрдореЛрд╕реЛрдо рдЬреНрдЮрд╛рдд рдЦреЛрдЬ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЧреБрдгрд╕реВрддреНрд░ рдЬреЛ рдЦрдВрдб рдкрд░ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ [-500; 500]ред



рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреВрд░реНрд╡ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PreBirth рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 pub trait PreBirth<T: Clone> { fn pre_birth(&mut self, population: &Population<T>, new_chromosomes: &mut Vec<T>); } 

PreBirth рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреНрд░реАрдмрд░реНрде () рд╡рд┐рдзрд┐ рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдгрд┐рдд рдЬрдирд╕рдВрдЦреНрдпрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реИ, рд╕рд╛рде рд╣реА new_chromosomes рдЧреБрдгрд╕реВрддреНрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд╕реНрдкрд░ рд╕рдВрджрд░реНрдн рд╣реИред рдпрд╣ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрджрдо рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИред рдкреНрд░реА_рдмрд░реНрде () рдкрджреНрдзрддрд┐ рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЙрди рдЧреБрдгрд╕реВрддреНрд░реЛрдВ рдХреЛ рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВред



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



CheckChromoInterval рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:



 pub fn new(intervals: Vec<(G, G)>) -> CheckChromoInterval<G> { ... } 

рдпрд╣рд╛рдВ, рдирд┐рд░реНрдорд╛рддрд╛ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЯреБрдкрд▓реНрд╕ рдХрд╛ рдПрдХ рд╡реЗрдХреНрдЯрд░ рд▓реЗрддрд╛ рд╣реИ - рдЧреБрдгрд╕реВрддреНрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдпред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдВрддрд░рд╛рд▓ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЧреБрдгрд╕реВрддреНрд░ рд╡реЗрдХреНрдЯрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 15 рдЯреБрдкрд▓реНрд╕ (-500.0f32, 500.0f32) рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдЪрдпрди рдЪрдпрди - Selection


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



 pub trait Selection<T: Clone> { fn kill(&mut self, population: &mut Population<T>); } 

рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдЪрдпрди рдЧреБрдг рдХреЛ рдорд╛рд░ () рд╡рд┐рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рдЖрдмрд╛рджреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд░рдЪрдирд╛ (рд╡реНрдпрдХреНрддрд┐) рдХреА рд╣рддреНрдпрд╛ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



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



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



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



  • KillFitnessNaN - рдЙрди рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди NaN рдпрд╛ Inf рд╣реЛрддрд╛ рд╣реИред
  • LimitPopulation - рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдмрд╛рджреА рдХрд╛ рдЖрдХрд╛рд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛред
  • рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ :: рдЪрдпрди :: vec_float :: CheckChromoInterval - рдпрджрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдХрд╛рд░реНрдп рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рддреЛ рдпрд╣ рдЙрди рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЧреБрдгрд╕реВрддреНрд░ рдорд╛рди рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдСрдкреНрдЯрд┐рдХрд▓реА :: рдЖрдиреБрд╡рдВрд╢рд┐рдХ :: pre_birth :: vec_floatCheckChromoInterval рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЗ рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддреА рд╣реИред

StopChecker рд╡рд┐рд╢реЗрд╖рддрд╛ - рдорд╛рдирджрдВрдб рд░реЛрдХреЗрдВ


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



 pub trait StopChecker<T: Clone> { fn can_stop(&mut self, population: &Population<T>) -> bool; } 

рдпрджрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдпрд╣рд╛рдВ can_stop () рд╡рд┐рдзрд┐ рд╕рд╣реА рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╡рд┐рдзрд┐ рдЭреВрдареА рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдПред



рдСрдкреНрдЯрд▓рд┐рдм :: рдЖрдиреБрд╡рд╛рдВрд╢рд┐рдХ :: рд╕реНрдЯреЙрдкрдХреИрдЪрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрдИ рд╕рдВрд░рдЪрдирд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рд░реЛрдХ рдорд╛рдкрджрдВрдб рдФрд░ рдЕрдиреНрдп рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдВрд░рдЪрдирд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ:



  • MaxIterations - рдкреАрдврд╝реА рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирджрдВрдб рдХреЛ рддреЛрдбрд╝реЗрдВ ред рдЖрдиреБрд╡рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджрд┐рдП рдЧрдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ (рдкреАрдврд╝рд┐рдпреЛрдВ) рдХреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
  • GoalNotChange - рдПрдХ рд╡рд┐рд░рд╛рдо рдорд╛рдирджрдВрдб рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рджреА рдЧрдИ рдХрдИ рдкреАрдврд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдлрд▓ рд╡реНрдпрдХреНрддрд┐ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
  • рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб - рдПрдХ рд╕реНрдЯреЙрдкрд┐рдВрдЧ рдорд╛рдирджрдВрдб рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдиреБрд╡рд╛рдВрд╢рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдкрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдереНрд░реЗрд╢реЛрд▓реНрдб рдорд╛рди рд╕реЗ рдХрдо рд╣реИред
  • CompositeAll тАФ , ( - StopChecker). , - , .
  • CompositeAny тАФ , ( - StopChecker). , - , .

Logger тАФ


Logger , , , . Logger :



 pub trait Logger<T: Clone> { ///       fn start(&mut self, _population: &Population<T>) {} ///     , ///           fn resume(&mut self, _population: &Population<T>) {} ///         /// (    ) fn next_iteration(&mut self, _population: &Population<T>) {} ///      fn finish(&mut self, _population: &Population<T>) {} } 

optlib::genetic::logging , Logger:




рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ GeneticOptimizer рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд▓реЙрдЧрд░ рд▓рдХреНрд╖рдг -objects рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп


Schweffel рдлрд╝рдВрдХреНрд╢рди


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



рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╢реНрд╡реЗрдлреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:



F(x)=418.9829NтИТтИСi=1NxisinтБб(|xi|)



x' = (420.9687, 420.9687, ...). .



optlib::testfunctions schwefel . N .




, , , , .



:



F(x)=тИСi=1N(xiтИТn)2



x' = (1.0, 2.0,тАж N). .



optlib::testfunctions paraboloid .



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


optlib , . ( optlib::genetic ), , , , .



optlib::genetic. . , , , , .



, . , ( , ..)



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреБрдХреВрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирдП рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХрд╛рд░реНрдпреЛрдВ (рд╢реНрд╡реЗрдлреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред



рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореБрдЭреЗ рдСрдкреНрдЯрд▓рд┐рдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЬреБрдбрд╝реЗ рд▓рд┐рдВрдХ рдпрд╛рдж рд╣реИрдВ:




рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдкрд░рд┐рд╡рд░реНрдзрди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред

Source: https://habr.com/ru/post/hi448870/


All Articles