2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 14:41 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Предыдущую тему в Computer Science унесли, хотя задумывалась она немного не так. Ну да ладно, сформулируем всё по новому.

Задача такая. Человек стоит на $\mathbb{Z}^2$ в точке $(0,0)$. Перемещается по шагам. Из точки $(a,b)$ в точку $(c,d)$ можно сделать шаг тогда и только тогда, когда $|a-c| + |b-d| = 1$. Допустим, что человек голоден и что для некоторого $e \in \mathbb{Z}$ (про которое известно лишь то, что оно существует) множество точек, в которых находится еда, совпадает либо с $\{ (e,z) : z \in \mathbb{Z} \}$, либо с $\{ (z,e) : z \in \mathbb{Z} \}$. Каков оптимальный маршрут, выводящий человека к еде?

Честно говоря, не уверен, что постановка задачи вообще корректна. Ведь про $e$ ничего не известно!... С другой стороны, есть маршруты явно не оптимальные: например, $(0,0) \to (0,1) \to (0,0) \to (0,1) \to (1,1) \to \ldots$ содержит явно лишние шаги.

Попробуем для простоты рассмотреть одномерный случай. Ходим по $\mathbb{Z}$ из $0$ налево-направо, еда находится в точке $e \in \mathbb{Z}$. Мы не знаем, положительно $e$ или отрицательно, так что любой маршрут, гарантирующий поиск еды, выглядит так: $n_1$ шагов направо, $n_1+m_1$ шагов налево, $m_1 + n_2$ шагов направо, $n_2 + m_2$ шагов налево и т. д. для некоторых целочисленных последовательностей $0 < n_1 < n_2 < \ldots$, $0 < m_1 < m_2 < \ldots$. Как должны быть устроены эти две последовательности? За $2n_1 + 2m_1 + 2n_2 + \ldots + 2n_s + m_s$ шагов мы обходим все клетки в отрезке $[-m_s,n_s]$, всего $n_s + m_s + 1$ клетку. По-видимому, следует добиваться того, чтобы
$$
f(s) = \frac{n_s + m_s + 1}{2n_1 + 2m_1 + \ldots + 2n_s + m_s}
$$
принимало как можно большие значения при достаточно больших $s$. Ясно, что $f(s)$ всегда меньше $1$ и что с ростом $s$ это значение можно сколь угодно быстро приближать к $1$, очень быстро увеличивая $m_s$ и очень медленно наращивая $n_s$. Но!.. в этом случае получается, что мы отдаём предпочтение отрицательным $e$ по сравнению с положительными. Хорош ли такой "перекос" влево?

Перекоса, безусловно, можно избежать, если очень быстро растить последовательность $n_1 < m_1 < n_2 < m_2 < n_3 < \ldots$. Но опять же насколько быстро? Пределов роста не существует. С одной стороны, чем быстрее растёт последовательность, тем быстрее движется к $1$ величина $f(s)$, тем лучше. Однако если рост очень велик, то уже на достаточно малых итерациях нашего челнокоподобного движения мы будем периодически убегать далеко в одну из сторон, забывая про другую. То есть опять будет постоянный "перекос" то влево, то вправо...

Есть ли смысл думать над лучшей мерой оптимальности, чем скорость роста $f(s)$, или задача, в-принципе, не формализуема?

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 15:01 
Заслуженный участник


08/04/08
8562
Если задать вероятностное распределение для $e$, то можно, конечно, и побольше сказать, чем когда его нет...

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 15:27 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Ну а нет вот никакого распределения! Все $e \in \mathbb{Z}$ равновероятны.

Кстати, это тоже ещё тот вопрос: что значит случайно выбрать $e \in \mathbb{Z}$, не отдавая никакого предпочтения одним числам перед другими. Счётно-аддитивную вероятностную меру, понятное дело, не построишь :) Так что аппарат тервера здесь во многом работать не будет. Но не факт, что постановка вопроса бессмысленна.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 15:30 
Заслуженный участник


08/04/08
8562
Профессор Снэйп писал(а):
Все $e \in \mathbb{Z}$ равновероятны.

А вот так как раз нельзя...
Профессор Снэйп писал(а):
Ну а нет вот никакого распределения!

Да, понял, так сложнее и интереснее...
Можно оценку сверху на число шагов в зависимости от $e$ сделать (ну $O(e^2)$ понятно)...

-- Чт янв 13, 2011 18:49:48 --

Вот такую меру оптимальности можно использовать: $g(n) = \frac{1}{2n+1} \sum\limits_{k=-n}^n c(k)$, где $c(k)$ - число шагов алгоритма до точки $k=e$. :roll:
Если для $n \geq n_0$ $g_2(n) \geq g_1(n)$, то алгоритм с функцией $g_1(n)$ лучше (не факт, что множество $g(n)$ имеет нижнюю грань...)

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 16:03 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Sonic86 в сообщении #399331 писал(а):
А вот так как раз нельзя...

Кто-то из классиков (то ли Гёдель, то ли Тьюринг) как-то раз заморачивались на тему того, что значит случайное натуральное число. Давно читал уже статейку, лет 10 назад. В деталях не помню, но какие-то подходы были намечены.

Да и потом, есть же колмогоровская сложность и прочие подобные штуки. Тут, правда, наверное, всё же другое...

Вообще, когда мы говорим о распределении, подразумевается, что есть целое вероятностное пространство, на нём функция --- случайная величина и т. п. А тут нам просто дано одно-единственное число! Непонятно, о каком распределении речь.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 17:18 
Заслуженный участник


26/07/09
1559
Алматы
2Профессор Снэйп
А почему бы не сделать $n_i=m_i$, $n_{i+1}=n_i+1$? Это для 1D. В 2D надо будет бегать по почти тому-же алгоритму, но под 45 градусов к осям координат (по лесенке)...

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 17:49 
Заморожен
Аватара пользователя


18/12/07
8774
Новосибирск
Circiter в сообщении #399386 писал(а):
2Профессор Снэйп
А почему бы не сделать $n_i=m_i$, $n_{i+1}=n_i+1$? Это для 1D.

Ну... Я так понимаю, у Вас $n_1 = 1$. Давайте сравним с $n_1 = 1$, $m_i = 2n_i$, $n_{i+1} = 2m_i$.

Пусть $e > 0$. В Вашем случае оно достигается за
$$1 + 1 \cdot 4 + 1 + 2 \cdot 4 + 1 + 3 \cdot 4 + \ldots + (e-1) \cdot 4 + 1 = 2e(e-1)+e$$
шагов. В моём --- за
$$1 + (1 + 2) + (2 + 4) + (4 + 8) + \ldots + (2^{2k} + 2^{2k+1}) + 2^{2k+1} + e = (2 + 4 + 8 + \ldots + 2^{2k+2}) + e = 2^{2k+3}-2 + e$$
шагов, где $k$ таково, что $2^{2k} < e$ и $2^{2k+2} \geqslant e$. Из $2^{2k} < e$ получаем $2^{2k+3} - 2 < 8e$. Таким образом, все положительные $e$, для которых $2e^2 - 2e > 8e$ (то есть все $e > 5$), достигаются моим способом быстрее, чем Вашим!

С отрицательными та же история, можете проверить :-)

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение13.01.2011, 18:35 
Заслуженный участник


26/07/09
1559
Алматы
Все ясно; магия; так не честно.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение17.01.2011, 23:16 


10/11/08
35
Одесса, ОНУ, ИМЭМ
Просто надо определить критерий оптимальности. Для одномерного случая для каждого e и данного алгоритма $A$ определим $F(A,e)$ - число ходов, за которые алгоритм $A$ проходит и точку $+e$, и точку $-e$. В качестве критерия оптимальности думаю оптимально выбрать характеристику $G(A)=\sup_e\frac{F(A,e)}{e}$ - она заставляет следить за поведением алгоритма и при больших, и при малых $e$. Очевидно, что $F(A,e)\ge 3e$, поэтому $G(A)\ge 3$. Алгоритм с $n_s=2^{2s-2}$ и $m_s=2^{2s-1}$ дает $G(A)=9$ (экстремумы локальные достигаются на $e=2^s+1$, тогда$ F(A,e)=9\cdot 2^s-1$. Ставится вопрос о нахождении $\inf G(a)$, и тут надо думать... По идее должна идти какая-то геометрическая прогрессия, но надо считать.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение18.01.2011, 18:03 


12/09/06
617
Черноморск
inf G(A) по А будет равен 3. Достигается на последовательности алгоритмов Ак, у которых каждый длинный шаг с фиксированным номером s стремится к бесконечности при к стремится к бесконечности. Для вычисления нужно переставить sup и inf.
Длинный шаг это суммарная длинна шагов сделанных подряд в одном направлении.

Вообще, для любого естественного симметричного критерия F(A,e) inf по алгоритмам А будет тривиальным.

Если, конечно, не ошибаюсь.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение19.01.2011, 12:09 


10/11/08
35
Одесса, ОНУ, ИМЭМ
Откуда 3? Если первый шаг больше 1, то $F(A,1)\ge 5$ Если же 1, то $F(A,2)\ge 8$, и $G(A)\ge 4$. Соответственно так можно сделать и для $e=3$ и $e=4$. Экстремальный алгоритм должен вести себя как прогрессия в каком-то смысле...

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение19.01.2011, 21:53 


12/09/06
617
Черноморск
Мы поменяли местами sup и inf. Вычислим inf F(A,e) по А при фиксированном е. Минимизирующий алгоритм: е шагов вправо и 2е шагов влево.
inf F(A,e) = 3е.

Теперь нужно рассмотреть произвольный "естественный" критерий G(A).

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение23.01.2011, 02:23 


26/12/08
1813
Лейден
Оптимальность сложно исследовать раз критерия нет, но по-моему, двигаться неплохо по спирали.

 Профиль  
                  
 
 Re: Ещё раз оптимальный поиск наверх...
Сообщение23.01.2011, 15:55 


26/12/08
1813
Лейден
Сглупил, признаю - даже движение по диагонали каждый раз с возвратом дает в два раза меньше шагов (хотя порядок все равно тот же).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group