Программный интерфейс модели задачи рюкзака
Модель задачи о рюкзаке предназначена для задач, в которых требуется выбрать подмножество элементов из заданного множества с максимизацией суммарной ценности при соблюдении ограничений по одной или нескольким весовым характеристикам. Специализированная реализация обеспечивает более высокую производительность на задачах этого класса по сравнению с универсальными моделями.
Рекомендуемый способ создания модели — через фасад О2.Модели:
Модель = О2.Модели().МодельЗадачиРюкзака().СоздатьМодель();
Модель.Ограничения().Установить(50);
Модель.Элементы().Добавить(60, 10, "a");
Модель.Элементы().Добавить(100, 20, "b");
Модель.Элементы().Добавить(120, 30, "c");
Решение = Модель.Решить();
Если Решение.РешениеНайдено() Тогда
Сообщить("Суммарная ценность: " + Решение.Ценность());
КонецЕсли;
Альтернативно доступен универсальный метод О2.СоздатьМодель, которому тип модели передаётся явно — это удобно, когда класс модели определяется динамически:
Модель = О2.СоздатьМодель(О2.ТипыМоделей().МодельЗадачиРюкзака());