![]() |
|
|
![]()
|
|
| Cyberholic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.7.2011 Репутация: нет Всего: нет |
Доброго времени суток!
У меня стоит задача составить алгоритм, решающий описанные ниже задачи. К сожалению, я очень мало об этом знаю и пока в самом начале пути и подумала может знающие люди смогут подсказать направление. СПАСИБО ОГРОМНОЕ заранее! Итак задача: Получить наибольшее непрерывное количество свободного пространства в ряду на полках с минимальным количетсвом шагов (перестановок книг на полке или с полки на полку), показать вариант (как выглядит полка, какие книги где) с мин количеством шагов, с кол шагов min-1, min-2 и т.д. Данные: Шкаф с полками и книгами на одном ряду. Надо максимизировать количество свободного пространства в РЯДУ (несколько полок). Есть несколько типов книг: роман, детектив и приключения. Роман нельзя перемещать, они должны остаться на своих местах. Все остальные можно свободно перемещать. Расстояние на полках и размер книг измеряем в миллиметрах. Опция: отдавать предпочтение перемещению книг одного и того же автора, что бы они стояли рядом... Вот так вот... Спасибо за помощь! |
|||
|
||||
| afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: нет Всего: 4 |
Условия совершенно невнятные, но похоже на вариацию задачи оптимизации (линейного или целочисленного программирования - повторюсь, условия невнятные). Алгоритмы решения таких задач давно расписаны, можно, например, их в вики найти.
|
|||
|
||||
| Lipetsk |
|
|||
![]() в форме ;) ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 28.1.2009 Где: Липецк Репутация: 2 Всего: 5 |
По-моему все просто:
смотрим сколько всего есть свободных мест, ищем на полках место под это количество, чтобы там было побольше свободного места и с этого места книги убираем с учетом предпочтения |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Что-то мне напоминает дефрагментацию жесткого диска. Даже системные файлы романы имеются
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Cyberholic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.7.2011 Репутация: нет Всего: нет |
Soglasna! Pohozhe na defragemntaciyu diska, s odnoi raznicei--mne nuzhno minimalnoe kolichestvo shagov. Zdes nuzhna funkciya kakaya-nibud?
Ya iskala slovesnie algortimi defragmentacii diska, no nochego ne nashla v internete. Ne podskazhete gde mozhno poiskat? SPASIBO! Ochen ochen nuzho! Добавлено через 3 минуты и 3 секунды
Skazhite pozhaluista, kakie imeeno uslaviya neponyatni, ya poprobuyu obyasnit po drugomu... Ya, esli chestno, absolyutno v etom novichek, smotrela v wikipedia, no ne nashla reshenie podobnih zadach. Esli vi imeete vvidu chto-to konkretnoe, daite ssilku pozhaluista... SPASIBO! Это сообщение отредактировал(а) Cyberholic - 16.8.2011, 23:04 |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Cyberholic, к сожалению, конкретно алгоритмами дефрагментации я не занимался. Ничего определенного подсказать не могу. Просто высказал идею. Но дефрагментаторы точно бывают быстрые и медленные и при разработке это их свойство, судя по всему, учитывается как-то.
Зы: Руглишь читать сложно. Слева-внизу есть галочка. Помогает если у Вас нет русской клавиатуры. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Cyberholic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.7.2011 Репутация: нет Всего: нет |
С оптимизацией я более менее разобралась. Вот никак не соображу следующее:
Если есть начальный вид полки с книгами и конечный вид полки с оптимизированным пространством как найти минимальное количество перестановок книг за которое можно получить данный конечный результат??? |
|||
|
||||
| Lipetsk |
|
|||
![]() в форме ;) ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 28.1.2009 Где: Липецк Репутация: 2 Всего: 5 |
Cyberholic, а вам именно количество или алгоритм нужен?
если алгоритм, то тут все просто: 1. переставляете только книги, которые не на своих местах, а их новые места свободны 2. когда такие кончаются, т.е. остаются книги не на своих местах, но новые места для них заняты, то переставляете одну из таких книг на свободное место (желательно на то, которое будет свободно и в конечной расстановке) и переходите к пункту 1 |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
А нельзя ли нарисовть эту систему перестановок в виде графа и искать кратчайший путь в графе? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |