witam,
mam do zrobienia na uczelnie (systemy równoległe) program rozwiązujący problem komiwojażera wykorzystujący wątki. W wersji jednowątkowej sprawę załatwiałem przez rekurencję rozwijając drzewa permutacji (przeglądem zupełnym) oraz wykorzystując branch&bound odcinając dane gałęzie, które nie miały szans uzyskac lepszego wyniku.
1)Czy ma sens kod, tworzący wątki rekurencyjnie? Powstanie wtedy sporo wątków, obawiam się o koszt tworzenia wątków.
2)Wymyśliłem jeszcze drugie podejście do tego - utworzenie kilku wątków, i dynamiczne przydzielanie im roboty takie, że: każdy wątek ma przydzielone miasto początkowe, i rozwija rekurencyjnie dalej swoje drzewo(jak w wersji jednowątkowej), a gdy skończy pracę pobiera następne ewentualne miasto początkowe itd.
Jaka jest optymalna ilość wątków? Czy powinno to być parę, czy można sobie pozwolić na dużą większą ilość?