Случайная упаковка шаров — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
 
(не показано 11 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
[[Виртуальная лаборатория]] > [[Случайная упаковка шаров]] <HR>
 
[[Виртуальная лаборатория]] > [[Случайная упаковка шаров]] <HR>
  
Рассматривается задача плотной упаковки шаров заданного радиуса в квадрате и круге. Так же в ходе исследования выявляется наиболее плотная 2D упаковка из рассматриваемых.
 
  
[[Файл:207.jpg]]
+
== Краткое описание ==
 +
Рассматривается задача плотной упаковки шаров заданного радиуса в квадрате и круге. Так же в ходе исследования выявляется наиболее плотная 2D упаковка из рассматриваемых.  
  
 +
Программа генерирует последовательно круги разного радиуса в заданной области(квадрат или круг) до тех пор, пока <math> k </math> раз подряд не получим неудачный эксперимент, т.е. в котором наш круг будет задевать другие круги.
  
 +
[[Файл:Circles_in_Circle.png]]
  
Для запуска программы выберите, какой эксперимент хотите провести - случайная упаковка в квадрате ( кнопка "square")  или в круге (кнопка "circle") и нажмите "старт".
 
Так же мы можем варьировать отношение радиуса маленького кружка <math> a </math> к стороне квадрата/диаметру большого круга <math> d </math> и количество экспериментов - <math> n </math>.
 
  
После наших экспериментов мы построили график зависимости удельного числа проводимых экспериментов(т.е. отношение кол-ва экспериментов с данной плотностью к общему числу экспериментов)  от плотности упаковки, которая равна отношению суммарной площади маленьких кругов к площади квадрата/круга.  
+
== Для работы программы ==
 +
 
 +
Для запуска программы выберите, какой эксперимент хотите провести - случайная упаковка в квадрате ( кнопка "square")  или в круге (кнопка "circle") и нажмите "Start".
 +
 
 +
Так же мы можем варьировать отношение диаметра маленького кружка <math> a </math> к стороне квадрата/диаметру большого круга <math> d </math> и количество экспериментов - <math> n </math> и кол-во "неудачных" экспериментов <math> k </math> , если будем двигать ползунок или задавать значение в специально отведённом окошке.
 +
 
 +
"min плотность" показывает наименьшее значение плотной упаковки для данного количества экспериментов и данного заданного числа "неудачных" экспериментов,  "avg  плотность"  - наиболее вероятная упаковка, а  "max плотность" - наиболее плотная упаковка.
 +
 
 +
В верхнем окне рисуется сама упаковка кругов в квадрат или круг, а ниже чертится график зависимости удельного числа проводимых экспериментов(т.е. отношение кол-ва экспериментов с данной плотностью к общему числу экспериментов)  от плотности упаковки, которая равна отношению суммарной площади маленьких кругов к площади квадрата/круга.
 +
 
 +
Экспериментально была вычислена наиболее плотная упаковка кругов в квадрате - при 150 000 экспериментах и <math>a/d</math> = 0.492 вероятность составила 0.76. В круге при 20 000 экспериментах и <math>a/d</math> = 0.292 вероятность была равна 0.68. Соответственно, наиболее плотная упаковка кругов - в квадрате.
  
 
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/BondarevS/sphere_packing/index.html |width=1250 |height=1200 |border=0 }}
 
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/BondarevS/sphere_packing/index.html |width=1250 |height=1200 |border=0 }}
Строка 16: Строка 26:
 
Скачать [[Медиа:Tight packing.rar|Tight packing.rar]].
 
Скачать [[Медиа:Tight packing.rar|Tight packing.rar]].
  
'''Текст программы на языке JavaScript (разработчик [[Бондарев Сергей]]):'''
+
'''Текст программы на языке Dart (разработчик [[Бондарев Сергей]]):'''
 
[[Category: Виртуальная лаборатория]]
 
[[Category: Виртуальная лаборатория]]

Текущая версия на 11:39, 10 мая 2016

Виртуальная лаборатория > Случайная упаковка шаров


Краткое описание[править]

Рассматривается задача плотной упаковки шаров заданного радиуса в квадрате и круге. Так же в ходе исследования выявляется наиболее плотная 2D упаковка из рассматриваемых.

Программа генерирует последовательно круги разного радиуса в заданной области(квадрат или круг) до тех пор, пока [math] k [/math] раз подряд не получим неудачный эксперимент, т.е. в котором наш круг будет задевать другие круги.

Circles in Circle.png


Для работы программы[править]

Для запуска программы выберите, какой эксперимент хотите провести - случайная упаковка в квадрате ( кнопка "square") или в круге (кнопка "circle") и нажмите "Start".

Так же мы можем варьировать отношение диаметра маленького кружка [math] a [/math] к стороне квадрата/диаметру большого круга [math] d [/math] и количество экспериментов - [math] n [/math] и кол-во "неудачных" экспериментов [math] k [/math] , если будем двигать ползунок или задавать значение в специально отведённом окошке.

"min плотность" показывает наименьшее значение плотной упаковки для данного количества экспериментов и данного заданного числа "неудачных" экспериментов, "avg плотность" - наиболее вероятная упаковка, а "max плотность" - наиболее плотная упаковка.

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

Экспериментально была вычислена наиболее плотная упаковка кругов в квадрате - при 150 000 экспериментах и [math]a/d[/math] = 0.492 вероятность составила 0.76. В круге при 20 000 экспериментах и [math]a/d[/math] = 0.292 вероятность была равна 0.68. Соответственно, наиболее плотная упаковка кругов - в квадрате.

Скачать Tight packing.rar.

Текст программы на языке Dart (разработчик Бондарев Сергей):