-
Notifications
You must be signed in to change notification settings - Fork 9
Description
matchmaker/matchmaker/dp/oltw_dixon.py
Line 184 in d5c58d7
| new_acc[i - 1, update_y0 + j - 1] * 0.98, |
matchmaker/matchmaker/dp/oltw_dixon.py
Line 159 in d5c58d7
| new_acc[update_x0 + i - 1, j - 1] * 0.98, |
These lines in OLTW Dixon have a factor of 0.98 multiplied onto the previous path when moving in diagonal direction. Weighting directions can be very useful for OLTW and I do it too in parangonar, but there might be an issue here because the weights get multiplied onto the previous path instead of the incoming local distance, which means the factor is recursively applied and if the accumulated cost reaches 50 times a typical local distance, the diagonal will be chosen more often than justified. Here's a visualization of what happens, the input and reference are the same, one is just stretched threefold and the lowest distance is one. The tracker follows correctly for a while and once its accumulated cost reaches the threshold defined by the 0.98 factor, it goes diagonally. Let me know if you want the code to reproduce this.
