{"id":359380,"date":"2024-05-21T00:31:29","date_gmt":"2024-05-21T00:31:29","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=359380"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=359380","title":{"rendered":"<span>\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 pyomo<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/206\/c73\/944\/206c73944c37bfda739306575e4b4942.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/206\/c73\/944\/206c73944c37bfda739306575e4b4942.png\"\/><\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 (Hub Location Problem) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u043d\u044e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0438. \u042d\u0442\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u0440\u0438\u0441\u043a\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<h2>\u041e \u0437\u0430\u0434\u0430\u0447\u0435<\/h2>\n<p>\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435, \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <a href=\"https:\/\/support.kaspersky.ru\/sd-wan\/2.0\/250985#:~:text=%D0%A2%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F%20Hub%2Dand%2DSpoke%20%E2%80%93%20%D1%8D%D1%82%D0%BE%20%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F,%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0%20%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BD%D0%B8%D0%BC%D0%B8\" rel=\"noopener noreferrer nofollow\">Hub-and-Spoke<\/a> \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u0435\u0442\u0438 &#8212; \u0445\u0430\u0431\u0430. \u0425\u0430\u0431\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u044e, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u043a\u0443 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043d\u043e\u0433\u043e-\u043a\u043e-\u043c\u043d\u043e\u0433\u0438\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0445\u0430\u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\/\u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b-\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/779\/296\/645\/779296645e9b5e3fd8d9a4d58c5c0703.jpg\" alt=\"\u0421\u0435\u0442\u0438 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0438 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/779\/296\/645\/779296645e9b5e3fd8d9a4d58c5c0703.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0421\u0435\u0442\u0438 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0438 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0445\u0430\u0431\u043e\u0432 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0441\u0435\u0442\u0438 \u0445\u0430\u0431\u043e\u0432 (\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439\/\u0440\u0435\u0431\u0435\u0440 \u0441\u0435\u0442\u0438) \u0441 \u0446\u0435\u043b\u044c\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\/\u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<p>\u0412\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0439 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/clck.ru\/36QG8T\" rel=\"noopener noreferrer nofollow\">\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043d\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435<\/a> (\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430). \u041a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0445\u0430\u0431\u0430\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u043e\u043b\u0435\u0435 \u043f\u043b\u043e\u0442\u043d\u043e\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u0437\u043e\u0432);<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 &#171;\u043d\u0435\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438&#187; \u0438\u043b\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u044c\u044e.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445, \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0438 \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0430\u0432\u0438\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u0432 \u0438\u043b\u0438 \u0433\u0440\u0443\u0437\u043e\u0432, \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u0437\u043e\u0432, \u0441\u043b\u0443\u0436\u0431\u044b \u044d\u043a\u0441\u0442\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0435\u0442\u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u044d\u0439\u0441\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041f\u0440\u0438\u043c\u0435\u0440 \u0445\u0430\u0431\u043e\u0432 \u0443 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0430\u0432\u0438\u0430\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A3%D0%B7%D0%BB%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B0%D1%8D%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%82\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 1986 \u0433\u043e\u0434\u0443 \u041c\u043e\u0440\u0442\u043e\u043d \u041e&#8217;\u041a\u0435\u043b\u043b\u0438 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u043b\u0430 \u0435\u0435 \u0438 \u043d\u0430\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044e, \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f:<\/p>\n<ol>\n<li>\n<p>\u0423\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0441\u043f\u0440\u043e\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 \u043f\u0440\u044f\u043c\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0435 \u0445\u0430\u0431\u043e\u0432\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u0437\u0430\u0442\u0440\u0430\u0442) \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0431\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u043a\u0438\u0434\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438 (\u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha\" alt=\"\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b7\/7b7f9dbfea05c83784f8b85149852f08.svg\" width=\"auto\" height=\"auto\"\/>).<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f (3) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0442\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0432\u0430 \u0445\u0430\u0431\u0430.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c (single allocation) \u0438 \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0443\u0437\u043b\u0430\u0445 \u0441\u0435\u0442\u0438.<\/p>\n<h2>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/h2>\n<p>\u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0434\u043e\u0440\u043e\u0433\u043e \u0438 \u0434\u043e\u043b\u0433\u043e \u0430\u043f\u0440\u043e\u0431\u0438\u0440\u0443\u0435\u043c\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u0437\u0430\u0434\u0430\u0447\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 (Hub Location Problem) \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u0432\u0438\u0434\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \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. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0435, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0436\u0438\u0437\u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445. \u041c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438. \u0412 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (Campbell 1994, Skorin-Kapov et al., 1996), \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"O(n^4)\" alt=\"O(n^4)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/81\/813\/813eac21bcd081b4091d26c0acc401bb.svg\" width=\"auto\" height=\"auto\"\/> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438  <img decoding=\"async\" class=\"formula inline\" source=\"O(n^3)\" alt=\"O(n^3)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4a\/4a7\/4a7d22b39e93fbbcbe107e7a19e8bd34.svg\" width=\"auto\" height=\"auto\"\/> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0433\u0434\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"n\" alt=\"n\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b8\/7b8b965ad4bca0e41ab51de7b31363a1.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043a\u043e\u043b-\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438. \u0412 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u043c\u0435\u0435\u0442 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (Ernst and Krishnamoorthy 1996),  \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"O(n^3)\" alt=\"O(n^3)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/4a\/4a7\/4a7d22b39e93fbbcbe107e7a19e8bd34.svg\" width=\"auto\" height=\"auto\"\/> \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"O(n^2)\" alt=\"O(n^2)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9\/9f\/9f8\/9f84a66d88d24c3b1bc91df5b5346a13.svg\" width=\"auto\" height=\"auto\"\/> \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439. \u041d\u043e 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0411\u0435\u043d\u0434\u0435\u0440\u0441\u0430. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0430\u043b\u0430\u043d\u0441 \u0447\u0430\u0448\u0438 \u0432\u0435\u0441\u043e\u0432 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0431\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043c\u0435\u044e\u0442 \u043f\u0430\u0440\u0443 \u0441\u0445\u043e\u0436\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h2>\u041e\u0431\u0449\u0438\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/h2>\n<h3>\u0418\u043d\u0434\u0435\u043a\u0441\u044b<\/h3>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"N=\\{1, \\dots, n\\}\" alt=\"N=\\{1, \\dots, n\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f\/f4\/f49\/f4980dd9e8b47893d9e3f146a0247ff1.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"K \\subseteq N\" alt=\"K \\subseteq N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6\/69\/69b\/69bb08dd83412c6a0eb5fbb78d3f4ce1.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430;<\/p>\n<h3>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/h3>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"w_{ij}\" alt=\"w_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/32\/322\/322b227441558f0ed48aba836d0caf6f.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0432 \u0443\u0437\u0435\u043b <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"f_i\" alt=\"f_i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/59\/59b\/59bdf0ba696e13164c5a926386f23cb0.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0445\u0430\u0431\u0430 \u0432 \u0443\u0437\u043b\u0435 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"d_{ij}\" alt=\"d_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/a3\/a38\/a38dbe819cd26b5066df29fcda127e9f.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\chi\" alt=\"\\chi\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/ac\/acd\/acd0b9a53431f92783e0597d54d13fc9.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\alpha\" alt=\"\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b7\/7b7f9dbfea05c83784f8b85149852f08.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 (\u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438);<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\delta\" alt=\"\\delta\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/77\/77a\/77a3b715842b45e440a5bee15357ad29.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"O_i = \\sum_{j \\in N} w_{ij}\" alt=\"O_i = \\sum_{j \\in N} w_{ij}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/81\/817\/817bf9e1123b5960125a1b63ec7ed0e1.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043e\u0431\u0449\u0438\u0439 \u0438\u0441\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"D_i = \\sum_{j \\in N} w_{ji}\" alt=\"D_i = \\sum_{j \\in N} w_{ji}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b0\/b08\/b080f3c653bd52f670b2ba99a29e9859.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u043e\u0431\u0449\u0438\u0439 \u0441\u0442\u043e\u043a \u0432 \u0443\u0437\u0435\u043b <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"F_{ijkl} = w_{ij} (\\chi d_{ik} + \\alpha d_{kl} + \\delta d_{lj})\" alt=\"F_{ijkl} = w_{ij} (\\chi d_{ik} + \\alpha d_{kl} + \\delta d_{lj})\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d\/d3\/d30\/d30aa8c2329aa4aa2847f6d9946c09cb.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/> \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/2d\/2db\/2db95e8e1a9267b7a1188556b2013b33.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c, \u043a\u043e\u0433\u0434\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha &lt; \\chi\" alt=\"\\alpha &lt; \\chi\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5\/58\/58c\/58c9a38418d84db190f5488fb0a87c9d.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha &lt; \\delta\" alt=\"\\alpha &lt; \\delta\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/29\/29a\/29ade75a8b6f003af40f9491ebc3c413.svg\" width=\"auto\" height=\"auto\"\/>. \u0417\u0434\u0435\u0441\u044c <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha\" alt=\"\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b7\/7b7f9dbfea05c83784f8b85149852f08.svg\" width=\"auto\" height=\"auto\"\/> \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430.<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"z_{kk}\" alt=\"z_{kk}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/24\/240\/240963746314e506186dfb21ef8def16.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0435\u0441\u043b\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/> \u0432\u044b\u0431\u0440\u0430\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430;<\/p>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"z_{ik}\" alt=\"z_{ik}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/44\/443\/4434352cd0a9aae09d87926a944a5d40.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0443\u0437\u043b\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0441\u0435\u0442\u0438 \u043a \u0445\u0430\u0431\u0443 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ol>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c:<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{k \\in K} z_{ik} = 1, \\quad \\forall i \\in N\" alt=\"\\sum_{k \\in K} z_{ik} = 1, \\quad \\forall i \\in N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/eb\/ebb\/ebb0a656cb577e4c70bda51f42deabfc.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<ol start=\"2\">\n<li>\n<p>\u0421\u0432\u044f\u0437\u044c \u0443\u0437\u043b\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441 \u0445\u0430\u0431\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0443\u0437\u043b\u043e\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430:<\/p>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"z_{ik} \\le z_{kk}, \\quad \\forall i \\in N, k \\in K\" alt=\"z_{ik} \\le z_{kk}, \\quad \\forall i \\in N, k \\in K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/af\/afd\/afd5847d4e79e611572342a53b7dc06f.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<h2>\u041c\u043e\u0434\u0435\u043b\u044c 4-\u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/h2>\n<p>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 (<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/037722179500100X\" rel=\"noopener noreferrer nofollow\">Skorin-Kapov \u0438 \u0434\u0440. <\/a>, 1996).<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"x_{ijkl}\" alt=\"x_{ijkl}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/29\/291\/291760b3009bd22997aadd64be83c47e.svg\" width=\"auto\" height=\"auto\"\/> -\u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u0434\u043e\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/>, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/2d\/2db\/2db95e8e1a9267b7a1188556b2013b33.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0412\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0432 <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0445\u0430\u0431 (\u043f\u0435\u0440\u0432\u044b\u0439 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435):<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{l \\in K} x_{ijkl} = z_{ik}, \\quad \\forall i, j \\in N, k \\in K\" alt=\"\\sum_{l \\in K} x_{ijkl} = z_{ik}, \\quad \\forall i, j \\in N, k \\in K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0\/04\/047\/04716b3bae9275f701d6ce914574e104.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<ul>\n<li>\n<p>\u0412\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u0432 \u0443\u0437\u0435\u043b <img decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/36\/363\/363b122c528f54df4a0446b6bab05515.svg\" width=\"auto\" height=\"auto\"\/> \u0438\u0437 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u044d\u0442\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u0445\u0430\u0431 (\u0432\u0442\u043e\u0440\u043e\u0439 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435):<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{k \\in K} x_{ijkl} = z_{jl}, \\quad \\forall i, j \\in N, l \\in K\" alt=\"\\sum_{k \\in K} x_{ijkl} = z_{jl}, \\quad \\forall i, j \\in N, l \\in K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/e4\/e4a\/e4aee12ea00b92a48caa7b1ad2eb3c97.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f (1) \u0438 (2)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\min \\sum_k f_{k} z_{kk} + \\sum_{i, j \\in N} \\sum_{k,l \\in K} F_{ijkl}x_{ijkl}\" alt=\"\\min \\sum_k f_{k} z_{kk} + \\sum_{i, j \\in N} \\sum_{k,l \\in K} F_{ijkl}x_{ijkl}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d\/da\/da7\/da77970c16df1820b22c5ffa945a8043.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<h2>\u041c\u043e\u0434\u0435\u043b\u044c 3-\u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/h2>\n<p>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0442\u0440\u0435\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 (<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/S0966834996000113\" rel=\"noopener noreferrer nofollow\">Ernst A. T., Krishnamoorthy M.<\/a>, 1996)<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"y_{ikl}\" alt=\"y_{ikl}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4\/45\/45e\/45e606e4ee08081fff2c9808f96a05f5.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"i\" alt=\"i\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/86\/865\/865c0c0b4ab0e063e5caa3387c1a8741.svg\" width=\"auto\" height=\"auto\"\/> \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"l\" alt=\"l\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/2d\/2db\/2db95e8e1a9267b7a1188556b2013b33.svg\" width=\"auto\" height=\"auto\"\/>;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 (flow conservation constraint). \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0445\u0430\u0431\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"k\" alt=\"k\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8\/8c\/8ce\/8ce4b16b22b58894aa86c421e8759df3.svg\" width=\"auto\" height=\"auto\"\/>. \u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"O_ix_{ik}\" alt=\"O_ix_{ik}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/3e\/3e6\/3e6c0664e3dbf6db2945dca4dd63f8db.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{l \\in K} y_{ilk}\" alt=\"\\sum_{l \\in K} y_{ilk}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d\/db\/db6\/db6237b200310e6a12ef4737ea46ae7a.svg\" width=\"auto\" height=\"auto\"\/>, \u043f\u043e\u0442\u043e\u043a \u043e\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438 \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0445\u0430\u0431\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{j \\in N} w_{ij}x_{jk}\" alt=\"\\sum_{j \\in N} w_{ij}x_{jk}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a\/ae\/ae5\/ae5d9ef54aecb33cbdd62c31d13a075d.svg\" width=\"auto\" height=\"auto\"\/> \u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\sum_{l \\in K} y_{ikl}\" alt=\"\\sum_{l \\in K} y_{ikl}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e\/ee\/eef\/eefa3eeadb2185e1e97c46358a28f85e.svg\" width=\"auto\" height=\"auto\"\/>, \u043f\u043e\u0442\u043e\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044e \u0438 \u043f\u043e\u0442\u043e\u043a \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0445\u0430\u0431 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0415\u0441\u043b\u0438 \u0441\u0432\u0435\u0441\u0442\u0438 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438:<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"O_ix_{ik} + \\sum_{l \\in K} y_{ilk} = \\sum_{j \\in N} w_{ij}x_{jk} + \\sum_{l \\in K} y_{ikl}, \\quad \\forall i \\in N, k \\in K\" alt=\"O_ix_{ik} + \\sum_{l \\in K} y_{ilk} = \\sum_{j \\in N} w_{ij}x_{jk} + \\sum_{l \\in K} y_{ikl}, \\quad \\forall i \\in N, k \\in K\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1\/13\/13d\/13dcf67009fe45d947f7820e8e223260.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<ul>\n<li>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f (1) \u0438 (2)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"formula inline\" source=\"\\min \\sum_k f_{k} z_{kk} + \\sum_{i \\in N, k \\in K} (\\chi O_i + \\delta D_i)d_{ik}z_{ik} + \\sum_{k,l \\in K} \\alpha d_{kl}y_{ikl}\" alt=\"\\min \\sum_k f_{k} z_{kk} + \\sum_{i \\in N, k \\in K} (\\chi O_i + \\delta D_i)d_{ik}z_{ik} + \\sum_{k,l \\in K} \\alpha d_{kl}y_{ikl}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3\/33\/337\/3372e955c4e31d164572074ffc3aad52.svg\" width=\"auto\" height=\"auto\"\/><\/p>\n<h2>\u0414\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430\u043c\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, \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Greedy_randomized_adaptive_search_procedure\" rel=\"noopener noreferrer nofollow\">GRASP<\/a>) \u0438\u043b\u0438 \u043c\u0435\u0442\u0430-\u044d\u0432\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438. \u041e\u0446\u0435\u043d\u043a\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438, \u0430 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0432 \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u044f\u0445 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u044b:<\/p>\n<ul>\n<li>\n<p>CAB (Civil Aeronautic Board). \u0414\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u043e\u0439 \u0430\u0432\u0438\u0430\u0446\u0438\u0438 \u0421\u0428\u0410: \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a \u0430\u0432\u0438\u0430\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 25 \u0433\u043e\u0440\u043e\u0434\u0430\u043c\u0438 \u0421\u0428\u0410, 1970 \u0433\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p>AP (Australia Post). \u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 200 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043e\u043a\u0440\u0443\u0433\u043e\u0432 \u0432 \u0421\u0438\u0434\u043d\u0435\u0435, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>TR (Turkish Network). \u041f\u043e\u0442\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 81 \u0433\u043e\u0440\u043e\u0434\u043e\u043c \u0422\u0443\u0440\u0446\u0438\u0438; \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432<a href=\"http:\/\/people.brunel.ac.uk\/~mastjjb\/jeb\/orlib\/phubinfo.html\" rel=\"noopener noreferrer nofollow\"> OR Library by J.E. Beasley<\/a>.<\/p>\n<h2>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439<\/h2>\n<p>\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u043c \u0432 python \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pyomo. <a href=\"https:\/\/www.pyomo.org\/\" rel=\"noopener noreferrer nofollow\">Pyomo<\/a> &#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0442\u0434\u0430\u0434\u0438\u043c \u043d\u0430 \u043e\u0442\u043a\u0443\u043f \u0441\u043e\u043b\u0432\u0435\u0440\u0443 <a href=\"https:\/\/github.com\/coin-or\/Cbc\" rel=\"noopener noreferrer nofollow\">CBC<\/a>, \u0442\u0430\u043a\u0436\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u043b\u044f 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0438 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0443\u0437\u043b\u0430 \u0441\u0435\u0442\u0438 \u043a \u0445\u0430\u0431\u0443 (single allocation). \u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0443 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 CAB. \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430 \u0441\u0435\u0442\u0438 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0445\u0430\u0431\u0430, \u0442\u043e \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u0437 \u0443\u0437\u043b\u0430). \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0442\u043e\u043a\u0438 \u0441\u0435\u0442\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0440\u0430\u0432\u043d\u044f\u043b\u0430\u0441\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0435.<\/p>\n<pre><code class=\"python\"># \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 pyomo \u0438 \u0441\u043e\u043b\u0432\u0435\u0440\u0430 cbc %pip install -q pyomo %apt-get install -y -qq coinor-cbc <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 import pandas as pd import numpy as np  # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Civil Aeronautic Boards df_cab = pd.read_csv(\"https:\/\/raw.githubusercontent.com\/Lozkins\/mos\/master\/data\/04_hlp_cab.csv\", sep=\";\", encoding=\"cp1251\")  # \u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0445\u0430\u0431\u0430 df_f = df_cab.groupby(\"i\", as_index=False)[\"w\"].sum() df_f = df_f.set_index([\"i\"]) df_f[\"f\"] = 15 * np.log10(df_f[\"w\"]) dct_f = df_f.to_dict()[\"f\"]  # \u041d\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a\u043e\u0432 df_cab[\"w\"] = df_cab[\"w\"] \/ df_cab[\"w\"].sum()  # \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438 alpha = 0.4 <\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 from pyomo.environ import * from pyomo.opt import SolverStatus, TerminationCondition  # \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 i-k-l-j df_tmp = df_cab[[\"i\", \"j\", \"c\"]].copy() df_F = df_tmp.set_axis([\"i\", \"k\", \"c_ik\"], axis=1).merge(df_tmp.set_axis([\"l\", \"j\", \"c_lj\"], axis=1), how=\"cross\") df_F = df_F.merge(df_tmp.set_axis([\"k\", \"l\", \"c_kl\"], axis=1), how=\"inner\", on=[\"k\", \"l\"]) df_F = df_F.merge(df_cab, how=\"inner\", on=[\"i\", \"j\"]) df_F[\"F\"] = df_F[\"w\"] * (df_F[\"c_ik\"] + alpha * df_F[\"c_kl\"] + df_F[\"c_lj\"]) df_F = df_F.set_index([\"i\", \"j\", \"k\", \"l\"]) dct_F = df_F.to_dict()[\"F\"]  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 model = ConcreteModel()  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0437\u043b\u043e\u0432 \u0441\u0435\u0442\u0438 model.nodes = RangeSet(1, df_cab[\"i\"].max())  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 model.z = Var(model.nodes, model.nodes, initialize=0, within=Binary) model.x = Var(model.nodes, model.nodes, model.nodes, model.nodes, initialize=0, bounds=(0,1), within=Reals)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c def rule_single_hub(model, i):   return sum(model.z[i, k] for k in model.nodes) == 1 model.constr_sh = Constraint(model.nodes, rule=rule_single_hub)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0421\u0432\u044f\u0437\u044c \u0443\u0437\u043b\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441 \u0445\u0430\u0431\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0443\u0437\u043b\u043e\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430 def rule_if_hub(model, i, k):   return model.z[i, k] &lt;= model.z[k, k] model.constr_ih = Constraint(model.nodes, model.nodes, rule=rule_if_hub)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441 \u0443\u0437\u043b\u0430 i \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0445\u0430\u0431 def rule_route_hub_first(model, i, j, k):   return sum(model.x[i, j, k, l] for l in model.nodes) == model.z[i, k] model.constr_rhf = Constraint(model.nodes, model.nodes, model.nodes, rule=rule_route_hub_first)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435:  \u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u0432 \u0443\u0437\u0435\u043b j \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u044d\u0442\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u0445\u0430\u0431 def rule_route_hub_second(model, i, j, l):   return sum(model.x[i, j, k, l] for k in model.nodes) == model.z[j, l] model.constr_rhs = Constraint(model.nodes, model.nodes, model.nodes, rule=rule_route_hub_second)  # \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f def rule_obj(model):   sum_route_costs = sum(dct_F[i, k, l, j] * model.x[i, k, l, j] for i, j, k, l in dct_F)   sum_hub_install_costs = sum(dct_f[k] * model.z[k, k] for k in dct_f)   return sum_route_costs + sum_hub_install_costs model.obj = Objective(rule=rule_obj, sense=minimize)  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u043b\u0432\u0435\u0440\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 solver = SolverFactory('cbc', executable='\/usr\/bin\/cbc') results = solver.solve(model, tee=True)  if (results.solver.status == SolverStatus.ok) and (results.solver.termination_condition == TerminationCondition.optimal):   # \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b   trans_costs = value(sum(dct_F[i, k, l, j] * model.x[i, k, l, j] for i, j, k, l in dct_F))   print(\"\u041d\u0430\u0439\u0434\u0435\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.\")   print(f\"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: {round(value(model.obj), 2)}\")   print(f\"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b: {round(trans_costs, 2)}\") elif results.solver.termination_condition == TerminationCondition.infeasible:   print(\"\u041d\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438: infeasible\") else:   print(str(results.solver))  # \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 df_cab[\"allocation\"] = df_cab.apply(lambda x: value(model.z[x.i, x.j]), axis=1)  # \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0443\u0437\u043b\u043e\u0432 \u043a \u0445\u0430\u0431\u0430\u043c df_allocation = df_cab[df_cab[\"allocation\"] == 1]  # \u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0445\u0430\u0431\u044b hubs = df_allocation[\"j\"].unique()  # 450 sec <\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 from pyomo.environ import * from pyomo.opt import SolverStatus, TerminationCondition  # \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 O_i, D_j \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0440\u043e\u0441\u0430 \u0438 \u0437\u0430\u0442\u0440\u0430\u0442 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u0438 df_o = df_cab.groupby(\"i\")[\"w\"].sum() dct_o = df_o.to_dict() df_d = df_cab.groupby(\"j\")[\"w\"].sum() dct_d = df_d.to_dict() df_w = df_cab.set_index([\"i\", \"j\"]) dct_w = df_w.to_dict()[\"w\"] dct_c = df_w.to_dict()[\"c\"]  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 model = ConcreteModel()  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0437\u043b\u043e\u0432 \u0441\u0435\u0442\u0438 model.nodes = RangeSet(1, df_cab[\"i\"].max())  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 model.z = Var(model.nodes, model.nodes, initialize=0, within=Binary) model.y = Var(model.nodes, model.nodes, model.nodes, initialize=0, bounds=(0,1), within=Reals)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c def rule_single_hub(model, i):   return sum(model.z[i, k] for k in model.nodes) == 1 model.constr_sh = Constraint(model.nodes, rule=rule_single_hub)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0421\u0432\u044f\u0437\u044c \u0443\u0437\u043b\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441 \u0445\u0430\u0431\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0443\u0437\u043b\u043e\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430 def rule_if_hub(model, i, k):   return model.z[i, k] &lt;= model.z[k, k] model.constr_ih = Constraint(model.nodes, model.nodes, rule=rule_if_hub)  # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: \u0411\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 def rule_balance(model, i, k):   lhs = sum(model.y[i, k, l] for l in model.nodes) - sum(model.y[i, l, k] for l in model.nodes)   rhs = dct_o[i] * model.z[i, k] - sum(dct_w[i, j] * model.z[j, k] for j in model.nodes)   return lhs == rhs model.constr_b = Constraint(model.nodes, model.nodes, rule=rule_balance)  # \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f def rule_obj(model):   sum_to_hub_costs = sum((dct_o[i] + dct_d[i]) * dct_c[i, k] * model.z[i, k] for i, k in dct_w)   sum_between_hubs = sum(alpha * dct_c[k, l] * model.y[i, k, l] for i, k in dct_w for l in model.nodes)   sum_hub_install_costs = sum(dct_f[k] * model.z[k, k] for k in dct_f)   return sum_hub_install_costs + sum_to_hub_costs + sum_between_hubs model.obj = Objective(rule=rule_obj, sense=minimize)  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u043b\u0432\u0435\u0440\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 solver = SolverFactory('cbc', executable='\/usr\/bin\/cbc') results = solver.solve(model, tee=True)  if (results.solver.status == SolverStatus.ok) and (results.solver.termination_condition == TerminationCondition.optimal):   # \u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b   sum_to_hub_costs = value(sum((dct_o[i] + dct_d[i]) * dct_c[i, k] * model.z[i, k] for i, k in dct_w))   sum_between_hubs = value(sum(alpha * dct_c[k, l] * model.y[i, k, l] for i, k in dct_w for l in model.nodes))   trans_costs = sum_to_hub_costs + sum_between_hubs   print(\"\u041d\u0430\u0439\u0434\u0435\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.\")   print(f\"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: {round(value(model.obj), 2)}\")   print(f\"\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b: {round(trans_costs, 2)}\") elif results.solver.termination_condition == TerminationCondition.infeasible:   print(\"\u041d\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438: infeasible\") else:   print(str(results.solver))  # \u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 df_cab[\"allocation\"] = df_cab.apply(lambda x: value(model.z[x.i, x.j]), axis=1)  # \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0443\u0437\u043b\u043e\u0432 \u043a \u0445\u0430\u0431\u0430\u043c df_allocation = df_cab[df_cab[\"allocation\"] == 1]  # \u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0445\u0430\u0431\u044b hubs = df_allocation[\"j\"].unique()  # 18 sec <\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/h2>\n<p>\u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0438 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c, \u043d\u043e \u0437\u0430 \u0440\u0430\u0437\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f: ~450 \u0438 ~18 \u0441\u0435\u043a\u0443\u043d\u0434 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 1133.54, \u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0434\u0438\u0441\u043a\u043e\u043d\u0442\u0430 <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha\" alt=\"\\alpha\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7\/7b\/7b7\/7b7f9dbfea05c83784f8b85149852f08.svg\" width=\"auto\" height=\"auto\"\/> \u0440\u0430\u0432\u043d\u044b 794.56, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0445\u0430\u0431\u043e\u0432 \u043f\u0440\u0438 <img decoding=\"async\" class=\"formula inline\" source=\"\\alpha = 4\" alt=\"\\alpha = 4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2\/25\/253\/253743d2bc60c0a9403d1e12ed243a44.svg\" width=\"auto\" height=\"auto\"\/> &#8212; \u044d\u0442\u043e \u0443\u0437\u043b\u044b <img decoding=\"async\" class=\"formula inline\" source=\"\\{1, 18,  4, 12\\}\" alt=\"\\{1, 18,  4, 12\\}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b\/b7\/b77\/b777543632821b9b6433ff6680041a19.svg\" width=\"auto\" height=\"auto\"\/>.<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 &#8212; 31875 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 391250 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0420\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 &#8212; 1875 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 15625 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u044f\u0432\u043d\u043e\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043e \u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0438 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/f74\/397\/a08\/f74397a0839d7aacda09a2f56b1d6064.png\" alt=\"\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 CAB\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f74\/397\/a08\/f74397a0839d7aacda09a2f56b1d6064.png\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 CAB<\/figcaption><\/div>\n<\/figure>\n<h2>\u042d\u0444\u0444\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430<\/h2>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0441\u043a\u0438\u0434\u043a\u0430 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438. \u042d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0445\u043e\u0434 \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0443\u0447\u0435\u0442\u0430 \u0441\u043a\u0438\u0434\u043a\u0438 (\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043a\u043e\u043d\u0442) \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044f\u043c:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u043b\u0438 \u043a\u0443\u0441\u043e\u0447\u043d\u043e-\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043a\u0438\u0434\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (\u043a\u0443\u0441\u043e\u0447\u043d\u043e-\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f);<\/p>\n<\/li>\n<li>\n<p>\u0423\u0447\u0435\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u0438 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/62f\/09f\/ecb\/62f09fecb394a194c578be9a4118e828.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/62f\/09f\/ecb\/62f09fecb394a194c578be9a4118e828.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u0412\u0430\u0440\u0438\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a<\/h2>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0432 1990-\u044b\u0445 \u0433\u0433., \u0441 \u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0430\u0441\u044c. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f: \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u041a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0437\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0441\u0442\u0430\u0442\u044c \u0445\u0430\u0431\u0430\u043c\u0438. \u0423\u0447\u0435\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0445\u0430\u0431\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0432\u044f\u0437\u0438: \u0441\u0432\u044f\u0437\u044c \u0441 \u043e\u0434\u043d\u0438\u043c, \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0438\u043b\u0438 r-\u0441\u0432\u044f\u0437\u0435\u0439 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438 (single-, multiple-, r-allocation). \u0414\u043e\u043f\u0443\u0441\u043a \u043f\u0440\u044f\u043c\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439, \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0442\u043e\u043a\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0435\u0442\u044c \u0445\u0430\u0431\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u044b\u043c\/\u043d\u0435\u043f\u043e\u043b\u043d\u044b\u043c \u0433\u0440\u0430\u0444\u043e\u043c, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0442\u0438\u043f\u0430 \u0437\u0432\u0435\u0437\u0434\u0430, \u043a\u043e\u043b\u044c\u0446\u0430, \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u0443\u044e \u0438\u043b\u0438 \u0434\u0440. \u0423\u0447\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 (\u0440\u0430\u0437\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430, \u043a\u0430\u0431\u0435\u043b\u044f).<\/p>\n<\/li>\n<\/ul>\n<p>\u041a \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u043c \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0441\u0430\u043c\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 (\u0441\u043f\u0440\u043e\u0441, \u0437\u0430\u0442\u0440\u0430\u0442\u044b, \u0432\u0440\u0435\u043c\u044f);<\/p>\n<\/li>\n<li>\n<p>\u0420\u043e\u0431\u0430\u0441\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435\/\u043c\u043d\u043e\u0433\u043e\u043f\u0435\u0440\u0438\u043e\u0434\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0437\u0430\u0442\u043e\u0440\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0441 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u0431\u044b\u043b\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u043d\u044e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 (MIP) \u0438 \u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0432 \u0441\u0440\u0435\u0434\u0435 Pyomo \u043d\u0430 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 Civil Aeronautic Board (CAB), \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u043b\u0432\u0435\u0440\u0430 cbc.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432: <a href=\"http:\/\/people.brunel.ac.uk\/~mastjjb\/jeb\/orlib\/phubinfo.html\" rel=\"noopener noreferrer nofollow\">OR Library by J.E. Beasley<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0377221720308432?casa_token=6eJdXpT9bcsAAAAA:5ZP55CgzvXugcwqf623aj3iJU-aJsrBMdXKZDavFeR_BCKXsVm-XxrbMqBeF0NFi58FysbFSww\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u0437\u043e\u0440<\/a> \u0437\u0430\u0434\u0430\u0447 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/765116\/\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f<\/a> \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e \u0445\u0430\u043a\u0430\u043c \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<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/Lozkins\/mos\/blob\/master\/04_Hub_Location.ipynb\" rel=\"noopener noreferrer nofollow\">\u0421\u0441\u044b\u043b\u043a\u0430<\/a> \u043d\u0430 Jupyter Notebook.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/772012\/\"> https:\/\/habr.com\/ru\/articles\/772012\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"\"><\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 (Hub Location Problem) \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0443\u0440\u043e\u0432\u043d\u044e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0438. \u042d\u0442\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0431\u0435\u0437 \u0440\u0438\u0441\u043a\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<h2>\u041e \u0437\u0430\u0434\u0430\u0447\u0435<\/h2>\n<p>\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435, \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 <a href=\"https:\/\/support.kaspersky.ru\/sd-wan\/2.0\/250985#:~:text=%D0%A2%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F%20Hub%2Dand%2DSpoke%20%E2%80%93%20%D1%8D%D1%82%D0%BE%20%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F,%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0%20%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BD%D0%B8%D0%BC%D0%B8\" rel=\"noopener noreferrer nofollow\">Hub-and-Spoke<\/a> \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u0435\u0439. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u0435\u0442\u0438 &#8212; \u0445\u0430\u0431\u0430. \u0425\u0430\u0431\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u044e, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u0430\u043b\u043a\u0443 \u0432 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043c\u043d\u043e\u0433\u043e-\u043a\u043e-\u043c\u043d\u043e\u0433\u0438\u043c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0445\u0430\u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c\/\u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b-\u0432\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.<\/p>\n<figure class=\"\">\n<div><figcaption>\u0421\u0435\u0442\u0438 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0438 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0445\u0430\u0431\u043e\u0432 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0441\u0435\u0442\u0438 \u0445\u0430\u0431\u043e\u0432 (\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439\/\u0440\u0435\u0431\u0435\u0440 \u0441\u0435\u0442\u0438) \u0441 \u0446\u0435\u043b\u044c\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\/\u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<p>\u0412\u044b\u0434\u0435\u043b\u044f\u044e\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0439 \u0441 \u0445\u0430\u0431\u0430\u043c\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/clck.ru\/36QG8T\" rel=\"noopener noreferrer nofollow\">\u042d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043d\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435<\/a> (\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430). \u041a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0445\u0430\u0431\u0430\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u0438\u0437\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u043e\u043b\u0435\u0435 \u043f\u043b\u043e\u0442\u043d\u043e\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u0437\u043e\u0432);<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 &#171;\u043d\u0435\u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438&#187; \u0438\u043b\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0437\u0430 \u0441\u0447\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043e\u043a;<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u044c\u044e.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0432 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0445, \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0445 \u0438 \u0442\u0435\u043b\u0435\u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0430\u0432\u0438\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u0432 \u0438\u043b\u0438 \u0433\u0440\u0443\u0437\u043e\u0432, \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u043a\u0438 \u0441\u0431\u043e\u0440\u043d\u044b\u0445 \u0433\u0440\u0443\u0437\u043e\u0432, \u0441\u043b\u0443\u0436\u0431\u044b \u044d\u043a\u0441\u0442\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0435\u0442\u0438 \u043c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u044d\u0439\u0441\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041f\u0440\u0438\u043c\u0435\u0440 \u0445\u0430\u0431\u043e\u0432 \u0443 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0430\u0432\u0438\u0430\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A3%D0%B7%D0%BB%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B0%D1%8D%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%82\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 1986 \u0433\u043e\u0434\u0443 \u041c\u043e\u0440\u0442\u043e\u043d \u041e&#8217;\u041a\u0435\u043b\u043b\u0438 \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0440\u0435\u0434\u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u043b\u0430 \u0435\u0435 \u0438 \u043d\u0430\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044e, \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f:<\/p>\n<ol>\n<li>\n<p>\u0423\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u0430 \u0441\u043f\u0440\u043e\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 \u043f\u0440\u044f\u043c\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0435 \u0445\u0430\u0431\u043e\u0432\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u0437\u0430\u0442\u0440\u0430\u0442) \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0443 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0431\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u043a\u0438\u0434\u043a\u0438 \u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438 (\u0447\u0430\u0441\u0442\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a ).<\/p>\n<\/li>\n<\/ol>\n<p>\u0421\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f (3) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043f\u043e\u0442\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0432\u0430 \u0445\u0430\u0431\u0430.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c (single allocation) \u0438 \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0443\u0437\u043b\u0430\u0445 \u0441\u0435\u0442\u0438.<\/p>\n<h2>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c<\/h2>\n<p>\u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044e \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0431\u0435\u0437\u0443\u043c\u043d\u043e \u0434\u043e\u0440\u043e\u0433\u043e \u0438 \u0434\u043e\u043b\u0433\u043e \u0430\u043f\u0440\u043e\u0431\u0438\u0440\u0443\u0435\u043c\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u0437\u0430\u0434\u0430\u0447\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 (Hub Location Problem) \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0432 \u0432\u0438\u0434\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \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. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0435, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0436\u0438\u0437\u043d\u0435\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445. \u041c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438. \u0412 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (Campbell 1994, Skorin-Kapov et al., 1996), \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438   \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439, \u0433\u0434\u0435  &#8212; \u043a\u043e\u043b-\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438. \u0412 \u0434\u0440\u0443\u0433\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u043c\u0435\u0435\u0442 3 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (Ernst and Krishnamoorthy 1996),  \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438  \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438  \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439. \u041d\u043e 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0411\u0435\u043d\u0434\u0435\u0440\u0441\u0430. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0431\u0430\u043b\u0430\u043d\u0441 \u0447\u0430\u0448\u0438 \u0432\u0435\u0441\u043e\u0432 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c \u0437\u0430\u0434\u0430\u0447\u0438. \u041e\u0431\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043c\u0435\u044e\u0442 \u043f\u0430\u0440\u0443 \u0441\u0445\u043e\u0436\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u043e\u0431\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h2>\u041e\u0431\u0449\u0438\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/h2>\n<h3>\u0418\u043d\u0434\u0435\u043a\u0441\u044b<\/h3>\n<p> &#8212; \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438;<\/p>\n<p> &#8212; \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430;<\/p>\n<h3>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/h3>\n<p> &#8212; \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430  \u0432 \u0443\u0437\u0435\u043b ;<\/p>\n<p> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0445\u0430\u0431\u0430 \u0432 \u0443\u0437\u043b\u0435 ;<\/p>\n<p> &#8212; \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438  \u0438 ;<\/p>\n<p> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430;<\/p>\n<p> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 (\u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438);<\/p>\n<p> &#8212; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430;<\/p>\n<p> &#8212; \u043e\u0431\u0449\u0438\u0439 \u0438\u0441\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430 ;<\/p>\n<p> &#8212; \u043e\u0431\u0449\u0438\u0439 \u0441\u0442\u043e\u043a \u0432 \u0443\u0437\u0435\u043b ;<\/p>\n<p> &#8212; \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u0438\u0437  \u0432  \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b  \u0438 ;<\/p>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c, \u043a\u043e\u0433\u0434\u0430  \u0438 . \u0417\u0434\u0435\u0441\u044c  \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430.<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p> &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 1, \u0435\u0441\u043b\u0438  \u0432\u044b\u0431\u0440\u0430\u043d \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430;<\/p>\n<p> &#8212; \u0431\u0438\u043d\u0430\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0443\u0437\u043b\u0430  \u0441\u0435\u0442\u0438 \u043a \u0445\u0430\u0431\u0443 ;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ol>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u0438 \u0441\u0432\u044f\u0437\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0445\u0430\u0431\u043e\u043c:<\/p>\n<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>\n<p>\u0421\u0432\u044f\u0437\u044c \u0443\u0437\u043b\u043e\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0441 \u0445\u0430\u0431\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0443\u0437\u043b\u043e\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0445\u0430\u0431\u0430:<\/p>\n<\/li>\n<\/ol>\n<h2>\u041c\u043e\u0434\u0435\u043b\u044c 4-\u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/h2>\n<p>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 (<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/037722179500100X\" rel=\"noopener noreferrer nofollow\">Skorin-Kapov \u0438 \u0434\u0440. <\/a>, 1996).<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p> -\u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u0434\u043e\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u0437  \u0432 , \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b  \u0438 ;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0412\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430  \u0432  \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0445\u0430\u0431 (\u043f\u0435\u0440\u0432\u044b\u0439 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435):<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0412\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u0432 \u0443\u0437\u0435\u043b  \u0438\u0437  \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u044d\u0442\u0438\u043c \u0443\u0437\u043b\u043e\u043c \u0445\u0430\u0431 (\u0432\u0442\u043e\u0440\u043e\u0439 \u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435):<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f (1) \u0438 (2)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<h2>\u041c\u043e\u0434\u0435\u043b\u044c 3-\u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/h2>\n<p>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0442\u0440\u0435\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438 (<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/abs\/pii\/S0966834996000113\" rel=\"noopener noreferrer nofollow\">Ernst A. T., Krishnamoorthy M.<\/a>, 1996)<\/p>\n<h3>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h3>\n<p> &#8212; \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u0443\u0437\u043b\u0430  \u0447\u0435\u0440\u0435\u0437 \u0445\u0430\u0431\u044b  \u0438 ;<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 (flow conservation constraint). \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0445\u0430\u0431\u0430 . \u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438  \u0438 , \u043f\u043e\u0442\u043e\u043a \u043e\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438 \u043f\u043e\u0442\u043e\u043a \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0445\u0430\u0431\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0438  \u0438 , \u043f\u043e\u0442\u043e\u043a \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043a \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044e \u0438 \u043f\u043e\u0442\u043e\u043a \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0445\u0430\u0431 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0415\u0441\u043b\u0438 \u0441\u0432\u0435\u0441\u0442\u0438 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438:<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041e\u0431\u0449\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f (1) \u0438 (2)<\/p>\n<\/li>\n<\/ul>\n<h3>\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u041c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0442\u0440\u0430\u0442 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u0430 \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<h2>\u0414\u0430\u043d\u043d\u044b\u0435<\/h2>\n<p>\u0417\u0430\u0434\u0430\u0447\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430\u043c\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, \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u044d\u0432\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Greedy_randomized_adaptive_search_procedure\" rel=\"noopener noreferrer nofollow\">GRASP<\/a>) \u0438\u043b\u0438 \u043c\u0435\u0442\u0430-\u044d\u0432\u0440\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438. \u041e\u0446\u0435\u043d\u043a\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440). \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0430\u043a\u0436\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438, \u0430 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0432 \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u044f\u0445 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u044b:<\/p>\n<ul>\n<li>\n<p>CAB (Civil Aeronautic Board). \u0414\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u0435\u0442\u0430 \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u043e\u0439 \u0430\u0432\u0438\u0430\u0446\u0438\u0438 \u0421\u0428\u0410: \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a \u0430\u0432\u0438\u0430\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 25 \u0433\u043e\u0440\u043e\u0434\u0430\u043c\u0438 \u0421\u0428\u0410, 1970 \u0433\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p>AP (Australia Post). \u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 200 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043e\u043a\u0440\u0443\u0433\u043e\u0432 \u0432 \u0421\u0438\u0434\u043d\u0435\u0435, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>TR (Turkish Network). \u041f\u043e\u0442\u043e\u043a\u0438 \u043c\u0435\u0436\u0434\u0443 81 \u0433\u043e\u0440\u043e\u0434\u043e\u043c \u0422\u0443\u0440\u0446\u0438\u0438; \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0431\u043e\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432<a href=\"http:\/\/people.brunel.ac.uk\/~mastjjb\/jeb\/orlib\/phubinfo.html\" rel=\"noopener noreferrer nofollow\"> OR Library by J.E. Beasley<\/a>.<\/p>\n<h2>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439<\/h2>\n<p>\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u043c \u0432 python \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Pyomo. <a href=\"https:\/\/www.pyomo.org\/\" rel=\"noopener noreferrer nofollow\">Pyomo<\/a> &#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u043d\u0430 \u0431\u0430\u0437\u0435 Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0442\u0434\u0430\u0434\u0438\u043c \u043d\u0430 \u043e\u0442\u043a\u0443\u043f \u0441\u043e\u043b\u0432\u0435\u0440\u0443 <a href=\"https:\/\/github.com\/coin-or\/Cbc\" rel=\"noopener noreferrer nofollow\">CBC<\/a>, \u0442\u0430\u043a\u0436\u0435 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u043b\u044f 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0438 3-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0445\u0430\u0431\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u043e\u0439 \u0443\u0437\u043b\u0430 \u0441\u0435\u0442\u0438 \u043a \u0445\u0430\u0431\u0443 (single allocation). \u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0443 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 CAB. \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430 \u0441\u0435\u0442\u0438 \u0434\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0445\u0430\u0431\u0430, \u0442\u043e \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0439 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0438\u0437 \u0443\u0437\u043b\u0430). \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0442\u043e\u043a\u0438 \u0441\u0435\u0442\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0443\u043c\u043c\u0430 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0440\u0430\u0432\u043d\u044f\u043b\u0430\u0441\u044c \u0435\u0434\u0438\u043d\u0438\u0446\u0435.<\/p>\n<pre><code class=\"python\"># \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 pyomo \u0438 \u0441\u043e\u043b\u0432\u0435\u0440\u0430 cbc %pip install -q pyomo %apt-get install -y -qq coinor-cbc <\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 import pandas as pd import numpy as np  # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Civil Aeronautic Boards df_cab = pd.read_csv(\"https:\/\/raw.githubusercontent.com\/Lozkins\/mos\/master\/data\/04_hlp_cab.csv\", sep=\";\", encoding=\"cp1251\")  # \u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0445\u0430\u0431\u0430 df_f = df_cab.groupby(\"i\", as_index=False)[\"w\"].sum() df_f = df_f.set_index([\"i\"]) df_f[\"f\"] = 15 * np.log10(df_f[\"w\"]) dct_f = df_f.to_dict()[\"f\"]  # \u041d\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a\u043e\u0432 df_cab[\"w\"] = df_cab[\"w\"] \/ df_cab[\"w\"].sum()  # \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 \u0437\u0430 \u0442\u0440\u0430\u043d\u0441\u0444\u0435\u0440 \u043c\u0435\u0436\u0434\u0443 \u0445\u0430\u0431\u0430\u043c\u0438 alpha = 0.4 <\/code><\/pre>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043c\u043e\u0434\u0435\u043b\u0438<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\"># 4-\u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0445\u0430\u0431\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 from pyomo.environ import * from pyomo.opt import SolverStatus, TerminationCondition  # \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e\u0442\u043e\u043a\u0430 \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 i-k-l-j df_tmp = df_cab[[\"i\", \"j\", \"c\"]].copy() df_F = df_tmp.set_axis([\"i\", \"k\", \"c_ik\"], axis=1).merge(df_tmp.set_axis([\"l\", \"j\", \"c_lj\"], axis=1), how=\"cross\") df_F = df_F.merge(df_tmp.set_axis([\"k\", \"l\", \"c_kl\"], axis=1), how=\"inner\", on=[\"k\", \"l\"]) df_F = df_F.merge(df_cab, how=\"inner\", on=[\"i\", \"j\"]) df_F[\"F\"] = df_F[\"w\"] * (df_F[\"c_ik\"] + alpha * df_F[\"c_kl\"] + df_F[\"c_lj\"]) df_F = df_F.set_index([\"i\", \"j\", \"k\", \"l\"]) dct_F = df_F.to_dict()[\"F\"]  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0438 model = ConcreteModel()  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0443\u0437\u043b\u043e\u0432 \u0441\u0435\u0442\u0438 model.nodes = RangeSet(1, df_cab[\"i\"].max())  # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 model.z = Var(model.nodes, model.nodes, initialize=0, within=Binary) model.x = Var(model.nodes, model.nodes, model.nodes, model.nodes, initialize=0, bounds=(0,1),<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-359380","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359380","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=359380"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359380\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=359380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=359380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=359380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}