LINUX.ORG.RU

Рюкзак методом ДП


0

0

Здравствуйте. Не могли бы вы помочь. У нас есть задача о рюкзаке, надо решить методом динамического программирования. Но веса у меня не целые и поэтому надо решать через обратную задачу. Вот я построил матрицу и узнал вес максимальный (кол-во строк), а как пройти обратный ход? Чтобы узнать какие элементы надо брать? Заранее благодарю.
П.С. элемент берется только 1 раз.

★★

что значит не целые веса? произвольные вещественные числа?

anonymous
()
Ответ на: комментарий от jtootf

Дан размер рюкзака (вещественный), даны 12 предметов у них цена целая, вес вещественный. Поэтому нужно обратную задачу решать. Когда построил таблицу (сверху элементы от 1 до 12). Как по ней сделать обратный ход чтобы узнать какие именно элементы мы положим в рюкзак.

DDR ★★
() автор топика
Ответ на: комментарий от generatorglukoff

Открываем книгу по исследованию операции, метод динамического программирования, в которой гласит если ограничения (веса) у нас являются произвольными (не целыми),то задачу сводим к обратной и решаем обратную, решение обратной задачи будет являться решением прямой задачи.

DDR ★★
() автор топика
Ответ на: комментарий от DDR

если без книг, чисто навскидку по здравому смыслу, то вещ. веса должны в данном случае сводиться к целым.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Я делаю по книге и есть чоткие указания препода делать через обратную задачу, а вот алгоритм слабо описан особенно обратного обхода матрицы.

DDR ★★
() автор топика
Ответ на: комментарий от DDR

Все кажись разобрался. Считаем что матрица транспонированная(относительно прямой задачи) и сдвигаем не на 1 вверх и на вес влево, а на цену вверх и 1 влево, вроде так. Всем спасибо.

DDR ★★
() автор топика
Ответ на: комментарий от anonymous

Вообще-то задача сама по себе избита до "немогу". Дан рюкзак определенной грузоподъемности, даны предметы определенной ценности и определенной массы, забить рюкзак так что его ценность была максимальна.
Особенность моей именно задачи в том, что веса предметов и размер рюкзака являеться вещественным (не целым), поэтому решать ее надо через обратную задачу о ранце, В инете об обратной задаче написано маловато:( Поэтому и спрашивал.
П.С. если решать методом динамического программирования.

DDR ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.