Диницов алгоритам
Диницов алгоритам је строго полиномијални алгоритам за израчунавање максималног протока кроз транспортну мрежу осмишљен 1970. године од стране израелског (претходно совјетског) изучивача компјутера Јефим Динитз[1] алгоритам се извршава у временском периоду О(В2Е) и сличан је Емонд-Карп Алгоритму који се извршава у времену О(ВЕ2) у томе да користи најкраће промењене путање. Увод концепта о графа са нивоима и блокирања тока омогућују Диницовом алгоритму да постигне своје извођење.

Историја 
Динитц алгоритам је 1970. године објавио бивши руски изучивач компјутера Јефим А. Динитц, који је данас члан Одсека за науку рачунарства нa Бен-Гурион Универзитету Негав (Израел), пре Едмондс-карп алгоритма који је објављен 1972. године али је раније откривен. Независно су показали да у Форд-фулкерсон алгоритму[2] ако је свака промењљива путања најкраћа, онда дужина променљивих путања не опада.

Дефиниција 
Нека је  мрежа са  и  тежина и проток грана  (у том редоследу).

Преостала тежина је Сликање  дефинисано као
1. ако 
 

2. иначе 
Преостали граф  где:
 Промењљива путања је  путања у преосталом графу .
дефинишемо дист(в) да буде дужина накраће путање од с до в у графу . Онда граф са нивоима  је граф  где:

Блокирајући ток је  ток  такав да граф  са  не садржи  путању

Алгоритам 
Диницов алгоритам
Улаз граф 
Излаз:  ток  максималне вредности
 иницијализујемо  за свако 
 Конструишемо  уз помоћ  од . Ако је  стани и стави  на излаз.
 Нађемо блокирајући ток  у 
 Ускладимо  успомоћ  и вратимо се на други корак

Анализа алгоритма 
Може бити показано да се број грана у сваком блокирајућем току повећава за барем 1 сваки пут тако да има највише  блокирајућих токова у алгоритму, где је  број чворова у графу. Граф са нивоима  може бити конструисан претрагом у ширину у  времену а блокирајући ток у сваком нивоу графа се може пронаћи у  времену. Дакле Време извршавања овог алгоритма је .

Користећи структуру података звану динамичко дрве време потребно за налажење блокирајућег тока се може смањити на , па се време извршавања овог алгоритма може побољшати на .

Специјални случајеви 
У графу са јединичним тежинама, постоји много јача временска граница. Сваки блокирајући ток се може наћи за  и може се показати да број фаза не прелази  и . Тако да се алгоритам извршава у  времену.

У графовима насталим током решавања проблема бипартитивног упаривања број фаза је ограничен са , одтле водећи временску границу . Резултујући алгоритам је познат као Хопцртфт-Карп алгоритам. Генералније ова граница држи било који граф -- граф у којем сваки чвор осим извора и понора има или једну улазну грану тежине један или једну излазну грану тежине један, а све остале тежине су произвољни цели бројеви.

Пример 

Следеће је симулација динитц алгоритма. У гафу са нивоима  чворови у црвеној боји су вредности . Путање плаве боје су блокирајући ток.

Види још 
 Форд-фулкерсон алгоритам
 Проблем максималног протока

Референце 

Графовски алгоритми
Диницов алгоритам је строго полиномијални алгоритам за израчунавање максималног протока кроз транспортну мрежу осмишљен године од стране израелског ( претходно совјетског ) изучивача компјутера Јефим Динитз[ 1 ] алгоритам се извршава у временском периоду О( В2Е ) и сличан је Емонд-Карп Алгоритму који се извршава у времену О( ВЕ2 ) у томе да користи најкраће промењене путање . Увод концепта о графа са нивоима и блокирања тока омогућују Диницовом алгоритму да постигне своје извођење . Историја Динитц алгоритам је године објавио бивши руски изучивач компјутера Јефим А . Динитц , који је данас члан Одсека за науку рачунарства нa Бен-Гурион Универзитету Негав ( Израел ) , пре Едмондс-карп алгоритма који је објављен године али је раније откривен . Независно су показали да у Форд-фулкерсон алгоритму[ 2 ] ако је свака промењљива путања најкраћа , онда дужина променљивих путања не опада . Дефиниција Нека је мрежа са и тежина и проток грана ( у том редоследу ) . Преостала тежина је Сликање дефинисано као 1. ако 2. иначе Преостали граф где : Промењљива путања је путања у преосталом графу \. дефинишемо дист( в ) да буде дужина накраће путање од с до в у графу \ . Онда граф са нивоима је граф где : Блокирајући ток је ток такав да граф са не садржи путању Алгоритам Диницов алгоритам Улаз граф Излаз : ток максималне вредности иницијализујемо за свако Конструишемо уз помоћ од \ . Ако је стани и стави на излаз . Нађемо блокирајући ток у Ускладимо успомоћ и вратимо се на други корак Анализа алгоритма Може бити показано да се број грана у сваком блокирајућем току повећава за баремсваки пут тако да има највише блокирајућих токова у алгоритму , где је број чворова у графу . Граф са нивоима може бити конструисан претрагом у ширину у времену а блокирајући ток у сваком нивоу графа се може пронаћи у времену . Дакле Време извршавања овог алгоритма је \ . Користећи структуру података звану динамичко дрве време потребно за налажење блокирајућег тока се може смањити на , па се време извршавања овог алгоритма може побољшати на \ . Специјални случајеви У графу са јединичним тежинама , постоји много јача временска граница . Сваки блокирајући ток се може наћи за и може се показати да број фаза не прелази и \ . Тако да се алгоритам извршава у времену . У графовима насталим током решавања проблема бипартитивног упаривања број фаза је ограничен са , одтле водећи временску границу \ . Резултујући алгоритам је познат као Хопцртфт-Карп алгоритам . Генералније ова граница држи било који граф -- граф у којем сваки чвор осим извора и понора има или једну улазну грану тежине један или једну излазну грану тежине један , а све остале тежине су произвољни цели бројеви . Пример Следеће је симулација динитц алгоритма . У гафу са нивоима чворови у црвеној боји су вредности \ . Путање плаве боје су блокирајући ток . Види још Форд-фулкерсон алгоритам Проблем максималног протока Референце Графовски алгоритми