Nie jestem w 100% pewny, ale uważam, że algorytm jest oparty na this research paper describing max-flow algorithms for computer vision. W szczególności sekcja 3 opisuje nowy algorytm obliczania maksymalnych przepływów.
nie ustawiły się każdy szczegół algorytm gazety z realizacji algorytmu, ale wiele szczegółów wydaje się dopasować:
- Algorytm opisany prace przy użyciu dwukierunkowego wyszukiwanie z obu S oraz T , które implementacja również wykonuje: na przykład istnieje komentarz do czytania
// grow S & T search trees, find an edge connecting them
.
- Opisany algorytm śledzi zbiór osieroconych węzłów, który wydaje się śledzić w trakcie implementacji zmiennej
std::vector<Vtx*> orphans
.
- Opisany algorytm działa poprzez budowanie zestawu drzew i ich ponowne wykorzystanie; implementacja algorytmu śledzi drzewo powiązane z każdym węzłem.
Mam nadzieję, że to pomoże!
@taocp Mam problem z odczytaniem algorytmu z implementacji, ponieważ implementacja jest bardziej zorientowana na wydajność niż zorientowana na czytelność – Shai
@templatetypedef - dzięki za link – Shai
Próbuję to rozgryźć, ale to jest najmniej czytelny kod, jaki widziałem od dłuższego czasu. Skomentuj swój kod, ludzie! – templatetypedef