{"id":3856,"date":"2016-05-18T16:15:30","date_gmt":"2016-05-18T15:15:30","guid":{"rendered":"http:\/\/smart--grid.net\/?page_id=3856"},"modified":"2022-12-03T22:59:06","modified_gmt":"2022-12-03T21:59:06","slug":"algorithme-de-dinic","status":"publish","type":"page","link":"https:\/\/complex-systems-ai.com\/en\/maximum-flow-problem\/dinic-algorithm\/","title":{"rendered":"Dinic algorithm"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"3856\" class=\"elementor elementor-3856\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-040bd5d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"040bd5d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-9e46113\" data-id=\"9e46113\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f716959 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"f716959\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/en\/maximum-flow-problem\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Maximum flow problem<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-d457aab\" data-id=\"d457aab\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c44df20 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"c44df20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/complex-systems-ai.com\/en\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Home page<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-70f912e\" data-id=\"70f912e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7c65e33 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"7c65e33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Algorithme_de_Dinic\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Wiki<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-21e0735e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"21e0735e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6897989d\" data-id=\"6897989d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-56b8366c elementor-widget elementor-widget-text-editor\" data-id=\"56b8366c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/complex-systems-ai.com\/en\/maximum-flow-problem\/dinic-algorithm\/#Algorithme-de-Dinic\" >Dinic algorithm<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/complex-systems-ai.com\/en\/maximum-flow-problem\/dinic-algorithm\/#Exemple\" >Example<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Algorithme-de-Dinic\"><\/span>Dinic algorithm<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div style=\"padding: 5px; background-color: #d5edff; border: 2px solid #3c95e8; -moz-border-radius: 9px; -khtml-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px;\">The Dinic or Dinitz algorithm is based on two notions: a <a href=\"https:\/\/complex-systems-ai.com\/en\/graph-theory-2\/\">graph<\/a> level, and a blocking flow (level graph &amp; blocking flow).<\/div>\n\n<p>To determine the level graph, we place the source at level 1, its successors at level 2, and so on.<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-3863 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic1.png\" alt=\"dinic algorithm dinitz level graph\" width=\"482\" height=\"297\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic1.png 482w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic1-300x185.png 300w\" sizes=\"(max-width: 482px) 100vw, 482px\" \/><\/figure>\n<\/div>\n\n<p>The blocking flow is the <a href=\"https:\/\/complex-systems-ai.com\/en\/maximum-flow-problem\/\">maximum flow<\/a> can pass in a given path.<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" class=\"alignnone wp-image-3868 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic2.png\" alt=\"dinic algorithm dinitz level graph\" width=\"424\" height=\"271\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic2.png 424w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic2-300x192.png 300w\" sizes=\"(max-width: 424px) 100vw, 424px\" \/><\/figure>\n<\/div>\n\n<p>Dinic&#039;s algorithm is as follows:<\/p>\n\n<div style=\"padding: 3px; border: 2px dotted #a5a5a5; background-color: #f6f9fa;\">\n<ol>\n<li>build a level graph<\/li>\n<li>find an increasing path (the smallest) from the source to the well<\/li>\n<li>find the arc limiting the increasing path<\/li>\n<li>find a path increasing from limiting summit to the well<\/li>\n<li>repeat steps 3 and 4 to build a blocking flow until there is no longer an increasing path<\/li>\n<\/ol>\n<\/div>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exemple\"><\/span>Example<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p>Construction of the level graph:<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" class=\"alignnone wp-image-3877 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic3.png\" alt=\"dinic algorithm dinitz level graph\" width=\"446\" height=\"263\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic3.png 446w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic3-300x177.png 300w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/figure>\n<\/div>\n\n<p>Find an increasing path, find the limiting arc:<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3883 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic5.png\" alt=\"dinic algorithm dinitz level graph\" width=\"435\" height=\"322\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic5.png 435w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic5-300x222.png 300w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><\/figure>\n<\/div>\n\n<p>Return to step 3 and 4:<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3887 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic6.png\" alt=\"dinic algorithm dinitz level graph\" width=\"433\" height=\"313\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic6.png 433w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic6-300x217.png 300w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure>\n<\/div>\n\n<p>And so on until no longer finding an increasing path:<\/p>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3892 size-full\" src=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic7.png\" alt=\"dinic algorithm dinitz level graph\" width=\"433\" height=\"309\" title=\"\" srcset=\"https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic7.png 433w, https:\/\/complex-systems-ai.com\/wp-content\/uploads\/2016\/05\/dinic7-300x214.png 300w\" sizes=\"(max-width: 433px) 100vw, 433px\" \/><\/figure>\n<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Maximum flow problem Wiki homepage Dinic&#039;s algorithm Dinic&#039;s or Dinitz&#039;s algorithm is based on two notions: a level graph, and \u2026 <\/p>","protected":false},"author":1,"featured_media":0,"parent":3587,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3856","page","type-page","status-publish","hentry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/3856","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/comments?post=3856"}],"version-history":[{"count":4,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/3856\/revisions"}],"predecessor-version":[{"id":17930,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/3856\/revisions\/17930"}],"up":[{"embeddable":true,"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/pages\/3587"}],"wp:attachment":[{"href":"https:\/\/complex-systems-ai.com\/en\/wp-json\/wp\/v2\/media?parent=3856"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}