Po pierwsze chciałbym wspomnieć, że mam 3 tryby pamięci RAM.Zapobieganie błędom pamięci w itertools.permutation
Pracuję nad algorytmu, który jest wykładniczy w czasie na węzłach tak dla niej mam w kodzie
perm = list(itertools.permutations(list(graph.Nodes))) # graph.Nodes is a tuple of 1 , 2 , ... n integers
który generuje wszystkie kombinacje wierzchołki na liście, a następnie mogę pracować na jednym permutacji.
Jednak po uruchomieniu programu dla 40 wierzchołków powoduje błąd pamięci.
Czy istnieje prostszy sposób realizacji, za pomocą którego mogę wygenerować wszystkie kombinacje wierzchołków i nie mam tego błędu.
Jako pasek boczny przyczyną błędu pamięci jest: http://www.wolframalpha.com/input/?i=40%21+bytes+w+gigabicie – Robin
'perm' zawiera 815915283247897734345611269596115894272000000000 (40!) List 40 pozycji. –
Czy wiesz, ile jest możliwych kombinacji wierzchołków? Co zamierzasz zrobić ze wszystkimi kombinacjami? Możesz uniknąć przechowywania wszystkich naraz, ale jeśli naprawdę musisz wziąć pod uwagę każdą kombinację, Wszechświat nie ma gwarancji, że do czasu, gdy skończysz, nie będzie istniało ... Przełączenie się na C też nie pomoże. –