Задачи поиска условного экстремума функции многих переменных часто встречаются в экономических расчетах для минимизации издержек, финансовых рисков, максимизации прибыли и т. п. Целый класс экономических задач оптимизации описывается системами линейных уравнений и неравенств. Они называются задачами линейного программирования. Приведем характерный пример т. н. транспортной задачи, которая решает одну из проблем оптимальной организации доставки товара потребителям с точки зрения экономии транспортных средств (листинг 8.15).
Листинг 8.15. Решение задачи линейного программирования
Модель типичной транспортной задачи следующая. Пусть имеется N предприятий-производителей,
Условия, выражающие неотрицательность товаропотока, и равенства, задающие сумму произведенной каждым предприятием продукции и сумму заказов каждого потребителя, находятся после ключевого слова Given. Решение, присвоенное матричной переменной sol, выведено в последней строке листинга вместе с соответствующей суммой затрат. Обратите внимание, что для получения результата пришлось увеличить погрешность CTOL, задающую максимальную допустимую невязку дополнительных условий. В строке, предшествующей ключевому слову Given, определяются нулевые начальные значения ддя х простым созданием нулевого элемента матрицы xn-1, м-1
Если взять другие начальные значения для х, решение, скорее всего, будет другим! Возможно, Вы сумеете отыскать другой локальный минимум, который еще больше минимизирует транспортные затраты. Это еще раз доказывает, что задачи на глобальный минимум, к классу которых относится линейное программирование, требуют аккуратного отношения в смысле выбора начальных значений. Часто ничего другого не остается, кроме сканирования всей области начальных значений, чтобы из множества локальных минимумов выбрать наиболее глубокий.