О2_Knapsack_МенеджерЭлементов.Добавить
Создаёт и регистрирует в модели новый элемент. Основной способ вызова — через менеджер элементов модели: Модель.Элементы().Добавить(Ценность, Веса, Имя).
Синтаксис
Модель.Элементы().Добавить(Ценность, Веса, Имя)
Параметры
- Ценность — Число — значимость элемента. Формирует целевую функцию модели — суммарная ценность отобранных элементов максимизируется.
- Веса — Массив из Число, Число — веса элемента по каждому измерению модели. Для одномерной задачи можно передавать число напрямую; для многомерной — массив, размер которого равен
Размерность, заданной в параметрах модели. - Имя — Строка, Неопределено — уникальное имя элемента. Должно быть валидным идентификатором. Если не указано, присваивается автоматически по индексу элемента:
_<Индекс>(нумерация с 0).
Возвращаемое значение
- ФиксированнаяСтруктура — данные зарегистрированного элемента.
Пример
Одномерная задача:
Модель = О2.Модели().МодельЗадачиРюкзака().СоздатьМодель();
Модель.Ограничения().Установить(50); // макс. вес 50
Модель.Элементы().Добавить(60, 10, "a");
Модель.Элементы().Добавить(100, 20, "b");
Модель.Элементы().Добавить(120, 30, "c");
Двумерная задача (задаётся параметром Размерность = 2):
Параметры = О2.Модели().МодельЗадачиРюкзака().СоздатьПараметрыМодели();
Параметры.Размерность = 2;
Модель = О2.Модели().МодельЗадачиРюкзака().СоздатьМодель(Параметры);
// Ограничения: вес <= 50, объём <= 30
Модель.Ограничения().Установить(О2.Утилиты().Массив(50, 30));
Модель.Элементы().Добавить(60, О2.Утилиты().Массив(10, 5), "a");
Модель.Элементы().Добавить(100, О2.Утилиты().Массив(20, 8), "b");