Здравствуйте, гость ( Вход | Регистрация )
15 Aug 2008, 14:52
Сообщение
#1
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз |
Задача такая (очень мне актуальная):
![]() А=2 см. Есть страница, размер 12А на 18А (24 на 36 см), разбитая на ячейки размером 2А на А (4 см на 2 см) - обозначена серым пунктиром Есть массив модулей (прямоугольников) размера кратного 2А. Например: два черных, голубой, малиновый, красный, зеленый, оранжевый... Нужен алгоритм: Как замостить страницу этими модулями? Оптимально не обязательно, но как можно рациональнее. Общая площадь модулей может быть больше площади страницы, тогда расставить сколько влезет и произвести переход на следующую страницу. Например оранжевый модуль можно разместить как он сейчас расположен, но лучше его впихнуть в место обозначенное стрелочкой... |
|
|
|
![]() |
15 Aug 2008, 16:24
(Сообщение отредактировал izrukvruki - 15 Aug 2008, 16:25)
Сообщение
#2
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз |
Я ж говорю абсолютно оптимальный не надо, но и в тоже время и один модуль на страницу - тоже не подойдет.
Поворачивать нельзя. Правильно понимаешь!!! У меня есть такое соображение: страница это массив из ячеек a(i,j). Если ячейка = 0 то ячейка свободна, если 1 то занята. Берем первый модуль и идем по массиву, в поисках свободной ячейки, если нашли, то проверяем чтоб необходимые для модуля ячейки (вправо и внизу) были тоже свободны, если таких ячеек не нашлось переходим на вторую страницу и повторяем операцию, до тех пор пока не разместим модуль. Далее берем второй модуль и возвращаемся на первую страницу и запускаем алгоритм. Неоптимальность возникает из-за того что берем модули последовательно. Наверное есть ситуации, когда другая очередность взятия модулей даст более рациональную замостку страницу... но повторяю, что оптимальность не требуется... |
|
|
|
izrukvruki Замостить страницу 15 Aug 2008, 14:52
gamecreator 1. на рисунке совсем не оптимальный способ.
2. мод... 15 Aug 2008, 16:06
gamecreator вот жадный алгоритм (он не всегда оптимален)
1. ищ... 15 Aug 2008, 18:00
Darth_Beleg А какой критерий оптимизации? Максимальная плотнос... 31 Aug 2008, 21:17
izrukvruki Критерий:
Чтоб площадь пустот (между модулями) был... 03 Sep 2008, 08:51![]() ![]() |
| Текстовая версия | Сейчас: 6 December 2025 - 11:34 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|