Перейти к основному содержимому

Программный интерфейс модели задачи рюкзака

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

Рекомендуемый способ создания модели — через фасад О2.Модели:

Модель = О2.Модели().МодельЗадачиРюкзака().СоздатьМодель();

Модель.Ограничения().Установить(50);

Модель.Элементы().Добавить(60, 10, "a");
Модель.Элементы().Добавить(100, 20, "b");
Модель.Элементы().Добавить(120, 30, "c");

Решение = Модель.Решить();

Если Решение.РешениеНайдено() Тогда
Сообщить("Суммарная ценность: " + Решение.Ценность());
КонецЕсли;

Альтернативно доступен универсальный метод О2.СоздатьМодель, которому тип модели передаётся явно — это удобно, когда класс модели определяется динамически:

Модель = О2.СоздатьМодель(О2.ТипыМоделей().МодельЗадачиРюкзака());

Состав раздела

См. также