Applied Algorithm Design Lecture 4
Pietro Michiardi
Institut Eurécom
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 1 / 85
Applied Algorithm Design Lecture 4 Pietro Michiardi Institut - - PowerPoint PPT Presentation
Applied Algorithm Design Lecture 4 Pietro Michiardi Institut Eurcom Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 1 / 85 Part 1: Network Flow - The fundamentals Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 2 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 1 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 2 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 3 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 4 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 5 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 6 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 7 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 8 / 85
1
2
3
4
! " # $ % & ' ( )*% )% )#+ )*% )))*+ ), )*% )- )& )*+ )*+ )))*+ )*% )$ )$
./0/.1(2 !345.6 !178
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 9 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 10 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 11 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 12 / 85
! " " " " " " ! ! " " "
#$%&'()(!
"
*$+$*,-. /%01
2 3 4 ! 5 6 7
(5 (4" (85 (((8" (9 (85 (: (6 (8" (8" (((8" (85 (! (! " ! Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 13 / 85
!" # # !! ! !" $ % % " " " !!
&'('&)*+ ,-./
1 $ 2 3 # 4 * 5!3 53 5$" 5!3 555!" 5% 5!3 56 5# 5!" 5!" 555!" 5!3 52 52 "
7'-895:512
2 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 14 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 15 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 16 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 17 / 85
! " # $ % & ' ( )*% )% )#+ )*% )))*+ ), )*% )- )& )*+ )*+ )))*+ )*% )$ )$ )./0/12(3)4)*+)5)%)5)*% ))))))))))))))4)#+ )))6 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 18 / 85
! " # $ % & ' ( )*% )% )#+ )*% )))*+ ), )*% )- )& )*+ )*+ )))*+ )*% )$ )$ ))). )/01023(4)5)-)6)*%)6),)6)#+ ))))))))))))))5)&" Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 19 / 85
! " # $ % & ' ( )*% )% )#+ )*% )))*+ ), )*% )- )& )*+ )*+ )))*+ )*% )$ )$ ))). )/01023(4)5)*+)6),)6)*+ ))))))))))))))5)",
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 20 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 21 / 85
!" # # !! ! !" $ % % " " " !! & ' $ ( ) # * + ,!) ,) ,$" ,!) ,,,!" ,% ,!) ,- ,# ,!" ,!" ,,,!" ,!) ,( ,( "
./012,3,'(
( 4 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 22 / 85
!"
!# $ $ ! !# % & & # # # !! ' " % ( ) $ * + ,!) ,) ,%# ,!) ,,,!# ,& ,!) ,- ,$ ,!# ,!# ,,,!# ,!) ,( ,( # ,./012,3,$,4,#,4,&,5,!,4,!! ,,,,,,,,,,3,"( ( !! 6 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 23 / 85
!"
!# $ $ !! ! !# " % % # # # !! & ' " ( ) $ * + ,!) ,) ,"# ,!) ,,,!# ,% ,!) ,- ,$ ,!# ,!# ,,,!# ,!) ,( ,( # ,./012,3,!#,4,(,5,%,4,#,5,!# ,,,,,,,,,,3,'( ( 6 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 24 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 25 / 85
3 4 + 5 6 7 8 # $96 $6 $+, $96 $$$9, $: $96 $; $7 $9, $9, $$$9, $96 $5 $5
!&'&%(#)$*$+,
< Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 26 / 85
##$%&#$'#$
##()#&$#$
##$%&#$'#$
##$%&#$'#$
! "
# $
%& ' %( ) Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 27 / 85
!"#$%&'(&(#')&*&+,
56 7 7 58 8 56 8 , 7 5 6 6 6 58 9 + : 8 ; < = . &5; &; &:6 &5; &&&56 &, &5; &7 &< &56 &56 &&&56 &5; &8 &8 6
>
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 28 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 29 / 85
! " # $
"% "% % % % % % #% #% &%
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 30 / 85
! " # $
#%
"% "% #% 0% % % % % %
#% #% #% Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 31 / 85
* + ( ,
() +) +) ()
() ) ) () ()
* + ( ,
() +) +) ()
() +) +) +) () Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 32 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 33 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 34 / 85
! " # $
#%
"% "% #% 0% % % % % %
#% #% #% Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 35 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 36 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 37 / 85
* + ( ,
() +) +) ()
() ) ) () ()
* + ( ,
() +) +) ()
() +) +) +) () Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 38 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 39 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 40 / 85
◮ Flow f(e), capacity
◮ Undo flow sent ◮ e = (u, v) and
◮ Residual capacity:
! " #$% &
'()('*+,
! " #$$
#&
2134
◮ Residual edges with positive residual capacity ◮ Ef = {e : f(e) < c(e)} ∪ {eR : f(e) > 0} Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 41 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 42 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 43 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 44 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 45 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 46 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 47 / 85
1
2
3
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 48 / 85
◮ Let f be a flow with no augmenting paths ◮ Let A be set of vertexes reachable from s in residual graph ◮ By definition of A, s ∈ A ◮ By definition of f, t /
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 49 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 50 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 51 / 85
! " # $
% % & & & & & % % "
! " # $
% % " & & & & &
' "
% %
' ' '
" " "
' '
" "
' ' '
" & "
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 52 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 53 / 85
!!"
# $ % &
'! !(" !"% !%% )* !!"
# $ % &
!(" !"% !%% )*'+!"",
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 54 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 55 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 56 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 57 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 58 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 59 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 60 / 85
!
" # $ "% #% $% & ! &% !%
'()*+,-. "/&%01#/"%01!/$%
2 3 Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 61 / 85
! " # !$ "$ #$ % & %$ &$
' (
)*+,)*-./012 !3!$4,%3%$4,"3"$,&3&$
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 62 / 85
!
" # $ "% #% $%
&
' ( '% (%
" " !
) * +%
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 63 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 64 / 85
! " # $ "% #% $% & ' ( '% (% " "
" # $ "% #% $% ' ( '% (%
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 65 / 85
◮ Each node in L and R participates in at most one edge in M ◮ |M| = k: consider cut (L ∪ s, R ∪ t) Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 66 / 85
! " # !$ "$ #$ % & %$ &$
( ! " # !$ "$ #$ ) % & %$ &$ ! !
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 67 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 68 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 69 / 85
= > 7 =; >; 7; 4 6 4; 6;
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 70 / 85
aNot seen here. Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 71 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 72 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 73 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 74 / 85
! " # $ % & ' ( Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 75 / 85
! " # $ % & ' ( Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 76 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 77 / 85
◮ by conservation, there exists an edge (u, v) with f(u, v) = 1 ◮ continue until you reach t, always choosing a new edge
acan eliminate cycles to get simple paths if desired Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 78 / 85
1This is a typical exam question!! Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 79 / 85
! " # $ % & ' ( Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 80 / 85
! " # $ % & ' ( ! " # $ % & ' ( Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 81 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 82 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 83 / 85
!
" ! # $ % & ' ( " ! # $ % & ' (
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 84 / 85
Pietro Michiardi (EUR) Applied Algorithm Design Lecture 4 85 / 85