Ïðîòàëêèâàíèå ïðåäïîòîêà Êîïåëèîâè÷ Ñ.Â., ìàðò 2013 1 Îïðåäåëåíèå ïðåäïîòîêà Ïóñòü åñòü îðèåíòèðîâàííûé ãðàô èç n âåðøèí è m ðåáåð. Ïðåäïîëàãàåòñÿ, ÷òî ÷èòàòåëü óæå çíàêîì ñ òåì, ÷òî òàêîå ìàêñèìàëüíûé ïîòîê â îðèåíòèðîâàííîì ãðàôå ñî ñòîêîì è èñòîêîì. Äîïîëíèì îïðåäåëåíèå ïîòîêà äî ïðåäïîòîêà. Ó êàæäîé âåðøèíû v åñòü íåîòðèöàòåëüíàÿ öåëàÿ âûñîòà hv è íåîòðèöàòåëüíûé èçáûòîê exv (â âåðøèíó ìîæåò âòåêàòü áîëüøå, ÷åì âûòåêàòü). Åñëè åñòü íåíàñûùåííîå ðåáðî u → v, òî hu ≤ hv + 1. 2 Àëãîðèòì ïðîòàëêèâàíèÿ Èçíà÷àëüíî âûñîòà èñòîêà ðàâíà n, âûñîòû îñòàëüíûõ âåðøèí ðàâíû 0. Âñå ð¼áðà, èñõîäÿùèå èç èñòîêà íàñûùåíû.  âåðøèíàõ, êóäà âåäóò ýòè ðåáðà ëåæèò èçáûòîê. Âûñîòû ñòîêà è èñòîêà ôèêñèðîâàíû (íå ìåíÿþòñÿ ïî õîäó àëãîðèòìà). Ó êàæäîé âåðøèíû åñòü ñïèñîê ñìåæíûõ ðåáåð è óêàçàòåëü íà ¾òåêóùåå ðåáðî¿. Èíèöèàëèçàöèÿ çàêîí÷åíà, äàëåå ïðîèñõîäèò ñëåäóþùèé öèêë: 1. Ïîêà åñòü âåðøèíà v (íå ñòîê è íå èñòîê) ñ íåíóëåâûì èçáûòêîì. Áåðåì òåêóùåå ðåáðî èç v. Ïóñòü îíî âåäåò â x. 2. Åñëè òåêóùåå ðåáðî íå íàñûùåííî, è hv = hx + 1, òî òîëêàåì ïî ðåáðó ìèíèìóì èç èçáûòêà è îñòàòî÷íîé ïðîïóñêíîé ñïîñîáíîñòè. 3. Åñëè ýòî íå òàê, ïåðåõîäèì ê ñëåäóþùåìó ðåáðó (åñëè íå êîíåö ñïèñêà). 4. Åñëè ñïèñîê ðåáåð çàêîí÷èëñÿ, ïîäíèìàåì âåðøèíó v äî âûñîòà min (hu + 1), u ãäå u âåðøèíû â êîòîðûå èç v âåäóò íåíàñûùåííûå ðåáðà. 3 Êîððåêòíîñòü àëãîðèòìà Òåîðåìà 1. Âûñîòà âåðøèíû, èç êîòîðîé åñòü ïóòü â ñòîê èç íåíàñûùåííûõ ðåáåð, íå áîëåå n − 1. Äîêàçàòåëüñòâî. Åñòü ïóòü, çíà÷èò åñòü ïðîñòîé ïóòü. Äëèíà ïðîñòîãî ïóòè íå áîëåå n−1 ðåáåð. Âûñîòà ñòîêà 0, èçìåíåíèå âûñîòû ïî íåíàñûùåííîìó ðåáðó íå áîëåå +1. Åñëè âåðøèíà ïîäíÿëàñü äî óðîâíÿ n, òî èç íåå íåò è íå áóäåò ïóòè äî ñòîêà. Ñëåäñòâèå. Ëåììà. Åñëè â âåðøèíå åñòü èçáûòîê, òî â íåå åñòü ïóòü èç èñòîêà, ïî êîòîðîìó òå÷åò ïîòîê. 1 Äîêàçàòåëüñòâî ïðåäñòàâëÿåò èç ñåáÿ äåêîìïîçèöèþ ïðåäïîòîêà íà ïðîñòûå ïóòè. Äàâàéòå ïðåäïîòîê äîïîëíèì äî ïîòîêà. Äëÿ ýòîãî èç êàæäîé âåðøèíû ñ èçáûòêîì x ïóñòèì ôèêòèâíîå íàñûùåííîå ðåáðî â ñòîê ïðîïóñêíîé ñïîñîáíîñòè x. À äåêîìïîçèðîâàòü ïîòîê ìû óìååì. 2n − 2 Åñëè èçáûòîê èç âåðøèíû íåëüçÿ ïðîòîëêíóòü â ñòîê (íåò ïóòåé), èçáûòîê àâòîìàòè÷åñêè áóäåò âûòàëêèâàòüñÿ â èñòîê. Ïî ëåììå èìååì ïóòü èç èñòîêà â âåðøèíó ïî ðåáðàì ñ íåíóëåâûì ïîòîêîì, à çíà÷èò, åñòü ïóòü èç âåðøèíû â èñòîê ïî íåíàñûùåííûì ðåáðàì (âçÿëè ïóòü èç îáðàòíûõ ðåáåð). Åñòü ïóòü, çíà÷èò åñòü ïðîñòîé ïóòü, åãî äëèíà íå áîëåå n − 2 ðåáåð (ò.ê. ÷åðåç ñòîê ýòîò ïóòü íå ïðîõîäèò). Âûñîòà èñòîêà ðàâíà n. Çíà÷èò, âûñîòà âåðøèíû ñ èçáûòêîì íå áîëåå 2n − 2. Çíà÷èò, âûñîòà ëþáîé âåðøèíû íå áîëåå 2n − 2. . Äîêàçàòåëüñòâî. Èçíà÷àëüíî âñå ðåáðà èç èñòîêà íàñûùåíû, åñëè ñåé÷àñ íåêîòîðîå ðåáðî èç èñòîêà íå íàñûùåíî, çíà÷èò ïî íåìó ïðîèçîøåë òîë÷îê â îáðàòíóþ ñòîðîíó. Òîëêàòü â èñòîê ìîæíî òîëüêî èç âåðøèí ñ âûñîòîé n + 1, âûñîòà íå óìåíüøàåòñÿ, çíà÷èò, ñåé÷àñ îíà íå ìåíüøå n + 1, çíà÷èò, ïî íå ñóùåñòâóåò ïóòè èç ýòîé âåðøèíû â ñòîê ïî íåíàñûùåííûì ðåáðàì. Âî-ïåðâûõ, îí êîíå÷åí, òàê êàê âûñîòû âñåõ âåðøèí îãðàíè÷åíû ñâåðõó, à êîãäà âûñîòû íå ìåíÿþòñÿ, óìåíüøàåòñÿ ïîòåíöèàë P exv hv . Âî-âòîðûõ, êîãäà àëãîðèòì îñòàíîâèòñÿ, èçáûòîê áóäåò òîëüêî â èñòîêå è ñòîêå. Ïðè ýòîì íå áóäåò ñóùåñòâîâàòü äîïîëíÿþùåãî ïóòè èç èñòîêà â ñòîê. Çíà÷èò, ïî òåîðåìå Ôîðäà-Ôàëêåðñîíà íàéäåííûé ïîòîê ìàêñèìàëåí. Òåîðåìà 2. Âûñîòà ëþáîé âåðøèíû íå áîëåå Ëåììà . Åñëè àëãîðèòì îñòàíîâèëñÿ, òî íåò äîïîëíÿþùåãî ïóòè èç èñòîêà â ñòîê ïî íåíàñûùåííûì ðåáðàì. Òåîðåìå 1 Òåîðåìà 3. Àëãîðèòì êîððåêòåí 4 Îáùàÿ îöåíêà âðåìåíè ðàáîòû Ìû óæå ïîêàçàëè, ÷òî âûñîòà êàæäîé âåðøèíû íå áîëåå 2n − 2, è ñóììàðíîå êîëè÷åñòâî ïîäúåìîâ O(n2 ). Ýòè O(n2 ) ïîäúåìîâ âûïîëíÿþòñÿ â ñóììå çà O(nm), òàê êàê îäèí ïîäúåì âûïîëíÿåòñÿ çà ñòåïåíü âåðøèíû îïåðàöèé. O(nm) Äîêàçàòåëüñòâî. Êàæäóþ âåðøèíó ìû ïîäíèìàåì O(n) ðàç, ìåæäó ïîäúåìàìè êàæäîå ðåáðî ìû íàñûòèì íå áîëåå îäíîãî ðàçà, òàê êàê, ÷òîáû åãî ¾ðàçíàñûòèòü¿, âòîðîé êîíåö ðåáðà íóæíî ïîäíÿòü âûøå âåðøèíû. O(nm) Äîêàçàòåëüñòâî. Êàæäóþ âåðøèíó ìû ïîäíèìàåì O(n) ðàç, ìåæäó ïîäúåìàìè ìû îäèí ðàç ïðîáåãàåìñÿ ïî ñïèñêó ðåáåð. Ìû îöåíèëè êîëè÷åñòâî èíòåðåñíûõ ñîáûòèé ïîäúåì âåðøèíû; ïðîòàëêèâàíèå, íàñûùàþùåå ðåáðî; ñäâèã òåêóùåãî ðåáðà. Îñòàëîñü îöåíèòü êîëè÷åñòâî îïåðàöèé âèäà ¾ïîñìîòðåëè íà âåðøèíó, åñëè â íåé åñòü èçáûòîê, òîëêíóëè åãî ïî òåêóùåìó ðåáðó, èçáûòîê óñïåøíî òîëêíóëñÿ, Òåîðåìå 4. Ñóììàðíîå êîëè÷åñòâî íàñûùàþùèõ ïðîòàëêèâàíåé Òåîðåìå 5. Ñóììàðíîå êîëè÷åñòâî ñäâèãîâ ïî ñïèñêó ðåáåð Çàêëþ÷åíèå. 2 . . ðåáðî íå íàñûòèëîñü¿. Îïåðàöèþ òàêîãî âèäà áóäåì íàçûâàòü ¾ïðîñìîòð âåðøèíû¿. Îäèí ïðîñìîòð âåðøèíû ðàáîòàåò çà O(1). Êîëè÷åñòâî ïðîñìîòðîâ çàâèñèò îò òîãî, â êàêîì ïîðÿäêå ïåðåáèðàòü âåðøèíû. Ñîáñòâåííî êîëè÷åñòâî âñåõ îñòàëüíûõ îïåðàöèé ìû óæå îöåíèëè, êàê O(nm). Òåïåðü íàì èíòåðåñíî òîëüêî êîëè÷åñòâî ïðîñìîòðîâ âåðøèí. 5 Àëãîðèòì çà O(n3 ) Áóäåì ¾ïîêà ãäå-òî åñòü èçáûòîê¿ ïðîñìàòðèâàòü âñå âåðøèíû â ïðîèçâîëüíîì ïîðÿäêå, êàæäóþ ðîâíî îäèí ðàç. Îäíà ôàçà àëãîðèòìà ¾ïðîñìîòðåòü âñå âåðøèíû¿ äåëàåò n ïðîñìîòðîâ. Ðàññìîòðèì âåëè÷èíó ϕ ¾âûñîòà ìàêñèìàëüíîé âåðøèíû ïîìèìî èñòîêà ñ èçáûòêîì¿. Åñëè â ïðîöåññå îäíîé ôàçû íå áûëî ïîäúåìîâ âåðøèí, ϕ óìåíüøèëàñü õîòÿ áû íà 1. Åñëè áûëè ïîäúåìû íà ñóììàðíóþ âûñîòó h, òî ϕ óâåëè÷èëàñü íå áîëåå, ÷åì íà h. Ñóììàðíàÿ âûñîòà âñåõ ïîäúåìîâ O(n2 ). Çíà÷èò, ϕ óâåëè÷èâàåòñÿ çà âñå âðåìÿ íà O(n2 ). Çíà÷èò, è óìåíüøàåòñÿ òîæå íà O(n2 ). Êàæäàÿ ôàçà èëè ïîäúåì (òàêèõ O(n2 )), èëè óìåíüøåíèå ϕ (òàêèõ òîæå O(n2 )). Òàêèì îáðàçîì êîëè÷åñòâî ôàç O(n2 ), à àëãîðèòì ðàáîòàåò çà O(n3 ). Àëãîðèòì. Îöåíêà âðåìåíè ðàáîòû. 6 High level optimization Ìîäèôèöèðóåì ïðåäûäóùèé àëãîðèòì. Áóäåì êàæäûé ðàç âûáèðàòü ñàìóþ âûñîêóþ âåðøèíó ñ èçáûòêîì ïîìèìî èñòîêà è ïðîñìàòðèâàòü èìåííî å¼. Åñëè åñòü ðîâíî îäíà âåðøèíà ìàêñèìàëüíîé âûñîòû, òî çà îäèí ïðîñìîòð ìû èëè âûçîâåì ïîäúåì, èëè óìåíüøèì ϕ (ìàêñèìàëüíóþ âûñîòó èçáûòêà). Òàêèì îáðàçîì, åñëè íàì âñåãäà áóäåò âåçòè è âåðøèí ìàêñèìàëüíîé âûñîòó áóäåò O(1), òî àëãîðèòì áóäåò äåëàòü O(n2 ) ïðîñìîòðîâ è ðàáîòàòü çà √ O(nm). Íà ñàìîì äåëå, â õóäøåì ñëó÷àå àëãîðèòì ðàáîòàåò O(n2 m) (áåç äîêàçàòåëüñòâà). Òåñò íà êîòîðîì m ≈ n2 , è äîñòèãàåòñÿ îöåíêà Θ(n3 ) ìîæíî ïîñòðîèòü ñàìîñòîÿòåëüíî, çà îñíîâó âçÿâ ïîëíûé äâóäîëüíûé ãðàô ñ ðåáðàìè ïðîïóñêíîé ñïîñîáíîñòè 1 è èçáûòêàìè â ïåðâîé äîëå â êàæäîé âåðøèíå ðàâíûìè n. 7 Global relabeling optimization hv ≤ dv , ãäå dv ðàññòîÿíèå îò âåðøèíû v äî ñòîêà ïî íåíàñûùåííûì ðåáðàì èëè ðàññòîÿíèå îò âåðøèíû v äî èñòîêà ïî íåíàñûùåííûì ðåáðàì, åñëè ñòîê óæå íå äîñòèæèì. Áîëåå òîãî dv êîððåêòíàÿ âûñîòíàÿ ôóíêöèÿ. Ïîñ÷èòàåì âñå dv çà O(m). Ýòî äâà bfs-à îò ñòîêà è îò èñòîêà ïî îáðàòíûì ðåáðàì. Òåïåðü ñäåëàåì hv = dv . Òàêèì îáðàçîì íåêîòîðûå âûñîòû óâåëè÷èëèñü, à ïðåäïîòîê îñòàëñÿ êîððåêòíûì. Ðàññòîÿíèå äî ñòîêà. Global relabeling. 3 Åñëè êàæäûå m ýëåìåíòàðíûõ îïåðàöèé çàïóñêàòü lobal Relabeling, àëãîðèòì áóäåò ðàáîòàòü íå áîëåå ÷åì â äâà ðàçà ìåäëåííåé. Ïî ôàêòó íà ñëó÷àéíûõ è ðåàëüíûõ òåñòîâûõ äàííûõ àëãîðèòì áóäåò ðàáîòàòü â íåñêîëüêî ðàç áûñòðåå. Èñïîëüçîâàíèå. G 8 Ïðîñòîé è áûñòðûé àëãîðèòì 1. Ïîêà åñòü âåðøèíà ñ èçáûòêîì 2. Çàïóñòèëè bfs ïî îáðàòíûì ðåáðàì èç ñòîêà è èç èñòîêà, ïîëó÷èëè âûñîòû âñåõ âåðøèí. Îò bfs-à íàì òàêæå ïðèãîäèòñÿ î÷åðåäü ìàññèâ âåðøèí, óïîðÿäî÷åííûé ïî âûñîòå. 3. Ïåðåáèðàåì âåðøèíû â ïîðÿäêå óáûâàíèÿ âûñîòû. Äëÿ êàæäîé âåðøèíû ïåðåáèðàåì âñå ðåáðà è òîëêàåì ïî ðåáðó ìèíèìóì èç èçáûòêà è îñòàòî÷íîé ïðîïóñêíîé ñïîñîáíîñòè. Åñëè ïóíêòû 2 è 3 íàçâàòü ôàçîé, òî êàæäàÿ ôàçà ðàáîòàåò çà O(m). Ôàç, î÷åâèäíî íå áîëåå O(n2 ). Áîëåå òî÷íîé îöåíêè ÿ äîêàçûâàòü íå óìåþ. Íà ïðàêòèêå àëãîðèòì âåäåò ñåáÿ íå õóæå ÷åì ¾O(n3 ) + + ¿. Òàêæå çàìå÷ó, ÷òî íà èçâåñòíûõ ìíå òåñòàõ, ïðèâåäåííûé àëãîðèòì ðàáîòàåò çà O(nm). High Level Opti- mization Global Relabeling 4