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