Создайте индексированные неравенства и переменные, чтобы представлять калории, потребляемые в диете. Каждый прием пищи имеет разный предел калорий. Создайте массивы, представляющие еду, продукты и калории для каждой пищи.
Создайте переменные оптимизации, представляющие продукты для каждого приема пищи, индексируемые именами пищи и названиями еды.
Установите ограничения неравенства, что каждый прием пищи имеет верхнюю границу с калориями в еде.
Просмотрите неравенства для 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
Создание неравенств в цикле может быть более длительным, чем создание неравенств при помощи матричных операций.