LINUX.ORG.RU

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


0

0
Здравствуйте. Не могли бы вы помочь. У нас есть задача о рюкзаке, надо решить методом динамического программирования. Но веса у меня не целые и поэтому надо решать через обратную задачу. Вот я построил матрицу и узнал вес максимальный (кол-во строк), а как пройти обратный ход? Чтобы узнать какие элементы надо брать? Заранее благодарю.
П.С. элемент берется только 1 раз.
★★
что значит не целые веса? произвольные вещественные числа?
anonymous
()
Ответ на: комментарий от jtootf
Дан размер рюкзака (вещественный), даны 12 предметов у них цена целая, вес вещественный. Поэтому нужно обратную задачу решать. Когда построил таблицу (сверху элементы от 1 до 12). Как по ней сделать обратный ход чтобы узнать какие именно элементы мы положим в рюкзак.
DDR ★★
() автор топика
Ответ на: комментарий от generatorglukoff
Открываем книгу по исследованию операции, метод динамического программирования, в которой гласит если ограничения (веса) у нас являются произвольными (не целыми),то задачу сводим к обратной и решаем обратную, решение обратной задачи будет являться решением прямой задачи.
DDR ★★
() автор топика
Ответ на: комментарий от DDR
если без книг, чисто навскидку по здравому смыслу, то вещ. веса должны в данном случае сводиться к целым.
dilmah ★★★★★
()
Ответ на: комментарий от dilmah
Я делаю по книге и есть чоткие указания препода делать через обратную задачу, а вот алгоритм слабо описан особенно обратного обхода матрицы.
DDR ★★
() автор топика
Ответ на: комментарий от DDR
Все кажись разобрался. Считаем что матрица транспонированная(относительно прямой задачи) и сдвигаем не на 1 вверх и на вес влево, а на цену вверх и 1 влево, вроде так. Всем спасибо.
DDR ★★
() автор топика
Ответ на: комментарий от anonymous
Вообще-то задача сама по себе избита до "немогу". Дан рюкзак определенной грузоподъемности, даны предметы определенной ценности и определенной массы, забить рюкзак так что его ценность была максимальна.
Особенность моей именно задачи в том, что веса предметов и размер рюкзака являеться вещественным (не целым), поэтому решать ее надо через обратную задачу о ранце, В инете об обратной задаче написано маловато:( Поэтому и спрашивал.
П.С. если решать методом динамического программирования.
DDR ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.