kotwgarnku/TetrisENN

Zbyt szerokie przeglądanie sieci przy DFS

Closed this issue · 1 comments

W silniku DFSa następuje zbyt szerokie przeglądanie drzewa (gałęzie nie łączące się nigdy z output nodes są niepotrzebnie przeglądane). Wg. mnie powinno wyglądać to tak:

for v, index in zip(visited, range(len(visited))):
    if (v == False) and (index + 1 in self._output_neurons.keys()):
        self._DFSUtil(index + 1, visited)

NOTE: porównanie

(self._neurons[index + 1] in self._output_neurons)

NIE JEST poprawne: przypadek 1->4, 2->4 - po pierwszym przejrzeniu połączenia 1->4 do neuronu 4. zostaje dodana nowa pozycja do

self._input_signals == [ 0.52345 ]

Ale TYLKO w neuronie reprezentowanym w self._neurons, przez co nie będzie on już równy temu samemu neuronowi w self._output_neurons.

Nawiązanie do #14