sab123: (Default)
[personal profile] sab123
А вот еще к вопросу о динамическом программировании. Одна из типовых задач для него - "заполнение рюкзака".

Когда-то давно, когда я еще учился в школе, мои друзья написали программу для записи кучи файлов с делением на дискеты (файл между дискетами не делится). Это то самое заполнение рюкзаков (дискет). Ну, они лишнего заморачиваться с оптимальностью не стали, а выбирали файлы тупо в порядке "самый большой из оставшихся, который войдет в оставшееся место на дискете".

Но если мы пытаемся использовать динамическое программирование, то оказывается, что все файлы разного размера, и оттого толку от мемоизации - ноль. Чтобы вышел толк, надо округлить размер файлов вверх до некоторого небольшого числа классов. Но тогда очевидным образом решение получается неточным, неоптимальным. Любопытно (не так чтобы очень, а так, выйти потрепаться), есть ли способы легко "добить" такое неточное решение до более точного? Или возникают сильные возмущения и все рушится? Ведь наверняка же кто-нибудь из гигантов мысли уже задавался таким вопросом.

А как же

Date: 2018-10-30 01:18 am (UTC)
From: [personal profile] malobukov
Ключевые слова FPTAS knapsack. Например (ссылка прямо на PDF).

January 2026

S M T W T F S
     12 3
45 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 8th, 2026 04:07 am
Powered by Dreamwidth Studios