eugenebo: (Default)
[personal profile] eugenebo
Неделю назад приглашал гостей. Потом убирал посуду и задумался вот над каким вопросом.

В квадратный ящик размером 3x3 составляется 9 пивных бутылок диаметром по 1 единице. Всё просто. А вот, скажем, если диаметр бутылки -- уже не 1 единица, а 1.01? Вроде бы можно запихать шесть. Но можно ли больше? И, самое главное, как доказать, что больше нельзя?

С удивлением понял, что не имею ни малейшего понятия о том, как формализуются задачи о максимально плотной упаковке.

Date: 2009-10-12 07:58 am (UTC)
From: [identity profile] paul-schultz.livejournal.com
Батенька, а бутылки-то были из деформируемого материала али как?
Стекло али полиэтилен?

Date: 2009-10-12 08:08 am (UTC)
From: [identity profile] eugenebo.livejournal.com
Вырезаны из Абсолютно Твёрдого Тела :)

Date: 2009-10-12 08:49 am (UTC)
From: [identity profile] paul-schultz.livejournal.com
Тады, батенька, остаётся ещё вопрос метрологии - с какой погрешностью измерены размеры ящика и бутылок?

Date: 2009-10-12 09:30 am (UTC)
From: [identity profile] fregimus.livejournal.com
Абсолютно точно. Математика все-таки, не фунт изюму. См., впрочем, ниже — правда, получено численными методами, но легко вычисляется тригонометрически, если приглядеться к чертежам внимательно.

Date: 2009-10-12 08:51 am (UTC)
From: [identity profile] fregimus.livejournal.com
Непросто они формулируются, и решаются непросто.

Семь бутылок диаметром 1,01 можно запихать в ящик даже несколько меньшего размера:

1255337031-clip-16kb

Вот доказать, что больше нельзя — это интересно. Надо подумать.

Задача о максимально плотной упаковке шаров (предположение Кеплера), так наверняка и не решена. См. http://mathworld.wolfram.com/SpherePacking.html, also Kepler conjecture.

Date: 2009-10-12 09:44 am (UTC)
From: [identity profile] fregimus.livejournal.com
Можно 8. Прошу прощения, в предыдущее построение всралась ошибка, размер описанного квадрата несколько больше.

1255340570-clip-22kb

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

Date: 2009-10-12 08:30 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
В высшей степени изящное построение, спасибо!

Правда, я так и не понял, каким методом оно получено.

Date: 2009-10-12 08:39 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Ах... я, кажется, догадываюсь!

Было использовано решение задачи о максимально плотной упаковке двумерных сфер вообще, взята одна ячейка, а потом вокруг этой ячейки построен квадрат?

Date: 2009-10-12 09:37 pm (UTC)
From: [identity profile] fregimus.livejournal.com
Методом научного тыка. Просто я прикинул в уме, как можно расположить, а потом построил в CADе, с ограничениями на геометрию. Решение с 8 второе, первое оказалось негодным, но в какой-то момент, передвигая кружочки, я его и заметил. Оба решения в конце концов численные, но дают хороший толчок к аналитическому рассуждению.

Date: 2009-10-12 10:12 am (UTC)
From: [identity profile] fregimus.livejournal.com
Любопытно, что стороны обоих квадратов все-таки равны. Точное значение длин стороны равно 1 + Sqrt[3/2] + 1/Sqrt[2] (для единичного радиуса бутылки), приблизительно 2,93185.

теоретический алгоритм

Date: 2009-10-12 10:53 am (UTC)
From: [identity profile] falcao.livejournal.com
У Вас тут уже всё формализовано! Условие сформулировано на математическом языке -- чего ещё можно желать?

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

В данном случае, если мы хотим выяснить, можно ли k бутылок радиусом r вместить в квадрат со стороной L, то можно ввести 2k переменных x_i, y_i и написать несколько неравенств. Прежде всего, при любых i<j имеет место неравенство r^2<=(x_j-x_i)^2+(y_j-y_i)^2. Кроме того, |x_i|, |y_i| не превосходят L/2-r при всех i. То есть вопрос состоит в том, при каких значениях параметров r и L полученная система неравенств имеет решение. А для таких задач возможна процедура "элиминации кванторов" -- это было установлено где-то в 60-х годах. Однако весь этот алгоритм сопряжён с большим объёмом вычислений, и без специальных упрощений они довольно редко бывает осуществимы за реальное время. Кстати говоря, для таких задач есть хоть какой-то алгоритм, а может быть намного хуже -- когда нет вообще никакого. То есть не в смысле того, что он неизвестен, а в смысле того, что его не существует в принципе. Скажем, это относится к вопросу о разрешимости уравнений в целых числах.

Re: теоретический алгоритм

Date: 2009-10-12 08:32 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Ага... что-то в таком роде я и подозревал. Что каждое k надо проверять, как отдельную гипотезу, причём довольно дорогим способом. Спасибо :)

Date: 2009-10-12 01:22 pm (UTC)
From: [identity profile] mara-glad.livejournal.com
Блин, Женя... Не помню. :(
Это опять к тому, у кого что в памяти откладывается... :)
У нас был учебный курс на целый семестр. На четвёртом, кажется, курсе.
Именно про максимально плотную упаковку. Из курса не помню просто абсолютно ничего. Хотя помню, что задачки были прикольные и решать их мне нравилось... Так что могу только с уверенностью сказать, что теории об этом существуют, там всё не совсем просто, но весьма забавно.

Date: 2009-10-12 01:33 pm (UTC)
From: [identity profile] dimgn.livejournal.com
предлагаю обобщить на шары 4Х мерные. гораздо итререснее будет Про трехмерные шары задача уже решена

Date: 2009-10-12 04:57 pm (UTC)
From: [identity profile] fregimus.livejournal.com
Ссылкой не поделитесь, если есть под рукой? Когда я последний раз проверял, ее еще не решили окончательно.

http://mathworld.wolfram.com/KeplerConjecture.html

“Hales' proof proved difficult to verify. In 2003, it was reported that the Annals of Mathematics publication would have an unusual editorial note stating that parts of the paper have not been possible to check, despite the fact that a team of 12 reviewers worked on verifying the proof for more than four years and that the reviewers were 99% certain that it is correct (Holden 2003, Szpiro 2003). However, the actual publication contains no such note (Hales 2005).

“In response to the difficulties in verifying his proof, in January of 2003, Hales launched the "Flyspeck project" ("Formal Proof of Kepler") in an attempt to use computers to automatically verify every step of the proof. Unfortunately, Hales expects the project is likely to take 20 person-years of labor (Holden 2003, Szpiro 2003). ”

Интересно — кто-то придумал новое док-во? Я об этом не слышал.

Date: 2009-10-12 04:35 pm (UTC)
From: [identity profile] wra-ripe.livejournal.com
Действительно, поставленная оптимизационная задача 2D и четко формализуется. А вот у людей проблемы были. В плане 3D, в Топ-Книге для производственной службы (склад) писался софт обсчитывающий оптимальную упаковку для книжек в коробку (набор), разных размеров, линеек, пеналов и даже глобусов (с подставкой!), чем оптимальней упаковка - тем меньше фур надо загрузить, а следовательно дешевле доставка до магазизнов... По поводу 2D - это вероятно всякие выкройки и нарезка из металических листов, но с этим не сталкивался... :)

Date: 2009-10-12 04:48 pm (UTC)
From: [identity profile] fregimus.livejournal.com
Так это ж knapsack problem! :-)

Date: 2009-10-12 08:37 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Вот кстати на первый взгляд мне тоже показалось, что это "задача вора". Но потом я подумал... у вора единственным ограничивающим параметром является суммарный вес предметов. Их геометрия неважна. По этой причине применимо динамическое программирование, когда на каждом шаге мы перебираем лишь по одному прошлому предмету. Но если играет геометрия, то добавка нового предмета может требовать переконфигурации всех старых на каждом шаге. Рекурсия не даёт выигрыша. То есть, вроде бы задача с геометрией оказывается классом-то посложнее. Или я что-то упускаю?

Date: 2009-10-12 09:34 pm (UTC)
From: [identity profile] fregimus.livejournal.com
Ох, сейчас мы в такие дебри попадем, что давайте туда не ходить. Начнем с того, что, если P=NP, то Вы оказываетесь правы… :-)

Date: 2009-10-12 08:37 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Как интересно! Никогда не знаешь, в каком месте вдруг встретится самая хардкорная математическая задача :)

Ну и как её решали, интересно? Численным перебором?

Date: 2009-10-13 06:50 pm (UTC)
From: [identity profile] wra-ripe.livejournal.com
Постараюсь пообщаться, с теми кто этим занимался... ;)

Date: 2009-10-14 01:53 pm (UTC)
From: [identity profile] alkov.livejournal.com
Помнится, был у нас предмет, звался кристаллографией. И слова "плотнейшая упаковка" там звучали, да. Если мне пямять не отшибает, для сфер плотнейшей будет гексагональная упаковка. Совсем всё забыл, ух..

Но в твоём случае, насколько я понимаю, задача сводится к плоской, т.к. бутылки не сферические :)

Date: 2009-10-14 05:41 pm (UTC)
From: [identity profile] eugenebo.livejournal.com
Представил себе сферическую бутылку в вакууме. Задумался :))
Page generated Mar. 20th, 2026 09:50 am
Powered by Dreamwidth Studios