Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Не тривиальная задачка

  1. #1
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,440
    Спасибо Благодарностей отдано 
    192
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Не тривиальная задачка

    Есть некоторое количество прямоугольников (60-100).

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

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

    Может быть есть какое-нибудь классическое решение?

    А то у меня вариантов кроме тупого перебора, что-то пока вообще нет.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master Аватар для pulsar
    Регистрация
    26.01.2005
    Адрес
    чайковский
    Сообщений
    679
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    Цитата Сообщение от newart Посмотреть сообщение
    Задача - скомпоновать их так, что бы получился прямоугольник с максимально эффективно занятой площадью.

    Вращать прямоугольники нельзя.
    Скорость выполнения значения не имеет.
    вспомнил вот. был у нас пуру лет назад препод, читал чужие лекции: задачки на "упаковку" (минимизацию площади) (698k - pdf), там как раз алгоритмы под твою проблему, делали ему кажется даже какую-то лабу одним из методов (на пц... методом "имитации отжига", кажется)...

    если интересует классический подход - теория самое оно будет (хоть и выглядит как бред сивой кобылы), во всяком случае будешь знать в каком направлении копать. на wikipedi'и, кстати, практически только "имитация отжига" коротенько описана, так что походу довольно классический метод..
    Последний раз редактировалось pulsar; 10.01.2008 в 10:58.

  4. #3
    Guru Аватар для diver
    Регистрация
    26.01.2005
    Адрес
    Пермь
    Сообщений
    2,524
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    алгортима не знаю, но тут ее точно решили

  5. #4
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,440
    Спасибо Благодарностей отдано 
    192
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от diver Посмотреть сообщение
    тут
    левак какой-то по ссылке.

  6. #5
    Guru Аватар для diver
    Регистрация
    26.01.2005
    Адрес
    Пермь
    Сообщений
    2,524
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну правильно карта фондового рынка. там объемы рынка у всех меняются (площади), а карта постоянно упакована в один прямоугольник.

  7. #6
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,440
    Спасибо Благодарностей отдано 
    192
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    тупой перебор
    Даже для перебора нужен какой то алгоритм. Не представляю только какой.
    Да и задачка усложнилась. Теперь прямоуголник в котором нужно распределить прямогольники стал квадратным и фиксированого размера.

  9. #8
    Guru Аватар для diver
    Регистрация
    26.01.2005
    Адрес
    Пермь
    Сообщений
    2,524
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1) отсортировать прямоугольники по убыванию площади
    2) в угол пустого квадрата помещается наибольший прямоугольник
    3) пустое место после размещения ветвится на 2 прямоугольника - большой и маленький, запоминаем, сортируем тоже.
    4) берем следующий прямоугольник размещаем его в наименьшее подходящее пустое место, нужно только понять в какой угол, для начала тупо в произвольный.
    5) если прямоугольники или пустые места не кончились, go to 3.

  10. #9
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,440
    Спасибо Благодарностей отдано 
    192
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от diver Посмотреть сообщение
    2) в угол пустого квадрата помещается наибольший прямоугольник
    У меня похожая идея. Что то вроде тетриса, падают фигуры до упора и сдвигаются в угол и дальше падают если возможно, фигуры выбираются по убыванию размера (90% фигур прямоуголники с соотношением сторон 3 к 5).

  11. #10
    Master Аватар для pulsar
    Регистрация
    26.01.2005
    Адрес
    чайковский
    Сообщений
    679
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation

    в продолжении моего первого поста в этой теме, нашел вот такое: "имитация отжига" (304 Кб - делфовый проект + exe'шник для ознакомления, чтоб делфу в пустую не устанавливать), по контексту как раз вроде что надо... разбираться, что к чему сейчас не когда да и не хочется пользуйся, если на что сгодится

    с усложнением задачки, правда, все сложнее

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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