Исходный вид модели – это состояние модели до начала расчетов. Здесь задано количество кормовых ресурсов, равное 1 кг для каждого ресурса. Это сделано для того, чтобы можно было визуально проконтролировать корректность определения модели. Значения в формульной части совпадают со значениями в таблице питательности кормов, так как количество кормов равно единице.
При таком количестве кормов естественно поступление питательных веществ и энергии не соответствует норме. Количество энергии, сухих веществ и протеина составляет 31 МДж, 2,47 кг и 670 г при потребности 250 МДж, 22 кг, и 3700 г.
Теперь необходимо изменять значения ключевых ячеек в диапазоне B7:E7 таким образом, чтобы содержание в рационе нормируемых показателей соответствовало норме кормления. Можно попытаться вручную подобрать соответствующие количества кормов, но в реальных (полномерных) моделях, с большим количеством переменных и ограничений, это невозможно. Поэтому привлекаем для решения задачи надстройку «Поиск решения».
Вызываем Диалоговое окно программы (рис. 8).

Рассмотрим последовательность работы с программой. Вначале определяем целевую ячейку B$14$. Здесь содержится формула для расчета суммы концентрированных кормов в рационе. Эту ячейку устанавливаем на минимальное значение. Программа должна составлять рацион так,
чтобы обойтись наименьшим возможным количеством концентратов.
Переходим к элементу управления « Изменяя ячейки» . Следует указать блок ячеек, где находятся значения количества кормов. Указываем B$7:E$7.
Переходим к блоку управления ограничениями. Сюда можно добавить до 100 ограничений. Для этого запрограммированы 3 кнопки: Добавить , Изменить , Удалить . Щелкнув мышкой на кнопке Добавить, вызываем диалог добавления ограничения (рис. 9).

Окно диалога включает три поля ввода: Ссылка на ячейку, Оператор и Ограничение . Ссылка на ячейку содержит адрес ячейки или блока ячеек, значения в которых необходимо получить адекватно тому, что задано в окне ограничения. Эти поля представлены объектом RefEdit – конструкция, позволяющая вводить адреса ячеек или блоков ячеек простым щелчком мышки на них, что исключительно удобно и предотвращает возможность ошибки. На рисунке показано, что ячейка $F$8 должна быть равна ячейке $F$3. Выбор оператора осуществляется из списка. Нажатие кнопки Ок добавляет ограничение в список ограничений, а кнопка Отмена прекращает процедуру задания ограничения.
Кнопки Изменить и Удалить производят одноименное действие над выбранным в списке ограничением.
В нашем примере первые два ограничения в списке ограничений определяют минимальную и максимальную границы скармливания кормов. Эти ограничения множественные, так как включают по 4 ячейки каждое – по количеству кормов. Третье ограничение – по протеину, четвертое – по обменной энергии и пятое – по сухому веществу.
Следующим шагом в работе с программой необходимо вызвать диалоговое окно «Параметры поиска решения» (рис. 10).

В нашей задаче требуется самая простая настройка параметров поиска. Достаточно установить свойство «Неотрицательные значения». Все остальные параметры для нашего примера не влияют существенно на результат. Установив данное свойство, следует щелкнуть кнопку Ок для возврата в главный диалог программы.
Остается щелкнуть кнопку Выполнить для запуска процедуры оптимизации. Расчет занимает не более 1 секнды времени, после чего будет выведено сообщение «Решение найдено. Все ограничения и ус- ловия оптимальности выполнены». Результат приведен на рис. 11.

