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