Я вважаю, що алгоритм поліноміального часу заснований на максимальному потоці. ДозволяєГ ( V, Е) , б , с бути входом.
- Побудуйте спрямований двосторонній графік Н( L , R , F) з L і R будучи лівою та правою перегородками та Жбудучи направленими краями від L до R.
- Дозволяє | V| =n. Існуєн вершини в L і н вершини в R.
- Кожна вершина v ∈ V має "копію" в L (сказати vл) та копію в R (сказати vr).
- Якщо ( u , v ) ∈ E додайте спрямований край від ул до vr. Кожен такий край має місткість 1.
- Додати вузол "джерело" с і додайте спрямовані краї від с до кожної вершини в L. Кожен такий край має місткістьб.
- Додати вузол "мийки" т і додайте спрямовані ребра з кожної вершини в R до т. Кожен такий край має місткістьc.
- Знайдіть максимальний потік від с до т.
Даний графік Г має рішення, якщо і тільки тоді, якщо максимальний потік, обчислений вище, насичує кожне ребро с до L, тобто, потік по кожному краю від с до L дорівнює б.