2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Задачка на оптимизацию
Сообщение24.07.2009, 02:47 
5 лет назад придумал задачку, помнится пару месяцев всем отделом решали, но удовлетворительного решения так никто и не нашел, хотя легко доказывается, что оно существует.

Итак, задача:

Некоторому числу(*) путешественников требуется пройти по пустыни из пункта А в В. Расстояние между А и В - 20 дней пути(**). Каждый человек может нести максимум еды на 7 дней(***).
Вопрос: Какое минимальное число помощников необходимо для прохождения пустыни путешественниками? При этом время на прохождение не имеет значения.

(*) - решение не зависит от числа путешественников.
(**) - скорости всех участников процесса одинаковы и равномерны, поэтому расстояние дано в единицах времени.
(***) - в независимости от того идет человек или охраняет еду(стоит). Еду в пустыне без надзора оставлять нельзя. Расход еды происходит равномерно и непрерывно.
Все помощники должны вернуться назад в А.

 
 
 
 Re: Задачка на оптимизацию
Сообщение24.07.2009, 05:16 
Аватара пользователя
У меня есть несколько комментариев.

Во-первых, по-моему, ответ здесь обязан зависеть от числа путешественников. Большее число путешественников потребует большее число помошников.

Во-вторых, данная конкретная задача похоже не имеет решения. Дело в том, что никакой помошник не сможет уйти дальше чем на 7/2=3.5 дня от A, так как в противном случае он проест больше чем 7-дневный запас провизии (который несет), и от него уже не будет никакой помощи. Но от точки на расстоянии 3.5 от A сами путешественники не смогут добраться до B даже с полным 7-дневным запасом провизии.

В-третьих, такие задачи (см. например еще задачу Jeep) решаются с конца: для заданного количества путешественников/помошников нужно определить максимальное расстояние, которое эти петешественники смогут пройти. Обычно это максимальное расстояние удовлетворяет некоторому рекуррентному соотношению и для него можно найти формулу. Из нее же потом легко получается решение исходной задачи.

 
 
 
 Re: Задачка на оптимизацию
Сообщение24.07.2009, 09:36 
Аватара пользователя
В таком варианте эта задача обычно называется как-то типа "Бомбардировщики: дозаправка в воздухе" (предписанные ограничения более естественно ложатся в эту физическую реализацию). И да, способ есть, ведь где-то же я услышал это название.
Грубо говоря: трое уходят на 3 юнита от A, сливают лишнее горючее четвёртому, сами летят назад, а он - дальше. И вот так с конца строим пирамиду...

 
 
 
 Re: Задачка на оптимизацию
Сообщение24.07.2009, 10:22 
Somewhere far beyond в сообщении #230871 писал(а):
Некоторому числу(*) путешественников требуется пройти по пустыни из пункта А в В. Расстояние между А и В - 20 дней пути(**). Каждый человек может нести максимум еды на 7 дней(***).
Вопрос: Какое минимальное число помощников необходимо для прохождения пустыни путешественниками? При этом время на прохождение не имеет значения.

(*) - решение не зависит от числа путешественников.
(**) - скорости всех участников процесса одинаковы и равномерны, поэтому расстояние дано в единицах времени.
(***) - в независимости от того идет человек или охраняет еду(стоит). Еду в пустыне без надзора оставлять нельзя. Расход еды происходит равномерно и непрерывно.
Все помощники должны вернуться назад в А.

Четверо.
Два человека за два дня (туда и обратно) доставят еды на десять дней на склад, находящийся на расстоянии в один день пути.
Так что стратегия может быть таковой - четыре человека создают склад еды на расстоянии одного дня пути от пункта А, одного оставляют охранником, возвращаются обратно, берут ещё порцию, хотя за время их отсутствия охранник съест еды на два дня, но они принесут, разумеется, больше, чем он съест.
Накопив достаточное количество, начинают переносить склад на расстояние в два дня пути, охранников, разумеется, двое, один охраняет старый склад, второй - новый.
И так далее, до расстояния в 6.5 дней. Здесь оставляем одного охранника, еды ему на достаточное время, еды для путешественников на 6.5 дней пути, еды всем четырём на возвращение - тоже на 6.5 дней пути. Всю остальную еду аналогичным образом тащим вперёд на расстояние в 13 дней пути (7 дней до B), только носильщик уже один и охранников двое.
Соответственно, в складе на 13 днях пути, в конце концов, должна быть еда для путешественников на 7 дней пути от этого склада до B, и еда для себя на 6.5 дней чтобы добраться до первого склада.

PS: А вообще, если совмещать функции помощников и путешественников (ишь, аристократы развелись, сами пусть всё тащат) то ответ - ноль, если путешественников трое или больше. :)

 
 
 
 Re: Задачка на оптимизацию
Сообщение26.07.2009, 01:27 
maxal в сообщении #230874 писал(а):

Во-первых, по-моему, ответ здесь обязан зависеть от числа путешественников. Большее число путешественников потребует большее число помошников.


Допустим есть решение для одного путешественника. После его прохождения пустыни и возвращения всех помощников обратно. Проведение второго путешественника возможно по тому же алгоритму и т.д. В итоге время затраченное на процедуру, по этой схеме будет пропорционально количеству путешественников, но количество помощников будет стационарно. Т.к. время время не является критерием решения, то ответ задачи не зависит от количества путешественников.

maxal в сообщении #230874 писал(а):
Во-вторых, данная конкретная задача похоже не имеет решения. Дело в том, что никакой помошник не сможет уйти дальше чем на 7/2=3.5 дня от A, так как в противном случае он проест больше чем 7-дневный запас провизии (который несет), и от него уже не будет никакой помощи. Но от точки на расстоянии 3.5 от A сами путешественники не смогут добраться до B даже с полным 7-дневным запасом провизии.


Пример:
В момент времени t=0: 3-е человек выходят с полной провизией.
В момент времени t=2: 1 человек берет 7 еды, идет дальше. Остальные возвращаются обратно.
В момент времени t=4: 1-й достигнув точки "4-й день" возвращается. Остальные двое, придя в пункт А, запасаются провизией, и идут обратно.
В момент времени t=6: Встречаются в точке "2-й день", кол-во еды: 14-2*2+7-4=13, что достаточно что бы вернуться всем троим назад.
В результате один побывал в точке "4-й день", и все благополучно вернулись обратно.
Немного хитрее алгоритм для 3-х человек отправляет с возвращением на 6,3 день, но и он не является оптимальным.

maxal в сообщении #230874 писал(а):
В-третьих, такие задачи (см. например еще задачу Jeep) решаются с конца: для заданного количества путешественников/помошников нужно определить максимальное расстояние, которое эти петешественники смогут пройти. Обычно это максимальное расстояние удовлетворяет некоторому рекуррентному соотношению и для него можно найти формулу. Из нее же потом легко получается решение исходной задачи.


Я очень сомневаюсь, что возможно построить для данной задачи рекурсию в функциональном виде. Но хотя сам подход: нахождение зависимости максимального расстояния на которое сможет пройти человек от количества участвующих, не отрицаю.

Сургонт Е Ф в сообщении #230894 писал(а):

Четверо.
Два человека за два дня (туда и обратно) доставят еды на десять дней на склад, находящийся на расстоянии в один день пути.
Так что стратегия может быть таковой - четыре человека создают склад еды на расстоянии одного дня пути от пункта А, одного оставляют охранником, возвращаются обратно, берут ещё порцию, хотя за время их отсутствия охранник съест еды на два дня, но они принесут, разумеется, больше, чем он съест.
Накопив достаточное количество, начинают переносить склад на расстояние в два дня пути, охранников, разумеется, двое, один охраняет старый склад, второй - новый.
И так далее, до расстояния в 6.5 дней. Здесь оставляем одного охранника, еды ему на достаточное время, еды для путешественников на 6.5 дней пути, еды всем четырём на возвращение - тоже на 6.5 дней пути. Всю остальную еду аналогичным образом тащим вперёд на расстояние в 13 дней пути (7 дней до B), только носильщик уже один и охранников двое.
Соответственно, в складе на 13 днях пути, в конце концов, должна быть еда для путешественников на 7 дней пути от этого склада до B, и еда для себя на 6.5 дней чтобы добраться до первого склада.

PS: А вообще, если совмещать функции помощников и путешественников (ишь, аристократы развелись, сами пусть всё тащат) то ответ - ноль, если путешественников трое или больше. :)


Вы не учли условие (хотя, я по ходу не четко выразился), что если в какой-то точке органзовали склад, то максимальная вместимость склада при одном кладовщике равна 7-ми, при 2-х равна 14-ти и т.д.
Без учета этого условия вы правы, ответ - ноль.

 
 
 
 Re: Задачка на оптимизацию
Сообщение26.07.2009, 07:43 
Аватара пользователя
Somewhere far beyond в сообщении #231133 писал(а):
После его прохождения пустыни и возвращения всех помощников обратно.


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

 
 
 
 Re: Задачка на оптимизацию
Сообщение27.07.2009, 02:42 
Профессор Снэйп в сообщении #231149 писал(а):
Somewhere far beyond в сообщении #231133 писал(а):
После его прохождения пустыни и возвращения всех помощников обратно.


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


Невнимательно читаете. Вот же, в самом конце:

Somewhere far beyond в сообщении #230871 писал(а):
Все помощники должны вернуться назад в А.

 
 
 
 Странное условие
Сообщение18.01.2012, 11:36 
Задача. У одного края пустыни шириной 920 км имеется неограниченный запас бензина. В самой пустыне заправочных станций нет и достать бензин негде. Грузовик может перевозить только одну заправку бензина, которой хватает на 600 км пути. Кроме того экипажу разрешается строить бензохранилища любых размеров в любом месте трассы. Сколько заправок бензина необходимо грузовику, чтобы пересечь пустыню?

Может, кто-нибудь формализует условие задачи? Не могу понять, о чём речь.

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 11:42 
Здесь наверное ограничение к-ва заправок на первой заправочной?

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 11:55 
Похоже на традиционные задачи про самолеты-заправщики (см., например, задачу №277 "Кругосветный полет" из сборника "Избранные задачи из журнала AMM" под ред. В.М. Алексеева, М.: Мир, 1977).

Имеется в виду, что заправляться грузовик может только на единственной (зато бесконечно емкой) заправочной станции у края пустыни. Затем он может проехать некоторое расстояние по пустыне, остановиться, экипаж построит на месте остановки бензохранилище, возможно отольет часть оставшегося бензина в него, вернется для дозаправки. Дозаправляясь оставленным в бензохранилищах бензином, грузовик может все дальше проникать в пустыню, строя новые бензохранилища. После какой-то очередной заправки он сможет пересечь всю пустыню.

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 11:58 
EtCetera, спасибо, теперь какая-то ясность появилась.

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 19:49 
Вроде естественно задачу, как оптимизационную ставить. Спланировать на каком расстоянии от края пустыни и сколько строить складов топлива, чтобы минимизировать полный пробег грузовика для преодоления всего расстояния в 920 км.

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 20:03 
У М.Гарднера в "Математических головоломках и развлечениях" есть аналогичная задача (только циферки там 800 и 500 миль).

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 20:07 
Maslov в сообщении #528496 писал(а):
У М.Гарднера в "Математических головоломках и развлечениях" есть аналогичная задача (только циферки там 800 и 500 миль).
Вот это хорошо, спасибо за ссылку.

 
 
 
 Re: Странное условие
Сообщение18.01.2012, 20:08 
Более точная ссылка: первая задача в гл. 29 :)

 
 
 [ Сообщений: 19 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group