Spelling suggestions: "subject:"maxflöde"" "subject:"basflöde""
1 |
Maxflödesalgoritmer i Java : En studie av vikten att välja rätt algoritm och datastruktur för att minimera körtiden för exakta maxflödesalgoritmerBorgström, Erik, Grape, Felix January 2015 (has links)
Maxflödesproblemet har många praktiska tillämpningar och probleminstanserna kan bli mycket stora. Effektiva implementationer är därför nödvändigt för att körtiden inte ska bli alltför hög. I den här studien har två maxflödesalgoritmer, Edmonds-Karps algoritm och Goldberg-Tarjans push-relabel-algoritm, implementerats i Java med två olika da- tastrukturer och jämförts med varandra. Det framkommer att det är fördelaktigt att implementera en mer komplex, objektbaserad, grafre- presentation för grafinstanser som ligger under en kritisk gräns i antal kanter. När antalet kanter överstiger den kritiska gränsen blir en enkla- re, men mer minneskrävande, implementation med grannlista av heltal tillsammans med matriser effektivare. Tyvärr saknas tillräcklig data för att kunna dra slutsatser om huruvida Edmonds-Karps algoritm eller Goldberg-Tarjans push-relabel-algoritm är att föredra vid implementa- tion i Java. / The maximum flow problem has many real world applications and the problem instances can get very large. Efficient implementations are therefore important to limit execution time. In this report, two maximum flow algorithms, Edmonds-Karps algorithm and Goldberg-Tarjans push-relabel algoritm, has been implemented in Java, each with two different data structures. The efficiancy of the datastructures and algorithms was evaluated. It was found that a more complex, object based, graph representation is preferable for graph instances that have fewer than a critical number of edges. When the number of edges exceeds the critical limit the simpler, but more memory intensive, graph representa- tion is faster. Due to insufficient data, we were unable to analyze which of push-relabel and Edmonds-Karp that is preferable to implement in Java.
|
Page generated in 0.0402 seconds