2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 9
|
||||||
1 | ||||||
Жадный алгоритм09.04.2012, 21:08. Показов 17370. Ответов 9
Метки нет Все метки)
(
Суть задачи - имеется N предметов различного размера. Один ящик имеет строгую вместимость. Необходимо разложить все N предметов в минимальное количество ящиков.
Не получается написать алгоритм разложения по ящикам. Он должен выглядеть так - сортируем предметы по уменьшению веса. Берем первый предмет и ложим в ящик. Берем второй предмет, проверяем вмещается ли он в первый ящик, если нет ложим во второй. Берем третий предмет проверяем вмещается ли в 1 ящик, если нет вмещается ли во второй, если нет ложим в третий ящик и тд. Вот рабочий код, но подсчет ящиков ведется неправильно!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
09.04.2012, 21:08 | |
Ответы с готовыми решениями:
9
Жадный алгоритм Жадный алгоритм
Жадный алгоритм С++ |
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
09.04.2012, 21:18 | 2 |
Что-то я не вижу у тебя массива ящиков.
0
|
![]() 4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
09.04.2012, 21:24 | 3 |
во-первых, код не соответствует написанному алгоритму.
во-вторых, эту задачу жадным алгоритмом ешать нельзя. Вот пример: имеется два ящика объемом каждый по 10. Имеются предметы (уже отсортированные по убыванию): 5 4 4 3 2 2 Минимальное количество необходимых ящиков 2 шт. Расклад выглядит таким: 5 3 2 4 4 2 Но следуя Вашему жадному алгоритму в первый ящик попадут сначало 5, потом 4 и уже в два ящика не уложиться.
0
|
09.04.2012, 21:47 | 4 |
может поможет
http://en.wikipedia.org/wiki/Bin_packing_problem А то сортировать и запихивать по порядку не самый оптимальный метод Добавлено через 21 минуту копай в сторону "метода динамического программирования" Я читал про него в книге Окулова
0
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 9
|
|
09.04.2012, 22:42 [ТС] | 5 |
ящики считались не в массиве, там просто счетчик.
написала ведь, что считается неправильно у меня условие решить именно жадным алгоритмом
0
|
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
09.04.2012, 23:49 | 6 |
А как ты тогда собираешься проверять первый ящик? Например, у тебя 4 предмета: 8, 5, 5 и 2. Ты берёшь 8 в первый ящик. Потому берёшь 5 и по твоему алгоритму оно его запихивает во второй ящик, а про первый вообще забывает. Потом берёт вторую 5 и запихивает во второй ящик. Берёт 2 и т.к. первый ящик вообще не сохранён, оно запихивает эту двойку в третий ящик.
0
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 9
|
|
10.04.2012, 10:50 [ТС] | 7 |
я знаю что ящики считаются не так) написала же что алгоритм работает неправильно. не могу его переписать как надо
0
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 9
|
|
16.04.2012, 19:02 [ТС] | 8 |
тема закрыта, алгоритм написан.
0
|
![]() 5052 / 3113 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
|
|
17.04.2012, 14:26 | 9 |
iomika, выложите решение сюда, оно может быть интересно не только вам.
0
|
2 / 2 / 0
Регистрация: 12.11.2011
Сообщений: 9
|
||||||
21.04.2012, 23:37 [ТС] | 10 | |||||
1
|
21.04.2012, 23:37 | |
Помогаю со студенческими работами здесь
10
Жадный алгоритм Жадный алгоритм (рюкзак)
Жадный алгоритм на графе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |