Создайте индексированные неравенства и переменные, чтобы представлять калории, использованные в диете. Каждая еда имеет различный предел калории. Создайте массивы, представляющие еду, продукты и калории для каждой еды.
Создайте переменные оптимизации, представляющие продукты для каждой еды, индексированной продовольственными именами и именами еды.
Установите ограничения неравенства, что каждая еда имеет верхнюю границу на калориях в еде.
Просмотрите неравенства для dinner
.
200*diet('cereal', 'dinner') + 175*diet('oatmeal', 'dinner') + 150*diet('yogurt', 'dinner')
+ 450*diet('peanut butter sandwich', 'dinner') + 350*diet('pizza', 'dinner')
+ 800*diet('hamburger', 'dinner') + 150*diet('salad', 'dinner') + 650*diet('steak', 'dinner')
+ 350*diet('casserole', 'dinner') + 300*diet('ice cream', 'dinner') <= 750
Вместо того, чтобы использовать цикл, можно создать те же неравенства при помощи операций над матрицей на переменных.
Включайте соответствующие имена индексов для неравенств путем установки IndexNames
свойство.
Отобразите новые неравенства для dinner
. Обратите внимание на то, что они совпадают с предыдущими неравенствами.
200*diet('cereal', 'dinner') + 175*diet('oatmeal', 'dinner') + 150*diet('yogurt', 'dinner')
+ 450*diet('peanut butter sandwich', 'dinner') + 350*diet('pizza', 'dinner')
+ 800*diet('hamburger', 'dinner') + 150*diet('salad', 'dinner') + 650*diet('steak', 'dinner')
+ 350*diet('casserole', 'dinner') + 300*diet('ice cream', 'dinner') <= 750
Создание неравенств в цикле может быть более трудоемким, чем создание неравенств при помощи операций над матрицей.