Zbyt szerokie przeglądanie sieci przy DFS
Closed this issue · 1 comments
saleph commented
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
.