Тармактагы агымдар
Максималдуу агым: кесүү жөнүндө теорема, Эдмондс-Карп алгоритми жана паросочетаниелерге колдонулушу.
Тармак — ар бир кырында өткөрүү жөндөмдүүлүгү бар багытталган граф. Максималдуу агым — s булагынан t агызгычка канча «суюктук» өткөрүүгө болот.
Фундаменталдык теорема (Форд-Фалкерсон): максималдуу агым минималдуу кесүүгө барабар — өчүрүлгөндө s менен t айрылып калган кырлардын минималдуу суммардык өткөрүү жөндөмдүүлүгүнө. Ошондуктан агымдар менен «канча өткөрсө болот» жана «эмнени кесиш керек» деген маселелердин экөө тең чечилет.
Эдмондс-Карп алгоритми: s тен t га чейин оң калдык өткөрүү жөндөмдүүлүктөрү бар жол бар болуп турганда (аны BFS менен издейбиз), ал жол боюнча агым өткөрөбүз жана КАЛДЫК тармакты жаңылайбыз: түз кырларды азайтабыз, тескерилерин көбөйтөбүз. Тескери кырлар — ачкыч: алар «оюн өзгөртүп», мурда өткөрүлгөн агымды кайра багыттоого мүмкүндүк берет.
Эдмондс-Карп, булак 1, агызгыч n. Киргизиңиз: 4 5, андан кийин «a b өткөрүү»: 1 2 3, 1 3 2, 2 3 1, 2 4 2, 3 4 3
Мисалда максималдуу агым 5ке барабар: 2 бирдик 1→2→4 жолу менен, 2 бирдик 1→3→4 менен жана дагы 1 бирдик 1→2→3→4 менен.
Эдмондс-Карптын татаалдыгы — O(V·E²); тыгыз маселелер үчүн тезирээк Диниц алгоритми бар.
Башкы практикалык колдонулушу — эки үлүштүү паросочетаниелер: ар бири бир гана түгөйдө болгон «студент-долбоор» түгөйлөрүнүн максималдуу саны. Тармак куруңуз: булак → студенттер (өткөрүү 1) → жарактуу долбоорлор (өткөрүү 1) → агызгыч. Максималдуу агым = максималдуу паросочетание.
Тапшырма: «3 жумушчу, 3 тапшырма, ким эмнени билет» маселесин кагазда тармак катары моделдеп, жогорудагы программадан өткөрүңүз (номерлеңиз: 1 — булак, 2-4 — жумушчулар, 5-7 — тапшырмалар, 8 — агызгыч).
Сабакты өттүм деп белгилеңиз.