Предыдущую тему в Computer Science унесли, хотя задумывалась она немного не так. Ну да ладно, сформулируем всё по новому.
Задача такая. Человек стоит на
![$\mathbb{Z}^2$ $\mathbb{Z}^2$](https://dxdy-04.korotkov.co.uk/f/7/3/a/73ab0138b71052651e16f69bb942a79b82.png)
в точке
![$(0,0)$ $(0,0)$](https://dxdy-03.korotkov.co.uk/f/e/6/6/e660f3b58b414524ec6f82741102107382.png)
. Перемещается по шагам. Из точки
![$(a,b)$ $(a,b)$](https://dxdy-01.korotkov.co.uk/f/0/c/d/0cd27d4708cd735f6ea469dc3debed0e82.png)
в точку
![$(c,d)$ $(c,d)$](https://dxdy-03.korotkov.co.uk/f/6/c/1/6c197bb3ece5b3babffae9bef9decad282.png)
можно сделать шаг тогда и только тогда, когда
![$|a-c| + |b-d| = 1$ $|a-c| + |b-d| = 1$](https://dxdy-04.korotkov.co.uk/f/3/0/a/30a16c396eaeaa36b5dcda568504affb82.png)
. Допустим, что человек голоден и что для некоторого
![$e \in \mathbb{Z}$ $e \in \mathbb{Z}$](https://dxdy-03.korotkov.co.uk/f/6/0/a/60adc848efdbda9ff91ecc980bb70fe082.png)
(про которое известно лишь то, что оно существует) множество точек, в которых находится еда, совпадает либо с
![$\{ (e,z) : z \in \mathbb{Z} \}$ $\{ (e,z) : z \in \mathbb{Z} \}$](https://dxdy-03.korotkov.co.uk/f/e/f/d/efdb6ff71f25da208425aab50954065982.png)
, либо с
![$\{ (z,e) : z \in \mathbb{Z} \}$ $\{ (z,e) : z \in \mathbb{Z} \}$](https://dxdy-01.korotkov.co.uk/f/8/5/f/85f778ae8669a1fd67f4474c8ce8208f82.png)
. Каков оптимальный маршрут, выводящий человека к еде?
Честно говоря, не уверен, что постановка задачи вообще корректна. Ведь про
![$e$ $e$](https://dxdy-01.korotkov.co.uk/f/8/c/d/8cd34385ed61aca950a6b06d09fb50ac82.png)
ничего не известно!... С другой стороны, есть маршруты явно не оптимальные: например,
![$(0,0) \to (0,1) \to (0,0) \to (0,1) \to (1,1) \to \ldots$ $(0,0) \to (0,1) \to (0,0) \to (0,1) \to (1,1) \to \ldots$](https://dxdy-03.korotkov.co.uk/f/6/0/8/608b6fcdc1ab9c797d036116ddce2c9382.png)
содержит явно лишние шаги.
Попробуем для простоты рассмотреть одномерный случай. Ходим по
![$\mathbb{Z}$ $\mathbb{Z}$](https://dxdy-04.korotkov.co.uk/f/b/9/4/b9477ea14234215f4d516bad55d011b882.png)
из
![$0$ $0$](https://dxdy-03.korotkov.co.uk/f/2/9/6/29632a9bf827ce0200454dd32fc3be8282.png)
налево-направо, еда находится в точке
![$e \in \mathbb{Z}$ $e \in \mathbb{Z}$](https://dxdy-03.korotkov.co.uk/f/6/0/a/60adc848efdbda9ff91ecc980bb70fe082.png)
. Мы не знаем, положительно
![$e$ $e$](https://dxdy-01.korotkov.co.uk/f/8/c/d/8cd34385ed61aca950a6b06d09fb50ac82.png)
или отрицательно, так что любой маршрут, гарантирующий поиск еды, выглядит так:
![$n_1$ $n_1$](https://dxdy-04.korotkov.co.uk/f/3/c/7/3c7e3568fa1625fede3ff436bfec732d82.png)
шагов направо,
![$n_1+m_1$ $n_1+m_1$](https://dxdy-03.korotkov.co.uk/f/2/3/c/23c26669c78bdad1b76f89b4e8d9ed7582.png)
шагов налево,
![$m_1 + n_2$ $m_1 + n_2$](https://dxdy-02.korotkov.co.uk/f/1/e/e/1ee5f89eec9d2e62d6b42b4e1a7620cd82.png)
шагов направо,
![$n_2 + m_2$ $n_2 + m_2$](https://dxdy-01.korotkov.co.uk/f/8/1/4/81443283319935e1df4cb7fc6d89e27282.png)
шагов налево и т. д. для некоторых целочисленных последовательностей
![$0 < n_1 < n_2 < \ldots$ $0 < n_1 < n_2 < \ldots$](https://dxdy-03.korotkov.co.uk/f/2/d/b/2db68738000ebabf5345a1a34a8d6f4b82.png)
,
![$0 < m_1 < m_2 < \ldots$ $0 < m_1 < m_2 < \ldots$](https://dxdy-02.korotkov.co.uk/f/1/4/9/149450f1090a161bc827196621b4007d82.png)
. Как должны быть устроены эти две последовательности? За
![$2n_1 + 2m_1 + 2n_2 + \ldots + 2n_s + m_s$ $2n_1 + 2m_1 + 2n_2 + \ldots + 2n_s + m_s$](https://dxdy-04.korotkov.co.uk/f/7/c/8/7c8669f44ea0eb935e99517a8ca5333182.png)
шагов мы обходим все клетки в отрезке
![$[-m_s,n_s]$ $[-m_s,n_s]$](https://dxdy-04.korotkov.co.uk/f/f/6/f/f6fb63d3614af2b3f7f6011d5419473b82.png)
, всего
![$n_s + m_s + 1$ $n_s + m_s + 1$](https://dxdy-04.korotkov.co.uk/f/7/c/5/7c5425af8ecb2aa10f6d1f4533a33b6382.png)
клетку. По-видимому, следует добиваться того, чтобы
![$$
f(s) = \frac{n_s + m_s + 1}{2n_1 + 2m_1 + \ldots + 2n_s + m_s}
$$ $$
f(s) = \frac{n_s + m_s + 1}{2n_1 + 2m_1 + \ldots + 2n_s + m_s}
$$](https://dxdy-01.korotkov.co.uk/f/0/3/8/0389b0cc87765a17730e45a179d95a3682.png)
принимало как можно большие значения при достаточно больших
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
. Ясно, что
![$f(s)$ $f(s)$](https://dxdy-03.korotkov.co.uk/f/6/8/e/68ea884fbd70c05c5339170fabc350c882.png)
всегда меньше
![$1$ $1$](https://dxdy-01.korotkov.co.uk/f/0/3/4/034d0a6be0424bffe9a6e7ac9236c0f582.png)
и что с ростом
![$s$ $s$](https://dxdy-03.korotkov.co.uk/f/6/f/9/6f9bad7347b91ceebebd3ad7e6f6f2d182.png)
это значение можно сколь угодно быстро приближать к
![$1$ $1$](https://dxdy-01.korotkov.co.uk/f/0/3/4/034d0a6be0424bffe9a6e7ac9236c0f582.png)
, очень быстро увеличивая
![$m_s$ $m_s$](https://dxdy-02.korotkov.co.uk/f/5/f/8/5f8036d78399e65ab026d95a96263f8f82.png)
и очень медленно наращивая
![$n_s$ $n_s$](https://dxdy-02.korotkov.co.uk/f/1/0/e/10ed8b6dc2bb8c0c4b720daeaeeca66b82.png)
. Но!.. в этом случае получается, что мы отдаём предпочтение отрицательным
![$e$ $e$](https://dxdy-01.korotkov.co.uk/f/8/c/d/8cd34385ed61aca950a6b06d09fb50ac82.png)
по сравнению с положительными. Хорош ли такой "перекос" влево?
Перекоса, безусловно, можно избежать, если очень быстро растить последовательность
![$n_1 < m_1 < n_2 < m_2 < n_3 < \ldots$ $n_1 < m_1 < n_2 < m_2 < n_3 < \ldots$](https://dxdy-04.korotkov.co.uk/f/b/a/5/ba53655f25d5840095130fdb46a4e45382.png)
. Но опять же насколько быстро? Пределов роста не существует. С одной стороны, чем быстрее растёт последовательность, тем быстрее движется к
![$1$ $1$](https://dxdy-01.korotkov.co.uk/f/0/3/4/034d0a6be0424bffe9a6e7ac9236c0f582.png)
величина
![$f(s)$ $f(s)$](https://dxdy-03.korotkov.co.uk/f/6/8/e/68ea884fbd70c05c5339170fabc350c882.png)
, тем лучше. Однако если рост очень велик, то уже на достаточно малых итерациях нашего челнокоподобного движения мы будем периодически убегать далеко в одну из сторон, забывая про другую. То есть опять будет постоянный "перекос" то влево, то вправо...
Есть ли смысл думать над лучшей мерой оптимальности, чем скорость роста
![$f(s)$ $f(s)$](https://dxdy-03.korotkov.co.uk/f/6/8/e/68ea884fbd70c05c5339170fabc350c882.png)
, или задача, в-принципе, не формализуема?