view docs/algorithm-ford-fulkerson.pseudocode @ 123:4d96ace53ba1

Make it work on Python2 too with all tests by explicitely declaring some strings to be Unicode strings. No tests need to be skipped on Python2 now.
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 06 May 2026 15:53:24 +0200
parents 9bfd87544902
children
line wrap: on
line source

// -*- coding: utf-8; indent-tabs-mode: nil -*-
\ALGORITHM{FordFulkerson} \WITH
  \INPUTS{Given a network \expr{G = (V, E)} with flow capacity \expr{c}, a source node \expr{s}, and a sink node \expr{t}}
  \OUTPUT{Compute a flow \expr{f} from \expr{s} to \expr{t} of maximum value}
\IS
  \TEXT{1. \expr{f(u, v) \gets 0} for all edges \expr{(u, v)}

  2. While there is a path \expr{p} from \expr{s} to \expr{t} in \expr{G_f},
     such that \expr{c_f(u, v) > 0} for all edges \expr{(u, v)  p}:

     1. Find \expr{c_f(p) = min{c_f(u, v): (u, v)  p\}}

     2. For each edge \expr{(u, v)  p}

        1. \expr{f(u, v) \gets f(u, v) + c_f(p)}   \rem Send flow along the path

	2. \expr{f(v, u) \gets f(v, u) - c_f(p)}   \rem The flow might be "returned" later
}
\END ALGORITHM {FordFulkerson}