filmov
tv
C++ - designing an accelerated 'gradient descent' algorithm.

Показать описание
The output of the program looks like this:
1⇒ ⇀ 2⇒[⇾1][⇽2] ⇀ 3⇒[⇾2][⇽3] ⇀ 4⇒[⇾3][⇽4][⇾4] ↷ ⇿2 DONE
where the arrows have the following meaning:
⇒ : current direction is right.
⇐ : current direction is left.
⇀ : advance.
↷ : jump from worse to best minimum.
[⇾2] : mark node 2 as being explored to the right.
[⇽3] : mark node 3 as being explored to the left.
⇽4 : node 4 is already marked as being explored to the left.
⇾2: node 2 is already marked as being explored to the right.
⇿2: node 2 is already marked as being explored to both, the left and the right.
⇸ : could not go further to the right, because this is the end of the chain.
⇷ : could not go further to the left, because this is the beginning of the chain.
↺ : jump to ourselves (and reverse direction) because we are already explored in what was the current direction.
The problem that I want to address during this stream is the following output line:
1⇐ ⇀ 0⇐[⇽1][⇾0][⇽0] ⇷ ⇿0 DONE
It is impossible to be done here because node 2 was never explored.