{"id":178453,"date":"2013-05-01T16:32:02","date_gmt":"2013-05-01T12:32:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=178453"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=178453","title":{"rendered":"<span class=\"post_title\">\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0424\u0438\u043b\u044c\u0442\u0440\u0430 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 (Federated Kalman Filter). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u00ab\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u041a\u00bb, \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0438 \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0435\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c TPL (Task Parallel Library), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u041d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b\u0438 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 (\u0424\u041a), \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043e\u043d \u043d\u0443\u0436\u0435\u043d \u0438 \u043a\u0430\u043a \u043e\u043d \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f (\u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e). \u041d\u0438\u0436\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0441\u0442\u0430\u0442\u0435\u0439.<br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/166693\/\">\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/120133\/\">\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u2014 !c\u043b\u043e\u0436\u043d\u043e?<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/140274\/\">\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u2014 \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/118192\/\">\u041d\u0430 \u043f\u043e\u0440\u043e\u0433\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438: \u043a \u0447\u0435\u043c\u0443 \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c (\u0447\u0430\u0441\u0442\u044c 2 \u0438\u0437 3)<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/114513\/\">\u041d\u0435\u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0411\u0418\u041d\u0421 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u0411\u041f\u041b\u0410<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/135794\/\">\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430: \u043e \u0434\u0438\u0444\u0444\u0443\u0440\u0430\u0445 \u00ab\u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445\u00bb<\/a><br \/>  \u0422\u0430\u043a\u0436\u0435, \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0421\u044e\u0434\u0430 \u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u044e \u043e\u0442\u0436\u0438\u0433\u0430, \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0441\u0442\u0430\u0442\u0435\u0439 \u043d\u0438\u0436\u0435.<br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/112189\/\">\u041c\u0435\u0442\u043e\u0434 \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u0438 \u043e\u0442\u0436\u0438\u0433\u0430<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/86777\/\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c?<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/138091\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u041e\u0442 \u0442\u0435\u043e\u0440\u0438\u0438 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/66121\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/128704\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. \u041f\u0440\u043e\u0441\u0442\u043e \u043e \u0441\u043b\u043e\u0436\u043d\u043e\u043c<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/111736\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/111811\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u043e\u0442\u0430 Robocode<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/111417\/\">\u0413\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0432 MATLAB<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/178309\/\">\u041f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043a\u043e\u0441\u044f\u043a\u0430 \u0440\u044b\u0431<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/110419\/\">\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/84015\/\">\u041e\u0431\u0437\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/111075\/\">\u0422\u0410\u0423-\u0414\u0430\u0440\u0432\u0438\u043d\u0438\u0437\u043c<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/104055\/\">\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u043e\u044f \u043f\u0447\u0451\u043b<\/a><br \/>  \u2022 <a href=\"http:\/\/habrahabr.ru\/post\/104208\/\">\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0440\u043e\u044f \u043f\u0447\u0451\u043b<\/a><br \/>  \u0412 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 (<a href=\"http:\/\/habrahabr.ru\/post\/111078\/\">\u0422\u0410\u0423-\u0414\u0430\u0440\u0432\u0438\u043d\u0438\u0437\u043c: \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 Ruby<\/a>) \u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 (\u0413\u0410) \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0413\u0410 \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u2013 \u0441\u0438\u043d\u0442\u0435\u0437\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0424\u0438\u043b\u044c\u0442\u0440\u0430 \u041a\u0430\u043b\u043c\u0430\u043d\u0430. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f \u00ab\u043d\u0430\u0442\u0440\u0430\u0432\u0438\u043b\u00bb \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438 \u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 (\u043e\u043d\u0430 \u0436\u0435 Transition Matrix) \u0424\u041a. \u0422\u0430\u043a\u0436\u0435 \u0413\u0410 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 \u0432 \u0424\u041a, \u043d\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c. \u0428\u0443\u043c\u044b \u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0441\u0430\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u043c\u043d\u0435 \u0431\u044b\u043b\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0448\u0443\u043c\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430 \u0442\u043e\u0447\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0424\u041a \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435.<br \/>  \u041a\u0430\u043a \u0431\u044b \u0442\u043e \u043d\u0438 \u0431\u044b\u043b\u043e, \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u0442\u0443\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u0430\u0442\u0440\u0438\u0446 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0433\u0435\u043d\u043e\u0432 \u043e\u0441\u043e\u0431\u0438, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430 \u0432\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u0424\u041a:<br \/>  1. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0424\u041a<br \/>  2. \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446<br \/>  \u0412\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u0430\u043f, \u043a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043f\u043e\u043a\u0430. \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0435\u0433\u043e \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u0438\u043c\u0435\u0435\u0442\u0441\u044f.<\/p>\n<h4>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>  \u0418\u0442\u0430\u043a, \u0437\u0430\u0434\u0430\u0447\u0430. \u041f\u0443\u0441\u0442\u044c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u043d\u0435\u043a\u0443\u044e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 (\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432). \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043d\u0435\u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0411\u0418\u041d\u0421, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u0432 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 (<a href=\"http:\/\/habrahabr.ru\/post\/114513\/\">\u041d\u0435\u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0411\u0418\u041d\u0421 \u0434\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u0411\u041f\u041b\u0410<\/a>). \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0438 \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u043d \u0432\u044b\u0434\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435. \u0412\u0441\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0432\u043e\u0441\u0435\u043c\u044c (\u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043e\u0441\u0435\u0439 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435), \u0430 \u0438\u0441\u043a\u043e\u043c\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0442\u0440\u0438 (\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430).<br \/>  \u0427\u0442\u043e \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430\u0445? \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043b\u0438\u0448\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0422.\u0435. \u0434\u043b\u044f \u043d\u0430\u0441 \u043a\u0442\u043e-\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043b \u0431\u043b\u043e\u043a \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432 \u0433\u0434\u0435-\u0442\u043e \u0432 \u043f\u043e\u0434\u0432\u0430\u043b\u0435 \u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435, \u0441\u043a\u0430\u0436\u0435\u043c, \u0441\u0443\u0442\u043e\u043a \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u0438 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u043f\u0443\u0441\u0442\u044c \u043d\u0430\u043c \u0434\u0430\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435.<br \/>  \u0427\u0442\u043e \u043e\u0442 \u043d\u0430\u0441 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f? \u0421\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u00ab\u0424\u0438\u043b\u044c\u0442\u0440\u0430 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0422\u0438\u043f\u0430\u00bb (\u0424\u041a\u0422), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0432\u0430\u043b \u0431\u044b \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u041f\u043e\u0434 \u043e\u043f\u0442\u0438\u043c\u0443\u043c\u043e\u043c \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0445 \u043c\u0430\u0442\u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f (\u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u00ab\u043d\u0443\u043b\u044f\u00bb \u043e\u0448\u0438\u0431\u043e\u043a).  <\/p>\n<blockquote><p><i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u00ab\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0422\u0438\u043f\u0430\u00bb, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0424\u041a \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u0435\u0433\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u00ab\u041d\u0430\u0431\u043b\u044e\u0434\u0430\u044e\u0449\u0438\u043c \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u041b\u044c\u044e\u0435\u043d\u0431\u0435\u0440\u0433\u0435\u0440\u0430\u00bb, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u043c\u0441\u044f \u043a \u0433\u0440\u0443\u043f\u043f\u0435 \u0424\u041a\u0422.<\/i><\/p><\/blockquote>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 (\u0441\u043c. \u00ab\u041e\u0431\u044a\u0435\u043a\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438\u00bb \u0432 \u0441\u0442. <a href=\"http:\/\/habrahabr.ru\/post\/111075\/\">\u0422\u0410\u0423-\u0414\u0430\u0440\u0432\u0438\u043d\u0438\u0437\u043c<\/a>):<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/008\/7d7\/031\/0087d70310f4cc684137eceb7ffdd392.png\"\/><br \/>  \u041f\u043e \u044d\u0442\u0438\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u0441\u043c. \u00ab\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c\u00bb \u0432 \u0441\u0442. <a href=\"http:\/\/habrahabr.ru\/post\/120133\/\">\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u2014 !c\u043b\u043e\u0436\u043d\u043e?<\/a>):<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/71c\/279\/3ae\/71c2793ae54c965cf81bfabfc19a418f.png\"\/><\/p>\n<p>  \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u00ab\u0447\u0430\u0441\u0442\u043d\u044b\u0439\u00bb \u0444\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u0421\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0442\u0430\u043a\u0438\u0445 \u00ab\u0447\u0430\u0441\u0442\u043d\u044b\u0445\u00bb \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0438 \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u041a\u0422.<br \/>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u0441\u043e\u0431\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043d\u0438\u044f:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/45f\/a05\/f1e\/45fa05f1e5ea3458be500ecb2453fab1.png\"\/><br \/>  \u0437\u0434\u0435\u0441\u044c n \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0448\u0430\u0433\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432 \u0432 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u0445).<\/p>\n<h4>\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u0440\u043e\u0442\u0438\u0432 \u041e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e<\/h4>\n<p>  \u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0424\u041a (\u041e\u0424\u041a) \u044f \u0443\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b (<a href=\"http:\/\/habrahabr.ru\/post\/120133\/\">\u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u2014 !c\u043b\u043e\u0436\u043d\u043e?<\/a>). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443. \u0421\u0443\u0442\u044c \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u044b \u043f\u043e \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f\u043c \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043b\u043e\u0447\u043d\u043e-\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u041e\u0424\u041a, \u0441\u0442\u044b\u043a\u0443\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u043e \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438. \u0422.\u0435. \u0442\u0430\u043a\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/54f\/a69\/afb\/54fa69afbcb3cc64c6d769f77b726688.png\"\/><br \/>  \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u043c \u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 (\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b)<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/b2e\/6b3\/2b1\/b2e6b32b10dfb11caf93c644e640bdc2.png\"\/><br \/>  \u0433\u0434\u0435 \u0432\u0442\u043e\u0440\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d \u043d\u043e\u043c\u0435\u0440 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 (\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430).<br \/>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2013 \u044d\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0424\u041a. \u041e\u043d, \u0433\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043c\u0430\u044f\u0442\u043d\u0438\u043a\u043e\u0432 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432 (\u0432 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0437\u0430\u0434\u0430\u0447\u0438) \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u0445 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f. \u041d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u043a \u0431\u043b\u043e\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u044b \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0424\u041a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0424\u0438\u043b\u044c\u0442\u0440\u043e\u043c \u041a\u0430\u043b\u043c\u0430\u043d\u0430 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/f35\/657\/a1a\/f35657a1aceb1f2f86e248ec2bb1af6f.png\"\/><br \/>  \u0433\u0434\u0435  <\/p>\n<table>\n<tr>\n<td><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/1a7\/5b2\/267\/1a75b2267f0193d6d248f91faf956c56.png\"\/><\/td>\n<td>\u2013 \u0431\u043b\u043e\u0447\u043d\u043e-\u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u0437 \u043c\u0430\u0442\u0440\u0438\u0446 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/50e\/e93\/207\/50ee932072beb4d94380d2cbd2d8626e.png\"\/><\/td>\n<td> \u2014 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0432\u0441\u0435\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0431\u043b\u043e\u043a\u0435<\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a-\u0442\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u043e\u0441\u044c\u043c\u0438 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0441 \u0442\u0440\u0435\u043c\u044f \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/5c0\/0ff\/3a7\/5c00ff3a782988210d502d9a3f809649.png\"\/><br \/>  \u0433\u0434\u0435  <\/p>\n<table>\n<tr>\n<td><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/6d1\/f6b\/fdb\/6d1f6bfdbab2c0f9d881998f102141e4.png\"\/><\/td>\n<td>\u2013 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u044b \u043e\u0441\u0435\u0439 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u043a\u0441\u0435\u043b\u0435\u0440\u043e\u043c\u0435\u0442\u0440\u043e\u0432<\/td>\n<\/tr>\n<tr>\n<td><img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/823\/14a\/35e\/82314a35ed08f77f1c06142fc855d960.png\"\/><\/td>\n<td> \u2014 \u0438\u0441\u043a\u043e\u043c\u044b\u0435 \u043d\u0430\u043c\u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430<\/td>\n<\/tr>\n<\/table>\n<p>  \u0418 \u0442\u0443\u0442 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e\u2026<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/b7b\/e6a\/46c\/b7be6a46cbb89c93145f8a7632ed805e.jpg\"\/><br \/>  \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043b\u0438\u0448\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e-\u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u0433\u0430\u0443\u0441\u0441\u043e\u0432\u0441\u043a\u043e-\u043c\u0430\u0440\u043a\u043e\u0432\u0441\u043a\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/d71\/7e2\/9c5\/d717e29c51a8b491b31e1317923bc231.png\"\/><br \/>  \u0433\u0434\u0435 N \u2013 \u044d\u0442\u043e \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 (\u0441\u043c. \u0432\u044b\u0448\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b n11,n12, &#8230;, n83);<br \/>  C \u2013 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 (\u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 C\u043e\u0444\u043a).<br \/>  \u0427\u0442\u043e \u043f\u043b\u043e\u0445\u043e\u0433\u043e \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u041e\u0424\u041a? \u0412 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043c\u043d\u043e\u0433\u043e \u043d\u0443\u043b\u0435\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041a\u0430\u043a \u0440\u0430\u0437 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438 \u0440\u0435\u0448\u0430\u0435\u0442 \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0424\u0438\u043b\u044c\u0442\u0440\u0430 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0422\u0438\u043f\u0430. \u0421\u0443\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430. \u041c\u044b \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043e\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0434\u0430\u0442\u0447\u0438\u043a\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0432\u043e\u0441\u0435\u043c\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u0422.\u0435. \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 16-\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c 8 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430. \u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/d20\/83f\/e98\/d2083fe98aa0d3d1cbb52690f7914217.png\"\/><br \/>  \u0412\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u044d\u0442\u0438\u0445 \u0432\u043e\u0441\u044c\u043c\u0438 \u00ab\u0447\u0430\u0441\u0442\u043d\u044b\u0445\u00bb \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u043c\u044b \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u041e\u0424\u041a \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0433\u0430\u0443\u0441\u0441\u043e\u0432\u0441\u043a\u043e-\u043c\u0430\u0440\u043a\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u041c\u041d\u041a \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0446\u0435\u043d\u043a\u0438 \u0442\u0440\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430.<br \/>  \u0412 \u0447\u0435\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430? \u0412 \u043d\u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 [1&#215;1], \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0422.\u0435. \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u043b\u044f\u0440, \u0440\u0430\u0432\u043d\u044b\u0439 \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u0438 \u0448\u0443\u043c\u043e\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0448\u0443\u043c\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f. \u0417\u043d\u0430\u0447\u0438\u0442, \u0442\u0430\u043a\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445, \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u0448\u0443\u043c\u043e\u0432. \u042d\u0442\u043e \u0432 \u0442\u0435\u043e\u0440\u0438\u0438. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0436\u0435 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0448\u0443\u043c\u043e\u0432 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0434\u0430\u0442\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u041e\u0424\u041a \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u00ab\u0431\u043e\u043b\u0435\u0435\u00bb \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u0446\u0435\u043d\u043a\u0443, \u0447\u0435\u043c \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439, \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0412\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u041e\u0424\u041a \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435 \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0430\u0432\u043d\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430. \u042d\u0442\u043e, \u043a\u0441\u0442\u0430\u0442\u0438, \u043c\u043d\u0435 \u0435\u0449\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h4>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438<\/h4>\n<p>  <\/p>\n<h5>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u043b\u044e\u0448\u0435\u043d\u0430<\/h5>\n<p>  \u0417\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0437\u0432\u0438\u043d\u044f\u044e\u0441\u044c \u0437\u0430 \u0430\u043d\u0433\u043b\u0438\u0446\u0438\u0437\u043c\u044b \u2013 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c \u0438\u0437 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0436\u0430\u0440\u0433\u043e\u043d\u0430 \u043d\u0430\u0439\u0442\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442 \u0432 \u00ab\u0432\u0435\u043b\u0438\u043a\u043e\u043c \u0438 \u043c\u043e\u0433\u0443\u0447\u0435\u043c\u00bb. \u0418\u0442\u0430\u043a, \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043d\u0430\u0447\u043d\u0443 \u0441 \u0443\u043a\u0440\u0443\u043f\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0441\u043e\u043b\u044e\u0448\u0435\u043d\u0430 (\u0438\u0437\u0432\u0438\u043d\u0438\u0442\u0435). \u041f\u043e\u0442\u043e\u043c \u043e\u043f\u0438\u0448\u0443 \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<br \/>  \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u043e\u043b\u044e\u0448\u0435\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 mind-map (<s>\u0444\u043b\u044d\u0448\u043a\u0430 \u0441 \u043c\u043e\u0437\u0433\u0430\u043c\u0438<\/s> ?) \u043d\u0438\u0436\u0435. \u041f\u0443\u043d\u043a\u0442\u0438\u0440\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0431\u043e\u0440\u043e\u043a (references).<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/112\/fb2\/092\/112fb20929c2138f53a156ebeaff618f.png\"\/><br \/>  \u0412 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u0432\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438: Math.Net \u0434\u043b\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u044b \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0430 \u0442\u0430\u043a\u0436\u0435 FileHelpers \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 CSV-\u0444\u0430\u043b\u043e\u0432. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u00ab<a href=\"http:\/\/www.codeproject.com\/Articles\/3172\/A-Simple-C-Genetic-Algorithm\">A Simple C# Genetic Algorithm<\/a>\u00bb (Barry Lapthorn). \u041f\u0440\u0430\u0432\u0434\u0430, \u043e\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e. <br \/>  \u0421\u043e\u043b\u044e\u0448\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0442\u0438\u043f\u0430 Class Library, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443. <br \/>  \u0421\u0431\u043e\u0440\u043a\u0430 GA, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u041e\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 Specimen (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0438) \u0438 \u043a\u043b\u0430\u0441\u0441\u044b GA \u0438 SpecimenHelper. SpecimenHelper \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0443\u043f\u0440\u043e\u0449\u0430\u044e\u0449\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0433\u0435\u043d\u0430\u043c\u0438 \u043e\u0441\u043e\u0431\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, GenerateGenes, Crossover, Mutate, Print). \u0422\u0430\u043a\u0436\u0435 \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b ContinuousUniform \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Math.Net. \u042d\u0442\u043e\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0442.\u043a. \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 Random \u0438\u0437 \u0441\u0431\u043e\u0440\u043e\u043a .Net 4.5 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u043e\u0432 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e. <br \/>  \u041a\u043b\u0430\u0441\u0441 GA \u0438\u043d\u0441\u0442\u0430\u043d\u0441-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d. \u041c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0443\u0436\u0435 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u0435 \u00ab\u043f\u043e\u0434\u0441\u043e\u0432\u044b\u0432\u0430\u044f\u00bb \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u043c\u0443\u044e \u043b\u0443\u0447\u0448\u0443\u044e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<br \/>  \u0421\u0431\u043e\u0440\u043a\u0430 Simulation \u043f\u043e\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 FedKfSim. \u0422\u043e\u0442, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u043c\u0435\u0442\u043e\u0434-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 ToFedKf \u0434\u043b\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 Specimen, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0433\u0435\u043d\u0430\u043c \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0438. \u0422\u0430\u043a \u0436\u0435 \u044d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 Simulate, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043e\u0441\u043e\u0431\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430.<br \/>  \u0421\u0431\u043e\u0440\u043a\u0430 Filtering \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u043a\u043b\u0430\u0441\u0441 SSF), \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u041a\u0430\u043b\u043c\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (\u043a\u043b\u0430\u0441\u0441 KF) \u0438 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 (\u043a\u043b\u0430\u0441\u0441 FedKF). \u041a\u043b\u0430\u0441\u0441 SSF \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441-\u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0432\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043f\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u041f\u0424). \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u041f\u0424 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043d\u043e\u0442\u0430\u0446\u0438\u0438 MatLab, \u0442.\u0435.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/337\/d34\/f41\/337d34f418448a29d75ff0f0cba31f0e.png\"\/><br \/>  \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 KFBuilder \u0432 \u0441\u0431\u043e\u0440\u043a\u0435 Filtering \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0438 \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0424\u041a\u0422, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044f \u0438 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u041f\u0424, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 (\u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443, \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0438\u043e\u0434\u0443 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438).<br \/>  \u0412 \u0441\u0431\u043e\u0440\u043a\u0435 DAL \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441 FileParser, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438 \u0448\u0443\u043c\u043e\u0432 \u0438\u0437 CSV-\u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<h5>\u0414\u0432\u0438\u0436\u043e\u043a \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432<\/h5>\n<p>  \u0414\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 (FitnessFunction), \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 (PopulationSize), \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0439 (GenerationsCount), \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0435\u043d\u043e\u0432 \u0443 \u043e\u0441\u043e\u0431\u0438 (GenomeSize), \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f (CrossoverRate), \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043c\u0443\u0442\u0430\u0446\u0438\u0438 (MutationRate).<br \/>  \u041c\u0435\u0442\u043e\u0434 Initiation \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u043e\u0441\u043e\u0431\u0435\u0439. \u041a\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435 (\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043b\u0438\u0448\u044c \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435):  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">private void Initiation()<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>private void Initiation() {     \/\/...     _currGeneration = new List&lt;Specimen&gt;();      var newSpecies = Enumerable.Range(0, PopulationSize).AsParallel().Select(i =&gt;     {         var newSpec = new Specimen         {             Length = this.GenomeSize         };         SpecimenHelper.GenerateGenes(ref newSpec);         var fitness = FitnessFunction(newSpec);          newSpec.Fitness = double.IsNaN(fitness) ? 0 : (double.IsInfinity(fitness) ? 1e5 : fitness);         \/\/...         return newSpec;     }).OrderBy(s =&gt; s.Fitness);      _currGeneration = newSpecies.ToList(); \/\/ Huge load starts here :)      _fitnessTable = new List&lt;double&gt;();     foreach (var spec in _currGeneration)     {         if (!_fitnessTable.Any())         {             _fitnessTable.Add(spec.Fitness);         }         else         {             _fitnessTable.Add(_fitnessTable.Last() + spec.Fitness);         }                     }      TotalFitness = _currGeneration.Sum(spec =&gt; spec.Fitness);     \/\/... } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0434\u0435\u0441\u044c \u2013 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e LINQ. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043e\u0442 0 \u0434\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0438\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 (.AsParallel()), \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f select-\u0437\u0430\u043f\u0440\u043e\u0441, \u0432 \u0442\u0435\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043e\u0441\u043e\u0431\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0435\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 (.OrderBy(\u2026)). \u0412\u0441\u0435 \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0431\u043b\u043e\u043a \u043a\u043e\u0434\u0430 \u0431\u044b\u0441\u0442\u0440\u043e. \u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0435:<br \/>  <code>_currGeneration = newSpecies.ToList(); \/\/ Huge load starts here :)<\/code><br \/>  \u043e \u0447\u0435\u043c \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0443\u043b\u043b\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0442\u0435\u043b\u0435 select-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u043a\u043e\u0434 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043a\u0430\u043a\u0443\u044e-\u043b\u0438\u0431\u043e \u043e\u0431\u0449\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e (\u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0432 \u043e\u0431\u0449\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432). \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 (\u0441 \u044d\u0442\u0438\u043c \u043c\u044b \u0435\u0449\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u043c\u0441\u044f).<br \/>  \u041f\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043e\u0441\u043e\u0431\u044f\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u0441\u043e\u0431\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0443\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u00ab\u041a\u043e\u043b\u0435\u0441\u043e \u0420\u0443\u043b\u0435\u0442\u043a\u0438\u00bb \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u043e\u0441\u043e\u0431\u0435\u0439 \u0434\u043b\u044f \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043a\u043e\u0434\u0430, \u043a\u0430\u0436\u0434\u043e\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u043c\u043c\u043e\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u0422\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c\u0438 \u0440\u0430\u0437\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u2013 \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043b\u0438\u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 (\u0441\u043c. \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u043d\u0438\u0436\u0435).<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/d17\/3e9\/7a5\/d173e97a5c4a26a6a53a2652077aba1c.png\"\/><br \/>  \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0442 \u043d\u0443\u043b\u044f \u0434\u043e \u0441\u0443\u043c\u043c\u044b \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u00ab\u0447\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u00bb \u043e\u0441\u043e\u0431\u0438 \u0434\u043b\u044f \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u0447\u0430\u0449\u0435, \u043d\u043e \u0438 \u00ab\u043b\u0443\u0437\u0435\u0440\u044b\u00bb \u0442\u043e\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u0448\u0430\u043d\u0441 \u043d\u0430 \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u0436\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b (\u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 Random \u0432 .Net 4.5), \u0442\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043e\u0441\u043e\u0431\u0438 \u0438\u0437 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439. \u0412\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u044b\u0448\u0435 \u044f \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 ContinuousUniform \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 Math.Net \u0431\u044b\u043b\u043e \u0432 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c.<br \/>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u2013 \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 Selection.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">private void Selection()<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>private void Selection() {                 var tempGenerationContainer = new ConcurrentBag&lt;Specimen&gt;();     \/\/...                  for (int i = 0; i &lt; this.PopulationSize \/ 2.5; i++)     {         int pidx1 = this.PopulationSize - i - 1;         int pidx2 = pidx1;         while (pidx1 == pidx2 || _currGeneration[pidx1].IsSimilar(_currGeneration[pidx2]))         {             pidx2 = RouletteSelection();         }         \/\/...         var children = Rnd.NextDouble() &lt; this.CrossoverRate ? parent1.Crossover(parent2) : new List&lt;Specimen&gt; { _currGeneration[pidx1], _currGeneration[pidx2] };          foreach (var ch in children.AsParallel())         {             if (double.IsNaN(ch.Fitness))             {                 var fitness = FitnessFunction(ch);                 var newChild = new Specimen                     {                         Genes = ch.Genes,                         Length = ch.Length,                         Fitness = double.IsNaN(fitness) ? 0 : (double.IsInfinity(fitness) ? 1e5 : fitness)                     };                 tempGenerationContainer.Add(newChild);             }             else             {                 tempGenerationContainer.Add(ch);             }         }     }      _currGeneration = tempGenerationContainer.OrderByDescending(s =&gt; s.Fitness).Take(this.PopulationSize).Reverse().ToList();      \/\/... } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0435\u043b\u0435\u043a\u0446\u0438\u044f. \u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u0437\u0434\u0435\u0441\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u0431\u043e\u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043b\u0435\u0441\u0430 \u0440\u0443\u043b\u0435\u0442\u043a\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438\u0437 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435, \u0447\u0435\u043c \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u0439. \u0412\u0442\u043e\u0440\u043e\u0439 \u0438\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0443\u0436\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e. \u041f\u0440\u0438\u0447\u0435\u043c \u0435\u0441\u043b\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0433\u0435\u043d\u0430\u043c \u0431\u043b\u0438\u0437\u043e\u043a \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443, \u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e \u0433\u0435\u043d\u0430\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c. \u0414\u0430\u043b\u0435\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0434\u0430\u0435\u0442 \u0434\u0432\u0435 \u043e\u0441\u043e\u0431\u0438 \u0441\u043e \u0441\u043c\u0435\u0448\u0435\u043d\u043d\u044b\u043c\u0438 \u0433\u0435\u043d\u0430\u043c\u0438 \u0438 \u0435\u0449\u0435 \u043e\u0434\u043d\u0443, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0433\u0435\u043d\u043e\u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439.   <\/p>\n<blockquote><p><i>TODO: \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043d\u0430\u0434\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043c\u0435\u0436\u0434\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0433\u0435\u043d\u043e\u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439.<\/i><\/p><\/blockquote>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0441\u043a\u0440\u0435\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0443 \u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u0439 fitness \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 double.NaN. \u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u0439 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e  <\/p>\n<pre><code>foreach (var ch in children.AsParallel()) {     if (double.IsNaN(ch.Fitness))     {         var fitness = FitnessFunction(ch);         var newChild = new Specimen             {                 \/\/...             };         tempGenerationContainer.Add(newChild);     }     \/\/... } <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0434\u0432\u0438\u0436\u043a\u0430 \u0413\u0410, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u043e\u0438\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u044d\u0442\u043e \u043c\u0435\u0442\u043e\u0434 RouletteSelection.  <\/p>\n<pre><code>private int RouletteSelection() {     double randomFitness = Rnd.NextDouble() * TotalFitness;     int idx = -1;     int first = 0;     int last = this.PopulationSize - 1;     int mid = (last - first) \/ 2;      while (idx == -1 && first &lt;= last)     {         if (randomFitness &lt; _fitnessTable[mid])         {             last = mid;         }          else if (randomFitness &gt; _fitnessTable[mid])         {             first = mid;         }         else if (randomFitness == _fitnessTable[mid])         {             return mid;         }          mid = (first + last) \/ 2;          \/\/ lies between i and i+1         if ((last - first) == 1)         {             idx = last;         }     }      return idx; } <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0438\u0434\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 \u043d\u0443\u043b\u044f \u0434\u043e \u0441\u0443\u043c\u043c\u044b \u0432\u0441\u0435\u0445 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0438, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0441\u043f\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0438 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0422\u0430\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e.<\/p>\n<h5>\u0421\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0424\u041a\u0422<\/h5>\n<p>  \u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c FedKfSim. \u0413\u043b\u0430\u0432\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0432 \u043d\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 Simulate.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">public static double Simulate(Specimen spec)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>public static double Simulate(Specimen spec) {     var fkf = spec.ToFedKf();     var meas = new double[4];     ...     var err = 0.0;     int lng = Math.Min(Signals.RowCount, MaxSimLength);      var results = new Vector3[lng];     results[0] = new Vector3 { X = 0.0, Y = 0.0, Z = 0.0 };      for (int i = 0; i &lt; lng; i++)     {         var sigRow = Signals.Row(i);         var noiseRow = Noises.Row(i);         var targRow = Targets.Row(i);         meas[0] = sigRow[0] + noiseRow[0];         meas[1] = sigRow[1] + noiseRow[1];         meas[2] = sigRow[2] + noiseRow[2];         meas[3] = sigRow[3] + noiseRow[3];          var res = fkf.Step(meas, inps.ToColumnWiseArray()); \/\/ inps \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0424\u041a \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f          var errs = new double[] { res[0, 0] - targRow[0], res[1, 0] - targRow[1], res[2, 0] - targRow[2] };         err += (errs[0] * errs[0]) + (errs[1] * errs[1]) + (errs[2] * errs[2])\/3.0;         results[i] = new Vector3 { X = res[0, 0], Y = res[1, 0], Z = res[2, 0] };         ...     }     ...     return 1\/err*lng; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0430 \u0447\u0438\u0441\u0442\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432, \u0448\u0443\u043c\u043e\u0432 \u0438 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u0431\u0435\u0437 \u0448\u0443\u043c\u043e\u0432). \u0427\u0438\u0441\u0442\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441 \u0448\u0443\u043c\u0430\u043c\u0438, \u0438 \u044d\u0442\u0430 \u0441\u043c\u0435\u0441\u044c \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0443 Step \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430. \u0415\u0449\u0435 \u0442\u0443\u0434\u0430 \u0436\u0435 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u0441 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0448\u0430\u0433\u0430, \u043d\u043e \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0424\u041a\u0422 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u041c\u0435\u0442\u043e\u0434 Step \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0432\u044b\u0434\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u2013 \u043e\u0446\u0435\u043d\u043a\u0438 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u0430 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043d\u0438\u044f. \u0412 \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0448\u0430\u0433\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u043d\u0438\u044f, \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u0441\u0443\u043c\u043c\u0435 \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u0448\u0430\u0433\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435.<\/p>\n<h5>\u0418\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/h5>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0432\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u0415\u0441\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u043f\u0443\u0441\u0442\u043e\u0439, \u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.  <\/p>\n<pre><code>switch (cmd) {     case &quot;simulate&quot;:      case &quot;simulation&quot;:         InitializeSimulator();          FedKfSim.PrintSimResults = true;          var spec = new Specimen();         SpecimenHelper.SetGenes(ref spec, ReadSimulationGenes());          FedKfSim.Simulate(spec);         break;      case &quot;set&quot;:         var settingName = args[1];         var settingValue = args[2]; \t\tvar config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); \t\tconfig.AppSettings.Settings[settingName].Value = settingValue; \t\tconfig.Save(ConfigurationSaveMode.Modified); \t\tConfigurationManager.RefreshSection(&quot;appSettings&quot;); \t\t\t\t\t\t \t\tConsole.WriteLine(&quot;'{0}' set to {1}&quot;, settingName, settingValue);         break;      case &quot;print&quot;:         Console.WriteLine(&quot;Current settings:&quot;);         foreach (var name in ConfigurationManager.AppSettings.AllKeys.AsParallel())         {             var value = ConfigurationManager.AppSettings[name];             Console.WriteLine(&quot;'{0}' =&gt; {1}&quot;, name, value);         }         break;  \tcase &quot;help&quot;: \tcase &quot;?&quot;: \tcase &quot;-h&quot;: \t\tPrintHelp(); \t\tbreak;     default: \t\tConsole.Error.WriteLine(string.Format(&quot;\\nARGUMENT ERROR\\n'{0}' is unknown command!\\n&quot;, cmd)); \t\tPrintHelp(); \t\tbreak; } <\/code><\/pre>\n<p>  \u041f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u00absimulate\u00bb \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0433\u0435\u043d\u043e\u0432, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u041a\u0422. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u00abset\u00bb \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u00abprint\u00bb \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u00abhelp\u00bb \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e.<br \/>  \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0436\u043a\u0430 \u0413\u0410, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446, \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0448\u0443\u043c\u043e\u0432 \u0438 \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043e\u0432 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u043d\u0443\u0436\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441.  <\/p>\n<pre><code>InitializeSimulator();  var genCount = int.Parse(ConfigurationManager.AppSettings[&quot;GenerationsCount&quot;]); var popSize = int.Parse(ConfigurationManager.AppSettings[&quot;PopulationSize&quot;]); var crossOver = double.Parse(ConfigurationManager.AppSettings[&quot;CrossoverRate&quot;], FileParser.NumberFormat); var mutRate = double.Parse(ConfigurationManager.AppSettings[&quot;MutationRate&quot;], FileParser.NumberFormat); var maxGeneVal = double.Parse(ConfigurationManager.AppSettings[&quot;MaxGeneValue&quot;], FileParser.NumberFormat); var minGeneVal = double.Parse(ConfigurationManager.AppSettings[&quot;MinGeneValue&quot;], FileParser.NumberFormat); var genomeLength = int.Parse(ConfigurationManager.AppSettings[&quot;GenomeLength&quot;]);  SpecimenHelper.SimilarityThreshold = double.Parse(     ConfigurationManager.AppSettings[&quot;SimilarityThreshold&quot;], FileParser.NumberFormat);  var ga = new Ga(genomeLength) {     FitnessFunction = FedKfSim.Simulate,     Elitism = true,     GenerationsCount = genCount,     PopulationSize = popSize,     CrossoverRate = crossOver,     MutationRate = mutRate };  FedKfSim.PrintSimResults = false; ga.Go(maxGeneVal, minGeneVal); <\/code><\/pre>\n<p>  \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0443 ReadSignalsAndNoises.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">private static void ReadSignalsAndNoises()<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>private static void ReadSignalsAndNoises() {     var noisesPath = ConfigurationManager.AppSettings[&quot;NoisesFilePath&quot;];     var signalsPath = ConfigurationManager.AppSettings[&quot;SignalsFilePath&quot;];     var targetsPath = ConfigurationManager.AppSettings[&quot;TargetsFilePath&quot;];      FedKfSim.Noises = new DenseMatrix(FileParser.Read4ColonFile(noisesPath));     FedKfSim.Signals = new DenseMatrix(FileParser.Read4ColonFile(signalsPath));     FedKfSim.Targets = new DenseMatrix(FileParser.Read3ColonFile(targetsPath));      var measCov = new DenseMatrix(4);     double c00 = 0, c01 = 0, c02 = 0, c03 = 0, c11 = 0, c12 = 0, c13 = 0, c22 = 0, c23 = 0, c33 = 0;      Vector&lt;double&gt; v1 = new DenseVector(1);     Vector&lt;double&gt; v2 = new DenseVector(1);     Vector&lt;double&gt; v3 = new DenseVector(1);     Vector&lt;double&gt; v4 = new DenseVector(1);     var s1 = new DescriptiveStatistics(new double[1]);     var s2 = new DescriptiveStatistics(new double[1]);     var s3 = new DescriptiveStatistics(new double[1]);     var s4 = new DescriptiveStatistics(new double[1]);      var t00 = Task.Run(() =&gt;     {         v1 = FedKfSim.Noises.Column(0);         s1 = new DescriptiveStatistics(v1);         c00 = s1.Variance;     });      var t11 = Task.Run(() =&gt;     {         v2 = FedKfSim.Noises.Column(1);         s2 = new DescriptiveStatistics(v2);         c11 = s2.Variance;     });      var t22 = Task.Run(() =&gt;     {         v3 = FedKfSim.Noises.Column(2);         s3 = new DescriptiveStatistics(v3);         c22 = s3.Variance;     });      var t33 = Task.Run(() =&gt;     {         v4 = FedKfSim.Noises.Column(3);         s4 = new DescriptiveStatistics(v4);         c33 = s4.Variance;     });     Task.WaitAll(new[] { t00, t11, t22, t33 });      var t01 = Task.Run(() =&gt; c01 = CalcVariance(v1, s1.Mean, v2, s2.Mean, FedKfSim.Noises.RowCount));     var t02 = Task.Run(() =&gt; c02 = CalcVariance(v1, s1.Mean, v3, s3.Mean, FedKfSim.Noises.RowCount));     var t03 = Task.Run(() =&gt; c03 = CalcVariance(v1, s1.Mean, v4, s4.Mean, FedKfSim.Noises.RowCount));      var t12 = Task.Run(() =&gt; c12 = CalcVariance(v2, s2.Mean, v3, s3.Mean, FedKfSim.Noises.RowCount));     var t13 = Task.Run(() =&gt; c13 = CalcVariance(v2, s2.Mean, v4, s4.Mean, FedKfSim.Noises.RowCount));      var t23 = Task.Run(() =&gt; c23 = CalcVariance(v3, s3.Mean, v4, s4.Mean, FedKfSim.Noises.RowCount));      Task.WaitAll(new[] { t01, t02, t03, t12, t13, t23 });      measCov[0, 0] = c00; measCov[0, 1] = c01; measCov[0, 2] = c02; measCov[0, 3] = c03;     measCov[1, 0] = c01; measCov[1, 1] = c11; measCov[1, 2] = c12; measCov[1, 3] = c13;     measCov[2, 0] = c02; measCov[2, 1] = c12; measCov[2, 2] = c22; measCov[2, 3] = c23;     measCov[3, 0] = c03; measCov[3, 1] = c13; measCov[3, 2] = c23; measCov[3, 3] = c33;      FedKfSim.SensorsOutputCovariances = measCov; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u043d\u0435\u043c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 double. \u041a\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043e\u0434\u0438\u043d \u043c\u0430\u0441\u0441\u0438\u0432, \u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (Task) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0431\u044b \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u044f \u0438 \u043d\u0430\u043a\u043e\u043b\u043e\u043b\u0441\u044f \u0441 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u042f \u0437\u0430\u0434\u0430\u0432\u0430\u043b \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0449\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u0418 \u0441 \u044d\u0442\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u0434 \u0431\u044b\u043b, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d. \u041d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f \u043e\u043d \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043c\u0435\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u043e\u0441\u044c. <br \/>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435? \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0440\u044f\u0434\u043e\u0432 \u0448\u0443\u043c\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u0412 \u044d\u0442\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043d\u0430\u044f \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f \u0434\u0432\u0443\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432.  <\/p>\n<pre><code>private static double CalcVariance(IEnumerable&lt;double&gt; v1, double mean1, IEnumerable&lt;double&gt; v2, double mean2, int length) {     var zipped = v1.Take(length).Zip(v2.Take(length), (i1, i2) =&gt; new[] { i1, i2 });      var sum = zipped.AsParallel().Sum(z =&gt; (z[0] - mean1) * (z[1] - mean2));      return sum \/ (length - 1); } <\/code><\/pre>\n<p>  \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u0438. \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0432\u0443\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432.<br \/>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<br \/>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0440\u044f\u0434\u044b \u0441 \u0448\u0443\u043c\u0430\u043c\u0438, \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 (\u0432\u0437\u044f\u0442\u0430 \u0438\u0437 \u043c\u043e\u0435\u0433\u043e \u0434\u0438\u043f\u043b\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439), \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0448\u0443\u043c\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (\u0437\u0430\u0434\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u0443\u0442\u0435\u043c).<br \/>  \u0420\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\u0430 \u0431\u044b\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0434\u0432\u0443\u0445 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434. \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043e\u0432 \u0431\u043b\u043e\u043a\u0430 \u0431\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u0428\u0443\u043c\u044b \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u042f \u0432\u0437\u044f\u043b \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430, \u043d\u0430\u0445\u043e\u0434\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043f\u043e\u043a\u043e\u0435. \u0423\u0434\u0430\u043b\u0438\u0432 \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e, \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0448\u0443\u043c\u044b \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0432 \u0441\u0442\u0430\u0442\u0438\u043a\u0435 (\u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e). \u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u0448\u0443\u043c\u044b \u044d\u0442\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u0438 \u043a \u0431\u0435\u043b\u044b\u043c \u0441 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c. \u042d\u0442\u0438 \u0448\u0443\u043c\u044b \u044f \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u043b \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0438\u0437 1000 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043e\u0442\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043b \u0438\u0445 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u0439 \u043a \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 [0.05..0.15]. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0448\u0443\u043c\u044b \u0432 \u0441\u0432\u043e\u0438\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445.<\/p>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h4>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/bc8\/f90\/ebc\/bc8f90ebc1fc0499dd7871aeb062a6f1.png\"\/><br \/>  \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u044e \u0448\u0443\u043c\u043e\u0432 \u043f\u043e\u0447\u0442\u0438 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 (\u0442.\u0435. \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b \u0441\u0440\u0435\u0434\u043d\u0435\u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 1,38 \u0440\u0430\u0437\u0430). \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u0435\u0440\u0441\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0438\u043d\u0435\u0440\u0446\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0431\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u043e\u0441\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u043f\u0430\u0437\u0434\u044b\u0432\u0430\u043d\u0438\u0435. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0413\u0410 \u0431\u044b\u043b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0448\u0443\u043c\u043e\u0432.<\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0421\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430 \u0431\u044b\u043b\u043e \u043d\u0435 \u0434\u043e \u043f\u0435\u0440\u0444\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0437\u043c\u0430. \u041c\u0435\u0441\u0442\u0430\u043c\u0438 \u0435\u0441\u0442\u044c \u0431\u0440\u0435\u0448\u0438 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0434\u0430 (\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432), \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u043d\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u044b \u043e\u0431\u0449\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u00abC# Code Style Guide\u00bb. \u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0430\u0439\u0434\u0443\u0442\u0441\u044f \u0431\u043b\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u0441 \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041d\u043e \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0441\u0435 \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e. \u042f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0435 \u043d\u0430 \u0426\u041f Intel Core i3, \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u044b\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u043c. \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e TPL \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u043b\u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0443 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 TPL \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0431\u0435\u0437 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a. \u042f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 Visual Studio 2012 \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0440\u0435\u0448\u0430\u0440\u043f\u0435\u0440\u043e\u043c, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0432 Outlook \u0438 MS Word, \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 IE \u0438 Chrome, \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0442\u043e\u0440\u043c\u043e\u0437\u043e\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u044f. \u0412 \u043e\u0431\u0449\u0435\u043c, \u044d\u0442\u043e \u0431\u044b\u043b \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f TPL, \u0431\u044b\u043b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0435\u0439.<br \/>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u0438 \u043a\u043e\u0434 \u0431\u0443\u0434\u0443\u0442 \u0412\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b.<\/p>\n<p>  <b>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431<\/b>: <a href=\"https:\/\/github.com\/homoluden\/fedkf-ga\">github.com\/homoluden\/fedkf-ga<\/a>    \t \t\t \t\t\t \t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430 \u0442\u0435\u043c\u0430 \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0424\u041a \u043d\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432. \u0415\u0441\u0442\u044c \u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043a \u043d\u043e\u0432\u044b\u043c \u0441\u0442\u0430\u0442\u044c\u044f\u043c \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"178453\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"7829\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv40599\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"40599\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv40599\">\u0414\u0430<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv40601\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"40601\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv40601\">\u041d\u0435\u0442<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<p class=\"total\">\u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b 1 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442.<\/p>\n<\/p><\/form>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/178453\/\"> http:\/\/habrahabr.ru\/post\/178453\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0432\u043e\u0435\u0439 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u0438\u043b\u044c\u0442\u0440 \u041a\u0430\u043b\u043c\u0430\u043d\u0430 (Federated Kalman Filter). \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u00ab\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0424\u041a\u00bb, \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u043e\u0433\u043e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0438 \u0433\u0435\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0435\u0433\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c TPL (Task Parallel Library), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u043f\u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-178453","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/178453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=178453"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/178453\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=178453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=178453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=178453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}