{"id":314736,"date":"2020-12-11T21:00:34","date_gmt":"2020-12-11T21:00:34","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=314736"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=314736","title":{"rendered":"\u0426\u0438\u0444\u0440\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430: \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 DOcplex \u043e\u0442 IBM"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mm\/ma\/xo\/mmmaxo649zjoyjvdgiwdgizzyw0.png\"><\/div>\n<p>  \u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0443\u0437\u0438\u043d (Application Development Senior Analyst \u0432 Accenture), \u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0434\u0435\u043b\u044e\u0441\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 \u043f\u0440\u0438\u0432\u0435\u043b \u043a \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044e Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 DOcplex \u043e\u0442 IBM, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>  \u042f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043b\u0438\u0447\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 DOcplex \u043e\u0442 IBM. \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u044b\u0445 \u0438 \u0441\u043f\u0440\u043e\u0441 \u0432\u0442\u043e\u0440\u044b\u0445. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0434\u0430\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 Python.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 [1, 2]. \u041e\u0434\u043d\u0430\u043a\u043e, \u0438\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0440\u044b\u043d\u043e\u0447\u043d\u044b\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0440\u044b\u043d\u043a\u0430 \u2014 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u043c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0438 \u0441\u043f\u0440\u043e\u0441 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435.<\/p>\n<h3>\u0427\u0442\u043e \u0436\u0435 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0438 \u043a\u0430\u043a \u0435\u0451 \u0440\u0435\u0448\u0430\u0442\u044c?<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/a_\/ym\/xw\/a_ymxwsplvwkgvraunva80flbw8.png\"><\/div>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435, \u043c\u043e\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438: \u00ab\u041a\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0437\u043d\u0430\u0435\u0442 \u0441\u0438\u043c\u043f\u043b\u0435\u043a\u0441-\u043c\u0435\u0442\u043e\u0434 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0438\u0433\u0440?\u00bb. \u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u043e\u0439, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441, \u0438, \u043a\u0430\u043a \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441 \u043f\u0440\u044b\u0442\u043a\u0438\u043c \u0443\u043c\u043e\u043c \u0438 \u0441\u0442\u0440\u0430\u0441\u0442\u044c\u044e \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043d\u043e\u0432\u044b\u0445 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0437\u0430\u0434\u0430\u0447, \u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0432\u0437\u044f\u043b\u0441\u044f \u0437\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430. \u041a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0437\u0434\u043d\u0435\u0435, \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u044d\u0442\u043e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u00ab\u0442\u043e\u0432\u0430\u0440\u0430\u00bb (\u0433\u0440\u0443\u0437\u0430, \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0430) \u043c\u0435\u0436\u0434\u0443 \u043f\u0443\u043d\u043a\u0442\u0430\u043c\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u0445 (\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044f\u0445, \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u0445) \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0443.<\/p>\n<p>  \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430 \u2013 \u043e\u0441\u043d\u043e\u0432\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441\u0430.<br \/>  \u041a\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0438, \u0442\u0430\u043a \u0438 \u0435\u0451 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0442\u0434\u0435\u043b\u0430 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0438. \u0417\u0430\u043b\u043e\u0433\u043e\u043c \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043b\u043e\u0433\u0438\u0441\u0442\u0430 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e- \u0438 \u043c\u0430\u043a\u0440\u043e\u0443\u0440\u043e\u0432\u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u0435\u043d\u0438\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u0437 \u0432\u0441\u0435\u0445 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 [3].<\/p>\n<p>  \u0412 \u0441\u0432\u043e\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0447\u0435\u0431\u043d\u043e\u0439, \u043e\u0434\u043d\u0430\u043a\u043e, \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0437\u0430\u0434\u0430\u0447, \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.<\/p>\n<h3>\u0418\u0442\u0430\u043a, \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h3>\n<p>  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/g0\/b9\/-j\/g0b9-jlymcbey0tmsiiaim0xykg.png\"><\/div>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0433\u0438\u043f\u043e\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u044b\u043d\u043e\u043a \u0445\u0438\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0438\u0437\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u043f\u043e\u043b\u0438\u043c\u0435\u0440\u043e\u0432. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0442\u0440\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u043b\u043a\u0438\u043c\u0438 \u0438 \u0438\u0445 \u0432\u043b\u0438\u044f\u043d\u0438\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0447\u044c. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0442\u0440\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u0438 \u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0440\u044b\u043d\u043a\u0435 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u043e\u0433\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043a\u0440\u043e\u043c\u0435 \u0446\u0435\u043d\u044b.<\/p>\n<p>  \u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0435 \u0432 \u0446\u0438\u0441\u0442\u0435\u0440\u043d\u0430\u0445 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0442.\u0435. \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0443 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a \u0440\u0430\u0441\u0445\u043e\u0434\u0430\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f. \u0422\u0430\u0440\u0438\u0444 \u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0443 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0434\u043e \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u043d\u0435\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443. \u0422\u0430\u043a\u0436\u0435 \u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u043e \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0433\u0435 \u0432 \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442, \u043e\u0442\u043a\u0443\u0434\u0430 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u0435, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0435\u0439 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 (\u0442.\u0435. \u0446\u0435\u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 1 \u0442\u043e\u043d\u043d\u044b \u0438 10 000 \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439). <\/p>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043f\u0440\u0438\u0431\u044b\u043b\u044c, \u043f\u043e\u043d\u0438\u0437\u0438\u0432 \u0446\u0435\u043d\u0443 \u0438 \u0437\u0430\u0431\u0440\u0430\u0432 \u0434\u043e\u043b\u044e \u0440\u044b\u043d\u043a\u0430 \u0443 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043e\u0432, \u0442\u043e \u043e\u043d \u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e. \u0426\u0435\u043d\u0430, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0432 \u043f\u043e\u0440\u0442\u0443, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 50 \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432 \u0437\u0430 \u0442\u043e\u043d\u043d\u0443. \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0440\u044b\u043d\u043a\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0435 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0435\u044d\u043b\u0430\u0441\u0442\u0438\u0447\u043d\u044b \u043f\u043e \u0446\u0435\u043d\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0434\u043e 100 \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432 \u0437\u0430 \u0442\u043e\u043d\u043d\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0430 \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0446\u0435\u043d\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 \u043e\u0442\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438. <\/p>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0441\u044f\u0446. \u041f\u0440\u0438\u043c\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430, \u0435\u0441\u043b\u0438 \u0435\u043c\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043d\u0430 \u043d\u0430 \u043d\u0438\u0436\u0435 \u0442\u043e\u0439, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u0442 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>  <i>\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0442\u043e, \u0443 \u043a\u043e\u0433\u043e \u0438 \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u0446\u0435\u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u044b\u043d\u043e\u043a \u043f\u0440\u0438\u0434\u0435\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u0438\u044f, \u0442.\u0435. \u043a\u043e\u0433\u0434\u0430 \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0446\u0435\u043d\u044b \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a.<\/i><\/p>\n<p>  \u0414\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0439 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u0441\u043f\u0440\u043e\u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442, \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0433\u0440\u0443\u0437\u0430 \u0438\u043c\u0435\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0441\u0445\u0435\u043c\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0441 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u043c\u043e\u0440\u0441\u043a\u0438\u043c \u043f\u043e\u0440\u0442\u043e\u043c.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ha\/ii\/mi\/haiimilixrdrgpghfr8rywmiigy.png\"><\/div>\n<p>  \u0422\u0430\u043a\u0436\u0435, \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0442\u0440\u0451\u0445 \u0442\u0430\u0431\u043b\u0438\u0446. <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/g_\/a2\/br\/g_a2brlxthkwqpjyqeiyg1pbm1e.png\"><\/div>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ot\/sj\/xy\/otsjxytx47otsefubn8ld3jpon4.png\"><\/div>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bc\/eg\/8w\/bceg8wdctslzuxy6o6bn-vr281s.png\"><\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043c\u0430 \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438. \u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u044f \u0434\u0430\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u0442\u043e\u044f\u0432\u0448\u0438\u0445\u0441\u044f \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>  \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0440\u0451\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.  <\/p>\n<ol>\n<li><b>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f.<\/b> \u0414\u0430\u043d\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 Z. \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0442\u0440\u0430\u0436\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043f\u0440\u0438\u0431\u044b\u043b\u044c \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u044f) \u0438\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c, \u0437\u0430\u0442\u0440\u0430\u0442\u044b). <\/li>\n<li><b>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/b> \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043e\u0431\u044a\u0451\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0447\u0442\u0435\u043d\u044b \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 (\u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432). <\/li>\n<li><b>\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043d\u0435\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445.<\/b> \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043b\u0438 \u043d\u0443\u043b\u0435\u0432\u044b\u043c\u0438. <\/li>\n<\/ol>\n<p>  \u0417\u0430\u043f\u0438\u0448\u0435\u043c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443, \u0441\u043f\u0440\u043e\u0441 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u043e\u0440\u0442. \u0418\u0442\u0430\u043a, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f.<\/p>\n<p><math>$$display$$Z=\u2211_i^n\u2211_j^m(y_ij-k_ij )\u2219x_ij\u2219h_ij+\u2211_i^n(d-z_i )\u2219p_i,$$display$$<\/math><\/p>\n<p>  \u0433\u0434\u0435<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d6e\/546\/20e\/d6e54620ead39285ef646f1971d57214.svg\" alt=\"$y_ij$\" data-tex=\"inline\"><\/math> \u2013 \u0446\u0435\u043d\u0430 \u0437\u0430 \u0442\u043e\u043d\u043d\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math>-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5b9\/1d2\/c40\/5b91d2c4049c582966172c8fb9440e38.svg\" alt=\"$x_ij$\" data-tex=\"inline\"><\/math> \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math>-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4bf\/ca4\/dd3\/4bfca4dd31a0228316a2cb1e2527061a.svg\" alt=\"$k_ij$\" data-tex=\"inline\"><\/math> \u2013 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0436.\u0434. \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0443 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math>-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/835\/414\/279\/835414279e81fe703fa9bc1734512f59.svg\" alt=\"$h_ij$\" data-tex=\"inline\"><\/math> \u2013 \u0435\u0441\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442 (1-\u0435\u0441\u0442\u044c, 0-\u043d\u0435\u0442\u0443) \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math>-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/08b\/a9c\/561\/08ba9c56140cf603308f9b84a26dc818.svg\" alt=\"$p_i$\" data-tex=\"inline\"><\/math> \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0432 \u043f\u043e\u0440\u0442;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35e\/a85\/36b\/35ea8536b3e6152e60442ccecbc46812.svg\" alt=\"$d$\" data-tex=\"inline\"><\/math> \u2013 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u0436\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432 \u043f\u043e\u0440\u0442\u0443;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a36\/79e\/c93\/a3679ec93e70f32dfedc72350b723bd9.svg\" alt=\"$z_i$\" data-tex=\"inline\"><\/math> \u2013 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0436.\u0434. \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0443 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e 1-\u043e\u0439 \u0442\u043e\u043d\u043d\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0432 \u043f\u043e\u0440\u0442;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/08d\/9fa\/efb\/08d9faefbe272bdf8fbb80773542e343.svg\" alt=\"$n$\" data-tex=\"inline\"><\/math> \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439;<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e2e\/33f\/15a\/e2e33f15a96008ca33579599483c4531.svg\" alt=\"$m$\" data-tex=\"inline\"><\/math> \u2013 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u043b\u0430\u0441\u044c \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043d\u0435 \u0438\u043c\u0435\u043b\u0430 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0440\u044f\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<ol>\n<li><b>\u041f\u0435\u0440\u0432\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.<\/b> \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c \u0438\u043b\u0438 \u0432 \u043f\u043e\u0440\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u043d \u0441\u0430\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442.<br \/> \n<ul>\n<li>\u0434\u043b\u044f 1-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/85f\/334\/ac8\/85f334ac8e666ae3c9e4e4346b30efed.svg\" alt=\"$\u2211_j^m(x_1j)+p_1\u2264890$\" data-tex=\"inline\"><\/math><\/li>\n<li>\u0434\u043b\u044f 2-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/64f\/d5f\/39e\/64fd5f39eef1c19da6b8d08469ca7d09.svg\" alt=\"$\u2211_j^m(x_2j)+p_2\u2264534$\" data-tex=\"inline\"><\/math><\/li>\n<li>\u0434\u043b\u044f 3-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/46a\/08a\/fd9\/46a08afd91d99dd2d5d0f84cdd83a7a3.svg\" alt=\"$\u2211_j^m(x_3j)+p_3\u22641153$\" data-tex=\"inline\"><\/math><\/li>\n<\/ul>\n<p>   <\/li>\n<li><b>\u0412\u0442\u043e\u0440\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.<\/b> \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u044e\u0442 \u0440\u043e\u0432\u043d\u043e \u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0438\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0441\u044f\u0446.<br \/> \n<ul>\n<li>\u0434\u043b\u044f 1-\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/693\/bf1\/09d\/693bf109d72c12aa1ce49faeeaf86dac.svg\" alt=\"$\u2211_i^nx_i1=78$\" data-tex=\"inline\"><\/math><\/li>\n<li>\u0434\u043b\u044f 2-\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a99\/d0b\/3c0\/a99d0b3c0d1dfa7b01122d1f6afe039f.svg\" alt=\"$\u2211_i^nx_i2=121$\" data-tex=\"inline\"><\/math><\/li>\n<li>\u0434\u043b\u044f 3-\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/055\/4e9\/715\/0554e9715f01e34a39b03012d6aa6360.svg\" alt=\"$\u2211_i^nx_i3=94$\" data-tex=\"inline\"><\/math><\/li>\n<li>\u0434\u043b\u044f 4-\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/006\/b1e\/a24\/006b1ea24267ef706fe913851df2b995.svg\" alt=\"$\u2211_i^nx_i4=85$\" data-tex=\"inline\"><\/math><\/li>\n<\/ul>\n<p>   <\/li>\n<li><b>\u0422\u0440\u0435\u0442\u044c\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.<\/b> \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f \u0446\u0435\u043d\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 100 USD.<br \/> \n<ul>\n<li>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2c2\/b68\/6eb\/2c2b686eb2cd2d9d89169f96c74d1a01.svg\" alt=\"$0&lt;\u2200y_ij\u2264100$\" data-tex=\"inline\"><\/math><\/li>\n<\/ul>\n<p>   <\/li>\n<li><b>\u0427\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. <\/b>\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<br \/> \n<ul>\n<li> <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/549\/6c9\/e82\/5496c9e82ec71deb2661c441305a192e.svg\" alt=\"$x_ij\u22650,i=(0,n) \u0305,j=(0,m) \u0305$\" data-tex=\"inline\"><\/math><\/li>\n<\/ul>\n<p>   <\/li>\n<\/ol>\n<p>  <b>\u041f\u044f\u0442\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.<\/b> \u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u043f\u0440\u043e\u0441 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0446\u0435\u043d\u044b, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432 \u0432\u0441\u0435\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0440\u044b\u043d\u043a\u0430. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438 \u0438\u0433\u0440 \u0442\u0430\u043a\u043e\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u0438\u0435\u043c \u041d\u044d\u0448\u0430, \u0438\u043b\u0438 \u0432\u044b\u0431\u043e\u0440 \u0442\u0430\u043a\u0438\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 \u0438\u0433\u0440\u043e\u043a\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0438 \u043e\u0434\u0438\u043d \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0432\u044b\u0438\u0433\u0440\u044b\u0448 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438\u0431\u044b\u043b\u044c), \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u0441\u0432\u043e\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e, \u0435\u0441\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0441\u0432\u043e\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u044e\u0442 [4].<\/p>\n<p>  \u0417\u0432\u0443\u0447\u0438\u0442 \u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u043e, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0446\u0435\u043d\u0443, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044e \u0432\u044b\u0433\u043e\u0434\u043d\u0435\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e, \u0430 \u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c. \u0418\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0432\u044b\u0433\u043e\u0434\u043d\u0443\u044e \u0446\u0435\u043d\u0443, \u0432\u0435\u0434\u044c \u043c\u044b \u043f\u043e\u043c\u043d\u0438\u043c \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438, \u0447\u0442\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u044e\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0443 \u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0446\u0435\u043d\u0443. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e.<\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/129\/e72\/f9b\/129e72f9b3c9789c5a7fe700cb259c9c.svg\" alt=\"$y_ij- k_ij&gt;d-z_i$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u041d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0432\u044b\u0433\u043e\u0434\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c<\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a2e\/b3c\/86c\/a2eb3c86c96037cc2a15da1bf4bd1511.svg\" alt=\"$y_ij=d-z_i+k_ij+1$\" data-tex=\"display\"><\/math><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f \u0432\u044b\u0431\u0440\u0430\u043b Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0442 IBM DOcplex (Decision Optimization CPLEX).<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0431\u044b\u043b\u044c \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u041c\u043e\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u044e\u0449\u0438\u0445\u0441\u044f \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e \u0434\u0443\u0448\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043e\u0442 IBM \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c IBM ILOG CPLEX Optimization Studio. \u041e\u043d \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0437\u0430\u0434\u0430\u0447 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438, \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447. \u0422\u0430\u043a\u0436\u0435 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 IBM ILOG CPLEX Optimization Studio \u0432\u0445\u043e\u0434\u0438\u0442 Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 DOcplex \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Jupyter Notebook. \u041d\u0438\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0445\u043e\u0434 \u043c\u043e\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 Jupyter Notebook.<\/p>\n<p>  <b>\u0425\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 Jupyter Notebook<\/b><\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wq\/zt\/rk\/wqztrkz2kikwfrj7lwq_8tzsydu.png\"><\/div>\n<p>  \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u0418\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c docplex \u2013 \u043e \u043d\u0435\u0439 \u043c\u044b \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u0432\u044b\u0448\u0435, \u0438 networkx \u2013 \u044d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0433\u0440\u0430\u0444\u0430.<\/p>\n<pre><code class=\"python\">import pandas as pd import docplex.mp as dpx import matplotlib.pyplot as plt import numpy as np import seaborn as sns import networkx as nx import warnings warnings.filterwarnings('ignore') boldText = '\\033[1m' <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u0437\u0430\u0434\u0430\u0451\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446 1-3.<\/p>\n<p>  <b>1. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/b><\/p>\n<pre><code class=\"python\"> # \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c NProds = 3            #\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 NBuyers = 4           #\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 d = 50                  #\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u041f\u043e\u0440\u0442\u0443 BuyersMaxPrice = 100    #\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0446\u0435\u043d\u0430  # \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438 ProdIndex=[] for i in range(NProds):     ProdIndex.append('P'+ str(i+1))  ProdData = {'Possibilities': [890,534,1153],             'SupplyPort': [18,13,18],             'ProdCost': [12,21,10],             'PortPrice': [d,d,d],             'Overhead': [18+12,13+21,18+10]             }  Producers = pd.DataFrame(ProdData, ProdIndex)  # \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 BuyIndex = ['B1','B2','B3','B4'] BuyData = {'Scenario1': [78,121,94,85], 'Scenario2': [117,670,193,279]} Buyers = pd.DataFrame(BuyData, BuyIndex)  #\u0432\u044b\u0431\u043e\u0440 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f Scenario = Buyers.columns[0] # 0 - Scenario1                              # 1 - Scenario2 print(Scenario)  # \u0422\u0430\u0440\u0438\u0444\u044b \u043d\u0430 \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 RailData = {'P1':[14,23,21,42], 'P2':[26,10,19,36], 'P3':[15,38,18,15]} RailFares = pd.DataFrame(RailData, BuyIndex) totCost = RailFares + Producers['ProdCost'] <\/code><\/pre>\n<p>  \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b, \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0436\u0435\u043b\u0435\u0437\u043d\u043e\u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043e\u043a. \u042d\u0442\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u2013 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c, \u043a\u0430\u043a \u0440\u0430\u0437 \u043e\u043d \u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0435 \u043f\u0440\u0438\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043d\u0430\u0434 \u0434\u0440\u0443\u0433\u0438\u043c\u0438.<\/p>\n<pre><code class=\"python\"> minCostProd = np.zeros((NProds, NBuyers)).astype(int) for j in range(NBuyers):     min_idx = np.argmin(totCost.values[j,:])     minCostProd[min_idx, j] = totCost.values[j,min_idx]  minCostProd = pd.DataFrame(data=minCostProd, index=totCost.columns, columns=totCost.index)  # \u0422\u0430\u0440\u0438\u0444\u044b \u043d\u0430 \u0436\u0434 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u043e\u0442 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e + \u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f k = np.zeros((NProds, NBuyers)).astype(int) i=0 j=0 for prod, pcost in zip(RailFares, Producers['ProdCost']): # \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u043f\u043e Producers     j=0     for rfares in RailFares[prod]:         k[i,j] = rfares + pcost         j+=1     i+=1  <\/code><\/pre>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b, \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c.<\/p>\n<pre><code class=\"python\"> # \u0422\u0430\u0440\u0438\u0444\u044b \u043d\u0430 \u0436\u0434 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u0432 \u043f\u043e\u0440\u0442 + \u0441\u0435\u0431\u0435\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f  z = np.empty(NProds).astype(int) i=0 for SupplyPort, ProdCost in zip(Producers['SupplyPort'], Producers['ProdCost']):     z[i] = SupplyPort + ProdCost     i+=1  <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0433\u043e\u0434\u043d\u043e\u0439 \u0446\u0435\u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0432 \u043f\u044f\u0442\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0446\u0435\u043d\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u2013 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c.<\/p>\n<pre><code class=\"python\"> #\u041d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0432\u044b\u0433\u043e\u0434\u043d\u0430\u044f \u0446\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c ProdBestPrices = np.zeros((NProds, NBuyers)).astype(int)  for j in range(NBuyers):     i=0     for portPrice, supplyPort, supplyProd in zip(Producers['PortPrice'], Producers['SupplyPort'], k[:,j]): #       print(portPrice, supplyPort, supplyProd)         ProdBestPrices[i,j] = portPrice-supplyPort+1+supplyProd         i+=1  <\/code><\/pre>\n<p>  \u041d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0446\u0435\u043d \u0438 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0446\u0435\u043d\u0435, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0441\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0430\u0440 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u2013 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c. \u041d\u0443\u043b\u0438 \u0432 \u044d\u0442\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a \u0432 \u043f\u0430\u0440\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c, \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u2013 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043e\u043a.<\/p>\n<pre><code class=\"python\"> #\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u043f\u0440\u043e\u0441\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 h = np.zeros((NProds, NBuyers)).astype(int) for j in range(NBuyers):     min_idxs = np.argmin(ProdBestPrices[:,j])     h[min_idxs, j] = 1  <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 docplex \u043c\u043e\u0434\u0435\u043b\u044c Model, \u044f\u0432\u043b\u044f\u044e\u0449\u0443\u044e\u0441\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u044f\u0434\u0440\u043e\u043c \u043d\u0430\u0448\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  <b>2. \u041c\u043e\u0434\u0435\u043b\u044c<\/b><\/p>\n<pre><code class=\"python\"> from docplex.mp.model import Model mdl = dpx.model.Model(&quot;ChemProd&quot;)  <\/code><\/pre>\n<p>  \u0417\u0430\u0434\u0430\u0434\u0438\u043c \u0438\u0441\u043a\u043e\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"python\"> # \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u043e\u0442 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e # \u0441\u0442\u043e\u043b\u0431\u0435\u0446-\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \u0441\u0442\u0440\u043e\u043a\u0430-\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c x = mdl.integer_var_matrix(NProds, NBuyers, name=lambda ij: &quot;ProdVol_to_Buyer%d_%d&quot; %(ij[0], ij[1]))  # \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0446\u0435\u043d\u0443 \u0437\u0430 \u0442\u043e\u043d\u043d\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e # \u0441\u0442\u043e\u043b\u0431\u0435\u0446-\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c; \u0441\u0442\u0440\u043e\u043a\u0430-\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c y = mdl.integer_var_matrix(NProds, NBuyers, name=lambda ij: &quot;ProdPrice_to_Buyer%d_%d&quot; %(ij[0], ij[1]))  # \u0432\u0435\u043a\u0442\u043e\u0440 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 - \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u0435\u0440\u0435\u0432\u043d\u0437\u0451\u043d\u043d\u043e\u0435 \u0432 \u043f\u043e\u0440\u0442 p = mdl.integer_var_list(NProds, name='ProdVol_to_port')  <\/code><\/pre>\n<p>  <b>3. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438<\/b><\/p>\n<p>  1. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439<\/p>\n<pre><code class=\"python\"> # 1. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 for i, possib, cts_name in zip(range(NProds), Producers['Possibilities'], Producers['Possibilities'].index):     mdl.add_constraint(mdl.sum(x[i,j] for j in range(NBuyers)) + p[i] &lt;= possib, ctname='Possib'+cts_name)  <\/code><\/pre>\n<p>  2. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439<\/p>\n<pre><code class=\"python\"> # 2. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 for j, req, buyer in zip(range(NBuyers), Buyers[Scenario], Buyers[Scenario].index):     mdl.add_constraint(mdl.sum(x[i,j] for i in range(NProds)) == req,  ctname=buyer+'Need')  <\/code><\/pre>\n<p>  3. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0446\u0435\u043d\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430<\/p>\n<pre><code class=\"python\"> # 3. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0446\u0435\u043d\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 for i in range(NProds):     for j in range(NBuyers):         #mdl.add_constraints( [y[i,j] &lt;= BuyersMaxPrice, y[i,j] &gt;= 0], ['BuyersMaxPrice', 'BuyersMinPrice'])         mdl.add_constraint( y[i,j] == ProdBestPrices[i,j], 'ProdBestPrices')  <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 3\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0443 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0435\u0451 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<pre><code class=\"python\"> #\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c SalesBuyers = mdl.sum( (y[i,j]-k[i,j] )*x[i,j]*h[i,j] for i in range(NProds) for j in range(NBuyers) )  #\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 \u043f\u043e\u0440\u0442 SalesPort = mdl.sum( (d-z[i])*p[i] for i in range(NProds) ) #\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f mdl.maximize(SalesBuyers + SalesPort)  <\/code><\/pre>\n<p>  <b>4. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438<\/b><\/p>\n<pre><code class=\"python\"> %%time assert mdl.solve(), &quot;!!! Solve of the model fails&quot;  prodsVol = np.zeros((NProds, NBuyers)).astype(int) prodsPrice = np.zeros((NProds, NBuyers)).astype(int) VolPrice = np.zeros((NProds, NBuyers)).astype(int) VolPricePort = np.zeros((NProds, 1)).astype(int) for i in range(NProds):     #VolPricePort[i] = int((d - z[i])*p[i].solution_value)     VolPricePort[i] = int(p[i].solution_value*d)     for j in range(NBuyers):         prodsVol[i,j] = x[i,j].solution_value         prodsPrice[i,j] = y[i,j].solution_value         #VolPrice[i,j] = (y[i,j].solution_value - k[i,j])*x[i,j].solution_value         VolPrice[i,j] = y[i,j].solution_value*x[i,j].solution_value  #\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e VolData = dict(zip(ProdIndex, prodsVol)) DecisionVol = pd.DataFrame(VolData, BuyIndex) #\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043d \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043e\u0442 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0432 \u043f\u043e\u0440\u0442 VolPricePortData = dict(zip(ProdIndex, (VolPricePort))) DecisionVolPort = pd.DataFrame(VolPricePortData, index=['Pt']) #\u0426\u0435\u043d\u0430 \u0437\u0430 \u0442\u043e\u043d\u043d\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e PriceData = dict(zip(ProdIndex, prodsPrice)) DecisionPrice = pd.DataFrame(PriceData, BuyIndex) #\u041e\u0431\u044a\u0451\u043c \u043f\u0440\u043e\u0434\u0430\u0436 i-\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f j-\u043c\u0443 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044e \u0437\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u043c \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0442\u043e\u0432\u0430\u0440\u0430 VolPriceData = dict(zip(ProdIndex, VolPrice)) DecisionVolPrice = pd.DataFrame(VolPriceData, BuyIndex)  <\/code><\/pre>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0443\u044e \u043a\u0442\u043e, \u0443 \u043a\u043e\u0433\u043e \u0438 \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u0446\u0435\u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u044b\u043d\u043e\u043a \u043f\u0440\u0438\u0434\u0435\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u0438\u044f.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/4r\/_h\/sk\/4r_hskdhycw6vrcxnjjgz9ku24q.png\"><\/div>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0435\u0433\u043e \u0432 \u0432\u0438\u0434\u0435 \u0433\u0440\u0430\u0444\u0430, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043d\u0430 \u0440\u044b\u043d\u043a\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 networkx \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<pre><code class=\"python\"> G = nx.Graph() #\u041c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442 for p in ProdIndex:     G.add_edge(p, 'Pt', w=DecisionVolPort[p]['Pt'])      #\u041f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \/ \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438 for b in BuyIndex:     for p in ProdIndex:         G.add_edge(p, b, w=DecisionVolPrice[p][b])  nodeKeys = [] nodePos = [] num_buy = 0 num_prod = 0 for p in ProdIndex:         x_prod = int(-NProds\/2)+num_prod         num_prod+=1         nodeKeys.append(p)         nodeKeys.append('Pt')                  nodePos.append([x_prod,1])         nodePos.append([0,2])          for b in BuyIndex:     num_prod = 0     x_buy = int(-NBuyers\/2)+num_buy     num_buy+=1     for p in ProdIndex:         x_prod = int(-NProds\/2)+num_prod         num_prod+=1         nodeKeys.append(p)         nodeKeys.append(b)                  nodePos.append([x_prod,1])         nodePos.append([x_buy+0.5,0])                 pos = dict(zip(nodeKeys, nodePos))              elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d['w'] &gt; 0] esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d['w'] == 0]   plt.figure(figsize=(16, 8)) plt.subplot(1,2,1)  nx.draw_networkx_nodes(G, pos=pos, node_size=7000\/((NProds+NBuyers)\/2))  nx.draw_networkx_edges(G, pos=pos, edgelist=elarge, width=2, edge_color='black')  nx.draw_networkx_edges(G, pos=pos, edgelist=esmall, width=2, alpha=0.3, edge_color='gray', style='dashed')  edge_values = [] for (u, v, d) in G.edges(data=True):     if d['w']&gt;0:         edge_values.append(int(d['w']))          labels = dict(zip(elarge, edge_values))  nx.draw_networkx_edge_labels(G, pos=pos, edge_labels=labels, font_size=12, font_color='black')  # labels nx.draw_networkx_labels(G, pos=pos, font_size=70\/((NProds+NBuyers)\/2), font_color='white')  plt.axis('off') plt.subplot(1,2,2) plt.grid(True) sns.barplot(x=DecisionVolPrice.columns,             y=sumBuyPort,             palette=&quot;deep&quot;).set_title('\u0421\u0443\u043c\u043c\u0430\u0440\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u043f\u0440\u043e\u0434\u0430\u0436')  plt.show()  <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u0444 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u044b\u043d\u043a\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u041d\u0430 \u0440\u0451\u0431\u0440\u0430\u0445 \u0433\u0440\u0430\u0444\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043d\u0430 \u0438\u0445 \u0446\u0435\u043d\u0443, \u0430 \u0432 \u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445 \u0433\u0440\u0430\u0444\u0430 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0440\u044b\u043d\u043a\u0430: Pt \u2013 \u043c\u043e\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0440\u0442; P1-P3 \u2013 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0438; B1-B4 \u2013 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0438.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9v\/q_\/mt\/9vq_mt48wqe3-f72tdaadlfqkte.png\"><\/div>\n<p>  <b>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. <\/b><\/p>\n<p>  \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0412 \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0441\u043e\u0431\u0440\u0430\u043b \u0438 \u043e\u0431\u043e\u0431\u0449\u0438\u043b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0451\u043b \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0435\u0451 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  <b>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438.<\/b> <\/p>\n<p>  1. <a href=\"https:\/\/habr.com\/ru\/post\/335104\/\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 Python<\/a>;<br \/>  2. <a href=\"https:\/\/habr.com\/ru\/post\/330648\/\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Python<\/a>;<br \/>  3. \u0414\u044b\u0431\u0441\u043a\u0430\u044f \u0412.\u0412., \u0417\u0430\u0439\u0446\u0435\u0432 \u0415.\u0418., \u0421\u0435\u0440\u0433\u0435\u0435\u0432 \u0412.\u0418., \u0421\u0442\u0435\u0440\u043b\u0438\u0433\u043e\u0432\u0430 \u0410.\u041d. MBA \u041b\u043e\u0433\u0438\u0441\u0442\u0438\u043a\u0430. \u2013 \u041c.: \u042d\u043a\u0441\u043c\u043e, 2009;<br \/>  4. Avinash K. Dixit, Barry J. Nalebuff \u00abThe Art of Strategy: A Game Theorist&#8217;s Guide to Success in Business and Life\u00bb.<\/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=\"https:\/\/habr.com\/ru\/company\/accenture\/blog\/532382\/\"> https:\/\/habr.com\/ru\/company\/accenture\/blog\/532382\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mm\/ma\/xo\/mmmaxo649zjoyjvdgiwdgizzyw0.png\"><\/div>\n<p>  \u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u0443\u0437\u0438\u043d (Application Development Senior Analyst \u0432 Accenture), \u0438 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0434\u0435\u043b\u044e\u0441\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0435 \u043f\u0440\u0438\u0432\u0435\u043b \u043a \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u044e Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 DOcplex \u043e\u0442 IBM, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>  \u042f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043b\u0438\u0447\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 DOcplex \u043e\u0442 IBM. \u0415\u0441\u043b\u0438 \u0432\u043a\u0440\u0430\u0442\u0446\u0435, \u0442\u043e \u044d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044f\u043c, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u044b\u0445 \u0438 \u0441\u043f\u0440\u043e\u0441 \u0432\u0442\u043e\u0440\u044b\u0445. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0434\u0430\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 Python.  <\/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-314736","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/314736","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=314736"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/314736\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=314736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=314736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=314736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}